合併:現在のリストの間で未知語をチェックするように設定されていますが、この関数は一般的な単語をチェックし、以下の関数を変更して、単語がvocabまたはwdsにあるかどうかを確認する必要があります。また、関数を正しく理解していないため、は、私は本当に速いですマージアルゴリズム持っソートアルゴリズム
デフfind_unknowns_merge_pattern(単語、WDS):
result = []
xi = 0
yi = 0
while True:
if xi >= len(vocab):
result.extend(wds[yi:])
return result
if yi >= len(wds):
return result
if vocab[xi] == wds[yi]: # Good, word exists in vocab
yi += 1
elif vocab[xi] < wds[yi]: # Move past this vocab word,
xi += 1
else: # Got word that is not in vocab
result.append(wds[yi])
yi += 1
デフ(bigger_vocab、book_words)を確認してください。
both = [ ]
for words in bigger_vocab:
for people in book_words:
if words == people:
words.split()
both.append(words)
return both
問題は私のマージアルゴリズムは0.08をとるのに対し、それは、少なくとも5秒かかります。どのように私はこの機能を呼び出すことで、これをより速くすることができますか?
あなたの質問は明らかではありません。あなたの "マージアルゴリズム"はPythonでですか? 'check()'の目的は何ですか?何をあなたのマージアルゴリズムを呼び出そうとしましたか、それはなぜ機能していませんか? 'check()'を目的の出力と実際の出力で呼び出す例を挙げてください。より良い質問をするには、[最小限で完全で検証可能なサンプルの作成方法](http://stackoverflow.com/help/mcve)を参照してください。そのはpythonで、現在、それが何をするか、特定のリストにare'ntリターンの言葉で、私は余分な混乱を避けるために、ライン4-8をインデント解除してください –
は、はい、それは働いていません。また、あなたは "私のマージアルゴリズム"について話しているので、そのコードも共有してください。最後に、いくつかの実行時間テストについて話しているので、試したインプットを示してください(説明された動作は、私たちが手助けするために再現可能でなければなりません)。 –
それを変更する方法がわからないので、 – YakovL