词云入门进阶
"词云”就是对文本中出现频率较高的词予以视觉上的突出,形成“关键词云层”或“关键词渲染”,从而过滤掉大量的文本信息,使浏览网页者只要一眼扫过文本就可以领略文本的主旨。
先来一张最终的效果图
第一步先让文本内容出现频率较高的关键词到落到图片上面并展示出来
做这一步要先下载词云库:
pip install wordcloud-1.4.1-cp36-cp36m-win_amd64.whl
from wordcloud import WordCloud
#打开ciyun.txt文本文件
with open("ciyun.txt",encoding="utf-8") as f:
#读取文本文件
text = f.read()
#生成词云
wordcloud = WordCloud().generate(text)
#将词云落到图片上
image = wordcloud.to_image()
#展示词云图片
image.show()
#保存图片到文件
wordcloud.to_file("pic.jpg")
此刻有几个问题需要解决升级:
1.中文问题,不能显示
2.背景是黑色的,能不能修改
3.图形是方的,能不能自定义图形
4.中文的分词的问题--jieba
直接上代码
from wordcloud import WordCloud
import jieba
import PIL.Image as Image
import numpy
# 不想显示的文字,过滤文字
stopword = {"傻逼", "辣鸡"}
#将文本中的这个词认为一个词
jieba.add_word="词云"
# 定义一个中文的分词函数
def chinese_word(text):
#将文本分词
wordlist_jieba = jieba.cut(text)
#分出来的词用空格连接起来
wl_space_split = " ".join(wordlist_jieba)
return wl_space_split
with open("cy.txt", encoding="utf-8") as f:
text = f.read()
cn_text = chinese_word(text) # 调用中文分词函数
mask_pic = numpy.array(Image.open("china.jpg")) # 加载图片做背景
# 生成词云的核心代码,指定背景颜色、字体、最多多少个单词、过滤噪音文字、添加背景图片
wordcloud = WordCloud(background_color="white", font_path="FZLTXIHK.TTF", mask=mask_pic, max_words=200,stopwords=stopword).generate(text)
image = wordcloud.to_image() # 出图
image.show() # 打开图片
wordcloud.to_file("pic.jpg") # 保存图片到文件里
需要安装的库有:
pip install wordcloud-1.4.1-cp36-cp36m-win32.whl
pip install jieba
pip install
就可以得到预期想要的效果了。