这给了我一个文本中单词的频率:
fullWords = re.findall(r'\w+', allText)
d = defaultdict(int)
for word in fullWords :
d[word] += 1
finalFreq = sorted(d.iteritems(), key = operator.itemgetter(1), reverse=True)
self.response.out.write(finalFreq)
这也给了我一些无用的词,比如“an”“a”
我的问题是,python中是否有一个停止词库可以删除所有这些常用词?我想在谷歌应用引擎上运行这个
我知道NLTK有一个包含语料库和许多语言的停止词的包,包括英语,更多信息请参见here。NLTK还有一个词频计数器,这是一个很好的自然语言处理模块,您应该考虑使用它。在
有一种简单的方法来处理这个问题,只需稍微修改一下您已经编写的代码(编辑以反映John的评论):
这种方法通过两个步骤构造排序列表:首先,它过滤掉所需的“停止词”列表中的任何单词(为了提高效率,已将其转换为
set
),然后对其余条目进行排序。在您可以下载各种格式的停止字列表作为文件,例如从here下载——Python需要做的就是读取文件(这些文件是
csv
格式的,很容易用csv
模块读取),创建一个集合,并使用该集合中的成员身份(可能有一些规范化,例如小写)将单词从计数中排除。在相关问题 更多 >
编程相关推荐