jieba分词+wordcloud——《斗破苍穹》词云

效果图:

环境:python、jieba、wordcloud。

材料:《斗破苍穹》、背景图(背景图需要保证除了图案之外,其他地方是‘空白’,友情提示:空白是空白,不是看起来白,要保证像素值为0)

jieba和wordcloud都可以通过pip install 来安装,很省事。

结巴分词

千言万语抵不过官方一句: https://github.com/fxsjy/jieba

总之,我们给jieba文章,jieba给我们分开后的单词list,以及一些诸如wordcount之类的操作。

wordcloud

http://amueller.github.io/word_cloud/

这个‘词云’库也简单的令人发指,只要给它个字符串,给它个背景图片,它就可以给我们上面那个效果图。

我这里没有让wordcloud自己分词,而是使用结巴分词后,再用wordcloud来作图,jieba分词更高效更准确。

引入包

import jieba
from collections import  Counter
from os import path
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl
from wordcloud import WordCloud, STOPWORDS
## 设置字符集,防止中文乱码
mpl.rcParams['font.sans-serif']=[u'simHei']
mpl.rcParams['axes.unicode_minus']=False

jieba分词(拿到list)

# 创建存储分词结果的字典
word_count = dict()
# 分词并统计词频
f = open('E:/my_create_resource/deeplearning/data/语料/斗破苍穹.txt',encoding='utf-8')
words = f.read()

seg_list = jieba.lcut(words, cut_all=True)

wordcloud绘制词云

cut_text =" ".join(seg_list) #将list转化为str,因为wordcloud只要str

d = path.dirname("./")
color_mask = np.array(Image.open(path.join(d, "3.jpg"))) # 引入北京图片

cloud = WordCloud(
       #设置字体,不指定就会出现乱码。非windows系统自觉更换路径
       font_path=" C:\\Windows\\Fonts\\STXINGKA.TTF",
       #font_path=path.join(d,'simsun.ttc'),
       #设置背景色
       background_color='white',
       #词云形状
       mask=color_mask,
       #允许最大词汇
       max_words=2000,
       #最大号字体
       max_font_size=40
   )
 
wCloud = cloud.generate(cut_text)
wCloud.to_file('斗破苍穹.jpg')

plt.figure(figsize=(10,8))
plt.imshow(wCloud, interpolation='bilinear')
plt.axis('off')
plt.show()
发布了88 篇原创文章 · 获赞 28 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_35946969/article/details/88030714