python中的NLTK 具有FreqDist函数,可为您提供文本中单词的出现频率。我试图将我的文本作为参数传递,但结果的形式为:
[' ', 'e', 'a', 'o', 'n', 'i', 't', 'r', 's', 'l', 'd', 'h', 'c', 'y', 'b', 'u', 'g', '\n', 'm', 'p', 'w', 'f', ',', 'v', '.', "'", 'k', 'B', '"', 'M', 'H', '9', 'C', '-', 'N', 'S', '1', 'A', 'G', 'P', 'T', 'W', '[', ']', '(', ')', '0', '7', 'E', 'J', 'O', 'R', 'j', 'x']
而在 NLTK 网站的示例中,结果是整个单词,而不仅仅是字母。我这样做是这样的:

file_y = open(fileurl)
p = file_y.read()
fdist = FreqDist(p)
vocab = fdist.keys()
vocab[:100]

你知道我有错吗?谢谢!

最佳答案

FreqDist需要可迭代的 token 。字符串是可迭代的---迭代器产生每个字符。

首先将您的文本传递给 token 生成器,然后将 token 传递给FreqDist

10-07 15:14