Python第三次作业:读取文本文件中出现频次最高的词语

最近python结束了基础语法的学习,进入了数据分析

老师布置了一道题(上机课美美翘了,在机房写不如在寝室写)

输出文本文件中出现频次最高的词语
文件是words.txt
内容为:
to be or not to be
to be or not to be to be or not to be
not be to be to be

反正这个方法很流氓...

我这里先是导入了Counter,直接计数,根本用不着那些循环...

from collections import Counter

然后呢就是导入文件,导入文件上网都能搜得到

接下来就直接统计词频了

# 词频统计
word_list = text.split()
word_count = Counter(word_list)

split是什么?通过对指定分隔符对字符串进行切片,如果参数 num 有指定值,则分隔 num+1 个子字符串

split() 方法语法:

str.split(str="", num=string.count(str)).
  • str -- 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
  • num -- 分割次数。默认为 -1, 即分隔所有。

然后就直接统计了


# 找出出现频次最高的词语
most_common_word, count = word_count.most_common(1)[0]

# 输出结果
print(f"出现最多的词语是 `{most_common_word}`,出现了{count}次。")

word_count.most_common(1)是返回 word_count 这个Counter对象中出现频率最高的一个元素以及它的计数为一个元组类型的列表,指定参数 1 表示我们只获取一个元素,即出现频率最高的元素。返回的这个列表中,包含一个元素,这个元素是一个元组,元组的第一个元素是出现次数最多的词语,第二个元素是这个词语出现的次数。

[0]则是取出这个出现次数最多的词语和它的出现次数组成的元组,这么做的原因是,即使我们 most_common() 只获取了一个元素,结果仍然是一个列表,我们需要从这个列表中取出唯一的元素,因为 most_common() 有可能返回多个元素。

猜你喜欢

转载自blog.csdn.net/mynameispy/article/details/130111794
今日推荐