首先 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://blog.csdn.net/qq_42232687/article/details/81671015
- https://blog.csdn.net/fontthrone/article/details/72775865
来源: http://www.mzh.ren/python-jieba-and-wordcloud.html