:\>pip install wordcloud
:\>pip install jieba
注:有时网速不好会出问题,显示read timed out(超时报错)
解决方式有两种:
①把Python的源设置成清华源
②设置超时时间
:\>pip --default-timeout=100 install -U jieba
开始写代码了,先新建一个文本文档,我使用的文件名是t,弄明白它的存储位置(此处是C:/Users/Administrator/Desktop/t.txt)写入需要分析的文本(此处使用的是白居易的《琵琶行》)。而后设计好要把词云图存储到哪个位置,方便查看。
import jieba
from wordcloud import WordCloud
f=open('C:/Users/Administrator/Desktop/t.txt',mode='r') #打开文本文件,文件名为t
txt=f.read() #读入文本文件
words=jieba.lcut(txt) #精确分词
newtxt=''.join(words) #空格拼接
wordcloud=WordCloud(font_path='c:\\windows\\Fonts\\simhei.ttf').generate(newtxt) #font_path指定字体文件的完整路径,默认为None,此处使用的是电脑自带字体
wordcloud.to_file('d:\\my first picture')#指定词云图存储到D盘,文件名为my first picture
这一段代码的运行结果是:
这时候就需要根据存储的位置去查看相关的词云图
若要使词云图有形状并更加精细,则需要在上述代码中添加其他的参数和语句。
要找一个有形状的图片(一般不好找,所以自己制作)
①一张普通的图片,如下图:
②用电脑自带图片编辑器打开它,该图片有些大,操作起来不太方便,可以调整一下图片大小,然后在“选择”的下拉框点击“自由图形选择”,然后开始选择,选择完毕后点击裁剪就可以了,如果要保留选择以外的部分,在裁剪前选择“反选”(仍在“选择”的下拉框中),裁剪后的图片如下:
代码如下:
import jieba
from scipy.misc import imread
from wordcloud import WordCloud
mask=imread('C:/Users/Administrator/Desktop/test.jpg')
f=open('C:/Users/Administrator/Desktop/t.txt',mode='r')
txt=f.read()
words=jieba.lcut(txt)
newtxt=''.join(words)
wordcloud=WordCloud(font_path='c:\\windows\\Fonts\\simhei.ttf',\
background_color='white',\ #图片背景颜色
width=800,\
height=600,\
max_words=200,\ #设置词云图中最大词数,默认为200
max_font_size=80,\ #设置词云最大字体号
mask=mask,\ #mask用于设置词云形状
).generate(newtxt) #由text文本生成词云
wordcloud.to_file('d:\\my second picture.png')