赞
踩
我的第一篇文章是在3·8做一张贺卡,其中代码用了jieba来分词,而今天,我们将继续用Python的jieba库来制作使用工具。
先看这道题目,这是语文练习册上的阅读理解题,这道题就是我们今天要解决的题,题目让我们找出短文中的哪个词语的出现次数最多。大部分人都会选择在文章中统计,但这种方法对于段文章有效,长的文章……用这种方法费时费力。这时,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。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。