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

时间:2018-04-17 20:58:46

标签: python nltk attributeerror os.walk word-frequency

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

1 个答案:

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