尝试对目录和子目录中的所有文件使用 os.walk 和 FreqDist

Trying to use os.walk to and FreqDist for all files in a directory and subdirectories

我正在尝试使用 NLTK 获取整个目录中最常用的单词,该目录由大约十几个子目录组成,每个子目录中有大约一打到两打文本文件。我正在使用 os.walk 函数和 NLTK 的 FreqDist,但我的代码似乎不起作用。我已经尝试了很多,但无法达到 运行。任何帮助将不胜感激!!

您不需要在以下行中包含子目录:

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.FreqDistcollections.Counter 的子类。