Python 与 Packages(五):jieba + wordcloud
jieba 库:中文分词第三方库
jieba 是优秀的中文分词第三方库
安装:
pip install jieba
jieba库常用函数
函数 作用 jieba.lcut(s)
精确模式,返回一个列表类型的分词结果 jieba.lcut(s,cut_all=True)
全模式,返回一个列表类型的分词结果,存在冗余 jieba.lcut_for_search(s)
搜索引擎模式,返回一个列表类型的分词结果,存在冗余 jieba.add_word(w)
向分词词典增加新词 w
wordcloud 库:词云展示第三方库
由文本变为词云,wordcloud 库做了什么?
- 分隔:将文本以空格分隔成单词
- 统计:单词出现的次数并过滤
- 字体:根据统计配置字号
- 布局:颜色环境尺寸
所以使用时只需要给出一个以空格分隔的字符串就可以了。
实现步骤
w = wordcloud.WordCloud(<参数>)
创建一个词云对象w
参数
参数 说明 width
指定词云对象生成图片的宽度。默认 400 像素 height
高度。默认 200 像素 min_font_size
指定词云中字体的最小字号。默认 4 号 max_font_size
最大字号。 font_step
指定词云中字体字号的步进间隔。默认为 1 font_path
指定字体文件的路径,默认 None max_words
指定词云显示的最大单词数量,默认 200 stop_words
指定词云的排除词,即不显示的单词, 例如 stop_words={"python", "world"}
mask
指定词云形状。默认矩形 background_color
指定背景颜色。默认黑色
两个方法
函数 说明 w.generate(txt)
向词云对象 w 中加载 txt,txt 是以空格分隔的字符串。 w.generate("Python and WordCloud")
w.to_file(filename)
将词云输出为图像文件, .png
或.jpg
格式。w.to_file("outfile.png")
jieba + wordcloud 示例
- 展示《沉默的羔羊》中出现最多的词及出现的次数
- 展示《沉默的羔羊》词云
代码:
import jieba
import wordcloud
# 读取文件
file = open("沉默的羔羊.txt", "r", encoding="utf-8")
txt = file.read()
file.close()
# jieba库分词,过滤单个字
ls_temp = jieba.lcut(txt)
ls = []
for word in ls_temp:
if len(word) >= 2:
ls.append(word)
# 打印出现最多的词
d = {}
for word in ls:
d[word] = d.get(word,0) + 1
lt = list(d.items())
lt.sort(key=lambda ele:ele[1],reverse=True)
word,count = lt[0]
print("{} {}".format(word, count))
# 输出词云
Str = " ".join(ls)
w = wordcloud.WordCloud(width=1000, height=700, background_color="white", \
font_path="msyh.ttc")
w.generate(Str)
w.to_file("lambs.png")
输出结果:
Building prefix dict from the default dictionary ...
Dumping model to file cache C:\Users\莫临城\AppData\Local\Temp\jieba.cache
Loading model cost 1.535 seconds.
Prefix dict has been built successfully.
史达琳 701
<wordcloud.wordcloud.WordCloud at 0x212d626c1f0>
词云:
《沉默的羔羊》
链接:https://pan.baidu.com/s/1_YibOGIAL0oTtalBahP1tA?pwd=xby3 提取码:xby3
Python 与 Packages(五):jieba + wordcloud
https://luminous-ee.github.io/2023/01/27/Python-与-Packages(五):jieba-wordcloud/