文字中最常用的词,不包括一定长度的词

时间:2019-02-27 21:08:05

标签: python word-count

我无法找到解决问题的办法,也许有人可以提供帮助。我有一首诗,并且能够显示最常用的单词,尽管我希望所有少于5个字符的字符串都不会出现在我说的前20个最常用列表中。

import collections

import re

words = re.findall(r'\w+', open('some_poem.txt').read().lower())
most_common = collections.Counter(words).most_common(20)


print(most_common)

是否有一种简便的方法来添加这种功能?是否不显示5个字符或更少的字符串?预先感谢

2 个答案:

答案 0 :(得分:2)

{ k: v for k, v in most_common.items() if v > 5 } 只是一个字典,因此我们可以使用字典理解来过滤所需的结果:

{{1}}

答案 1 :(得分:1)

如果“少于5个字符”是指“少于5个字符长”,则可以使用{5,}(五个或更多)而不是{{ 1}}(一个或多个):

+

以下不是您要的 ,但是根据您的实际需求,获取stop words中的words = re.findall(r'\w{5,}', open('some_poem.txt').read().lower()) 并对其进行过滤可能更有用从单词列表中查找,因为很可能存在少于五个字母的“相关”单词,而有多个字母的不相关单词。

set

此外,如评论所述,出于完整性考虑,您应该养成使用stop_words = set("a,able,about,across,...,you,your".split(",")) words = re.findall(r'\w+', open('some_poem.txt').read().lower()) words = [word for word in words if word not in stop_words] 打开文件以确保之后正确关闭文件的习惯。

with