pandas之中文分词,词云,情感分析,语义分析3

词云-WordCloud


  • 词云:对文本中出现的关键词按照出现频率通过改变字体字号颜色样式等方式集中显示

  • 频率较高的“关键词”予以视觉上的突出,从而给关键字设定直观的级别,过滤掉大量的低效文本信息,使浏览者只要一眼扫过词云就可以领略文本的主旨


安装 WordCloud库

案例:为《大话西游》台词节选绘制词云

#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') 

  

posted @ 2020-10-03 12:11  亚洲哈登  阅读(386)  评论(0编辑  收藏  举报