wordcloud是python用来生成词云的第三方库,github地址是word_cloud
下载源码:
git clone https://github.com/amueller/word_cloud
然后,直接看最老的版本,有精力的话看完最老版本可以再看最新的版本。
git tag
git checkout 1.2.1
现在我们的目录结构如下:
可以看到,核心代码都在wordcloud目录下:
wordcloud项目主要用了以下第三方库:
- Numpy
- PIL
- Cython
储备知识:
框架大体流程:
可以看出wordcloud类的两个核心方法process_text()
和generate_from_frequencies()
。
如果输入是处理后的{string:frequency}字典类型,直接生成词云的layout
,若输入是未处理过的字符串,就要先进行process_text()
统计词频等工作。
继续看generate_from_frequencies()
的流程:
就得到了词云的layout,后边可以通过recolor()
重新上色。
mask
是一个n维数组(图片),在我的理解是photoshop里的蒙板,也叫遮色片。在wordcloud里mask决定了生成词云的位置。白色#FFFFFF
称为mask out
,即不在白色区域绘制词云。
layout
is list of tuple ,格式(string, int, (int, int), int, color))
定义了每个单词的(字符串,字体大小,(x位置,y位置), 方向, 颜色)
参考:
wordcloud的API可以参考wordcloud文档中文翻译
具体使用也可以参考网易云音乐歌手词云