Python可以帮忙写作业?jieba专题——统计词频

我的第一篇文章是在3·8做一张贺卡,其中代码用了jieba来分词,而今天,我们将继续用Python的jieba库来制作使用工具。

Python可以帮忙写作业?jieba专题——统计词频_第1张图片

先看这道题目,这是语文练习册上的阅读理解题,这道题就是我们今天要解决的题,题目让我们找出短文中的哪个词语的出现次数最多。大部分人都会选择在文章中统计,但这种方法对于段文章有效,长的文章……用这种方法费时费力。这时,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。

你可能感兴趣的:(python)