我的第一篇文章是在3·8做一张贺卡,其中代码用了jieba来分词,而今天,我们将继续用Python的jieba库来制作使用工具。
![](https://img-blog.csdnimg.cn/img_convert/f1f4f52de6560d86b2d33b7de52aa5d1.jpeg)
先看这道题目,这是语文练习册上的阅读理解题,这道题就是我们今天要解决的题,题目让我们找出短文中的哪个词语的出现次数最多。大部分人都会选择在文章中统计,但这种方法对于段文章有效,长的文章……用这种方法费时费力。这时,Python可以帮到我们。
先看代码:
import jieba
f = open('word.txt', 'r', encoding='utf-8')#word.txt是文件名,如果文件名字不一样,请在单引号内更改
txt = f.read()
words = jieba.lcut(txt)
f.close()
counts = {}
for w in words:
if len(w) > 1:
c = counts.get(w, 0)
counts[w] = c + 1
#遍历字典counts, 逐行输出:词语 次数
for l in counts:
print(l,counts[l])
首先你要在代码的源文件的同一个目录中建立一个.txt文件,用Windows的记事本即可,同样,名字取号,编码是UTF-8。而txt的内容就是你要的文章。
这时候运行代码,给出的结果是jieba所分的词的每个词的数量,只要找到后面数字最大的词就可以了。
这道题完成了,但是如果“我”想让代码直接出示最多数量的词,该怎么办?
以下代码能帮到你:
import jieba
f = open('word.txt', 'r', encoding='utf-8')
txt = f.read()
words = jieba.lcut(txt)
f.close()
counts = {}
for w in words:
if len(w) > 1:
c = counts.get(w, 0)
counts[w] = c + 1
mxa = 0
name = ""
for i in counts:
if counts[i] > mxa:
mxa = counts[i]
name = i
print(name,mxa)
这个代码用了一个变量max,可以把每个词语的出现次数进行统计,最多的那个词就是name,次数就是max。