クラス割り当て用に作成しているPythonスクリプトがあります。このスクリプトは、テキストドキュメントで最も頻繁に使用される上位10の単語を計算し、単語とその頻度を表示します。スクリプトのこの部分は問題なく機能するようにできましたが、割り当てでは、単語は2文字以上として定義されていると書かれています。なんらかの理由で単語を2文字以上と定義できないようですが、スクリプトを実行しても何も起こりません。
# Most Frequent Words:
from string import punctuation
from collections import defaultdict
def sort_words(x, y):
return cmp(x[1], y[1]) or cmp(y[0], x[0])
number = 10
words = {}
words_gen = (word.strip(punctuation).lower() for line in open("charactermask.txt")
for word in line.split())
words = defaultdict(int)
for word in words_gen:
words[word] +=1
letters = len(word)
while letters >= 2:
top_words = sorted(words.iteritems(),
key=lambda(word, count): (-count, word))[:number]
for word, frequency in top_words:
print "%s: %d" % (word, frequency)