-2
私はこのテキストファイルですべてのトライグラムを検索しようとしていますが、このコードを使用するとエラーメッセージは表示されませんが、希望のトリグラムも表示されません。それはただ何も返しません。ここでテキストファイル内でトリグラムを見つける
はコードです:Pythonで
import sys
def arg2(pair):
return pair[1]
def getTrigrams(wordList):
trigrams = []
for i in range(len(wordList) - 2):
trigram = (wordList[i], wordList[i + 1], wordList[i + 2])
trigrams.append(trigram)
return trigrams
def main(argv):
if len(argv) > 1:
for arg in argv[1: ]:
text = open(arg, "r")
trigram_dictionary = {}
content = text.read()
lines = content.split("\n")
for line in lines:
words = [word for word in line.split(" ") if word.isalpha()]
trigram_list = getTrigrams(words)
for trigram in trigram_list:
if trigram not in trigram_dictionary:
trigram_dictionary[trigram] = 1
else :
trigram_dictionary[trigram] += 1
sorted_trigram_frequencies = sorted(trigram_dictionary.items(),
key = arg2, reverse = True)
for trigram in sorted_trigram_frequencies:
print("{0:20}\t{1:5}".format("\t".join(trigram[0]), trigram[1]))
if __name__ == '__main__':
main(sys.argv)
あなたが直面している問題の__ *非常に* __簡単な説明でコードを投稿するだけで、有効な質問はここにありません。 –
Pythonで 'ngrams'を正しく実行する方法については、無数の**投稿があります。 –
いくつかの基本的なデバッグから始めましょう。いくつかのprintステートメントをさまざまな場所に挿入して、プログラムの状態がその時点になることが予想される場所であることを確認します。何かが予期しない結果をもたらす場所を見つけたら、どこで問題を探すのが良いかわかります。 (また、ここに貼り付けると、あなたのコードの書式をチェックしてください:あなたの関数のすべてが間違ってインデントされています。これはPythonでは非常に重要です。) – glibdud