我正在尝试使用NLTK来获取整个目录中最常用的单词,该目录由大约十二个子目录组成,每个子目录中包含大约十二到二十个文本文件。我正在使用os.walk函数和NLTK的FreqDist,但我的代码似乎不起作用。我已经尝试了很多,但无法让它运行。任何帮助将不胜感激!!
答案 0 :(得分:0)
您不需要在行中包含子目录:
with open(os.path.join(directory, subdirectory, file), "r") as f:
错误是因为subdirectory
是一个列表。
你只需要:
with open(os.path.join(directory, file), "r") as f:
要报告所有文件的总数,您可以创建一个
frequency = nltk.FreqDist()
在循环之前然后在循环中更新它
frequency.update(useful_words)
然后报告
print(frequency.most_common(20))
循环后。
nltk.FreqDist
是collections.Counter
的子类。