视频教程:Python教程 利用Jieba分词 + WordCloud 制作词云图_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili
首先pip install 安装需要用的模块(工具库),引入模块
import matplotlib.pyplot as plt #数学绘图模块
import jieba #分词模块
from wordcloud import WordCloud #词云模块
import numpy import PIL.Image as Image ##图像转换模块
import jieba.analyse
jieba分词
https://github.com/fxsjy/jieba
jieba 基于Python的中文分词工具,安装使用非常方便,直接pip install jieba安装,2、3版都可以
# encoding=utf-8 import jieba seg_list = jieba.cut("我来到北京清华大学", cut_all=True) print("Full Mode: " + "/ ".join(seg_list)) # 全模式 seg_list = jieba.cut("我来到北京清华大学", cut_all=False) print("Default Mode: " + "/ ".join(seg_list)) # 精确模式 seg_list = jieba.cut("他来到了网易杭研大厦") # 默认是精确模式 print(", ".join(seg_list)) seg_list = jieba.cut_for_search("小明硕士毕业于中国科学院计算所,后在日本京都大学深造") # 搜索引擎模式 print(", ".join(seg_list))
输出结果
【全模式】: 我/ 来到/ 北京/ 清华/ 清华大学/ 华大/ 大学
【精确模式】: 我/ 来到/ 北京/ 清华大学
【新词识别】:他, 来到, 了, 网易, 杭研, 大厦 (此处,“杭研”并没有在词典中,但是也被Viterbi算法识别出来了)
【搜索引擎模式】: 小明, 硕士, 毕业, 于, 中国, 科学, 学院, 科学院, 中国科学院, 计算, 计算所, 后, 在, 日本, 京都, 大学, 日本京都大学, 深造
分词过滤
就是把一些不是错误的、不是重点统计的词从分词结果中剔除。
#加载停用词
b = []
a = open(r”..\1.txt”,’rb’).read()
text= jieba.cut(a)
for i in text:
b.append(”.join(i))“
#词频清洗
f = []
for k in u:
if k not in b:
f.append(k)
词频统计
统计词频方式很多
#第一种:计数到字典,运用内置函数
from collections import Counter
a = Counter(f)
print (a) # Counter({‘Dog’: 3, 42: 2, ‘Cat’: 2, ‘Mouse’: 1})#第二种:自己循环计数存储到字典
#lists = [tuple([‘a’]),’a’,’b’,5,6,7,5]
count_dict = dict()
for item in f:
if item in count_dict:
count_dict[item] += 1
else:
count_dict[item] = 1 # Counter({‘Dog’: 3, 42: 2, ‘Cat’: 2, ‘Mouse’: 1}
q = open(r’..\2.txt’,’w’)#储存地址
q.write(str(count_dict))
q.close()
绘制词云图
https://github.com/amueller/word_cloud
wordclound是一个基于python对词频进行绘制图片的工具。
#绘制词云图
trump_coloring=numpy.array(Image.open(r”..\11.jpg”))#词云图样
wc = WordCloud(font_path=r’..\simfang.ttf’,background_color=’white’,width=20000,height=20000,margin=2,mask=trump_coloring)#,min_font_size=10)#,mode=’RGBA’,colormap=’pink’)
wc.generate(str(f))
plt.imshow(wc) # 以图片的形式显示词云
plt.axis(“off”) #关闭图像坐标系
plt.show()
参考资料:
- https://amueller.github.io/word_cloud/auto_examples/masked.html
- https://blog.csdn.net/qq_42232687/article/details/81671015
- https://blog.csdn.net/fontthrone/article/details/72775865
