Python jieba结巴分词、过滤、统计计数以及wordcloud生成词云图

[广告:最高 ¥2000 红包]阿里云服务器、主机等产品通用,可叠加官网常规优惠使用 | 限时领取

视频教程: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

码中人 微信公众号