pandas之中文分词,词云,情感分析,语义分析3
词云-WordCloud
-
词云:对文本中出现的关键词按照出现频率通过改变字体字号颜色样式等方式集中显示
-
频率较高的“关键词”予以视觉上的突出,从而给关键字设定直观的级别,过滤掉大量的低效文本信息,使浏览者只要一眼扫过词云就可以领略文本的主旨
安装 WordCloud库
- 如系统未安装C++编译库,WordCloud库需要下载whl再使用pip安装
- http://www.lfd.uci.edu/~gohlke/pythonlibs/#wordcloud
- pip install e:/wordcloud-1.5.0-cp36-cp36m-win_amd64.whl
案例:为《大话西游》台词节选绘制词云
#1 载入文本数据 with open('data/大话西游.txt', 'r', encoding='utf-8') as f: txt = f.read() #分词,分词后的重组 txt2 = ' '.join(jieba.cut(txt)) # 停用词。读入停用词文件为列表 with open('data/stopword.txt', 'r', encoding='utf-8') as f: s = f.read() stopword = s.split('\n') stopword # 基本版词云 wordcloud = WordCloud(font_path='data/font/yegenyou.ttf').generate(txt2) plt.figure(figsize=(18, 10)) plt.imshow(wordcloud) # 词云2 wordcloud = WordCloud( font_path="data/font/yegenyou.ttf", # 字体,不设置则汉字乱码 background_color='white',# 设置背景颜色 max_words=80, # 设置最大现显示词数 max_font_size=80, # font_size可选 stopwords=stopword, # 去停用词 ).generate(txt2) wordcloud plt.figure(figsize=(18, 10), dpi=72) plt.imshow(wordcloud, interpolation='bilinear') # 绘制数据内的图片,双线性插值绘图 plt.axis("off") # 去掉坐标轴 plt.savefig('temp/test.png', dpi=300, bbox_inches='tight') # 保存为:带有最小白边且分辨率为300DPI的PNG图片 # 词云升级版,自定义背景的词云图 #读取背景图 alice_mask = np.array(Image.open("data/timg.jpg")) alice_mask plt.imshow(alice_mask) wordcloud = WordCloud( background_color='white',# 设置背景颜色 max_words=100, # 设置最大现显示词数 font_path="data/font/maozedong.ttf", # 字体,不设置则汉字乱码 stopwords = stopword, # 去停用词 mask=alice_mask, # 设置背景图片 ).generate(txt2) wordcloud plt.figure(figsize=(18, 10), dpi=72) plt.imshow(wordcloud, interpolation='bilinear') # 绘制数据内的图片,双线性插值绘图 plt.axis("off") # 去掉坐标轴 plt.savefig('temp/test3.png', dpi=300, bbox_inches='tight')
本文为原创文章,转载请标明出处