python 结巴分词,清洗,计数以及绘制词云图

*

*python 结巴分词,清洗,计数以及绘制词云图

*
1. 安装所需要的包,相信大家都知道 pip install 加要安装的包,记得要重复一次才算是安装好的,导入如图所有包:

"""
import matplotlib.pyplot as plt     #数学绘图库
import jieba               #分词库
from wordcloud import WordCloud   #词云库
import numpy 
import PIL.Image as Image ##图像转换
import jieba.analyse               

2.结巴分词是很好用的文本分析工具,因为后面有文本清洗,故这里用list,也是本人懒,名字一般都是abcd什么的,希望其他不习惯的人见谅

#结巴分词为list
text = open(r'..\bieyin.txt',"rb").read()
cut_text= jieba.cut(text)
result= "/".join(cut_text)
u = []
for x in cut_text: 
    u.append(''.join(x))

3.文本清洗,这是清洗掉无用词,也叫停用词,在百度搜索一般都可以搜到,清洗得到比较干净的数据,一般停用词库还是要自己不断更新添加

#加载停用词
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)

4.文本计数,有两种方法

#第一种:计数到字典,运用内置函数
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()        

5.最后绘制词云图

#绘制词云图
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()

6.这个程序我是以背影为例,得到最后结果如下图python 结巴分词,清洗,计数以及绘制词云图_第1张图片


小白的程序之路

写任何程序都会遇到各种问题,正是这些问题才让我们成长。
前面对文本的操作没有太大问题,就是词云图字体和显示图片形状的会遇到问题,字体也是在百度上搜索,也可以在文章下面下载,是.tff结尾,图片形状就是图形地址控制,该程序可以直接用,有什么问题即使提出,大家一起进步。
还有最后一点,我自己认为这个词云图可以用来制作微博,QQ空间,微信朋友圈等消息的关键词词云图,看看朋友们的关注点在那些上面,快去动手吧!
希望下次我可以做一次需要登陆网站信息的爬取的博客,前提是有人看哦!最好评论交流,增加我的积极性。

你可能感兴趣的:(python 结巴分词,清洗,计数以及绘制词云图)