本文出自博客Vander丶博客,如需转载请标明出处,尊重原创谢谢
词云又叫文字云,是对文本数据中出现频率较高的”关键字”在视觉上的突出呈现,形成关键词的渲染形成类似云一样的彩色图片,从而一眼就可以领略文本数据的主要表达意思.
现成的词云制作工具也很多: 1.Wordle是一个用于从文本生成词云图而提供的游戏工具. 2.Tagxedo可以在线制作个性化词云. 3.Tagul是一个Web服务,同样可以创建华丽的词云. 4.Tagcrowd还可以输入web的url,直接生成某个网页的词云.词云的本质是对文本中的词进行词云统计,根据出现频率的多少来按比例展示大小.
1.对文本数据进行分词,也是众多NLP文本处理的第一步,对于wordcloud中的process_text()方法,主要是停词的处理.
2.计算每个词在文本中出现的频率,生成一个哈希表。词频计算相当于各种分布式计算平台的第一案例wordcount, 和各种语言的hello world 程序具有相同的地位了,呵呵。
3.根据词频的数值按比例生成一个图片的布局,类IntegralOccupancyMap是该词云的算法所在,是词云的数据可视化方式的核心。
4.将词按对应的词频在词云布局图上生成图片,核心方法是generate_from_frequencies,不论是generate()还是generate_from_text()都最终到generate_from_frequencies
5.完成词云上各词的着色,默认是随机着色
这十行代码构建的词云,没有通过API从公众号(wireless_com)直接获取,简化和抽象是工程化的典型方式,这里至今复制粘贴,甚至省略了correct的过程,直接将数据存储在纯文本文件中,通过jieba分词进行处理即compose,使用词云生成可视化图片用于消费consume,把一个个自己生成的词云组织到不同的文件目录便于检索算是初步的管控control吧。
关于分词的库 https://github.com/fxsjy/jieba 关于词云的库 https://github.com/amueller/word_cloud首先先安装wordcloud和jieba
pip install wordcloud pip install jieba Python核心代码 import matplotlib.pyplot as plt from wordcloud import WordCloud import jieba text_from_file_with_apath =open("/Users/vander/Desktop/dada",encoding="UTF-8").read() wordlist_after_jieba =jieba.cut(text_from_file_with_apath,cut_all=True) wl_space_split =" ".join(wordlist_after_jieba) my_wordcloud =WordCloud(font_path="/Library/Fonts/Songti.ttc").generate(wl_space_split) plt.imshow(my_wordcloud) plt.axis("off") plt.show() 解析: 1-3行分别导入了画图的库,词云生成库和jieba的分词库. 4行是读取本地的文件. 5-6行使用jieba进行分词,并对分词的结果以空格分隔开. 7行对分词后的文本生成词云. 8-10行用pyplot展示词云图.本文为曹老师在 Python学习班分享的内容整理而成。
