使用stylecloud生成词云
stylecloud是wordcloud优化版,相对来说操作更简单; 一个很方便的功能是,可以使用 Font Awesome 提供的免费图标更改词云的形状;
安装所需库
主要是安装一下分词用到的jieba和生成词云使用的stylecloud
安装方式推荐有很多种,推荐使用pip;
pip 是 Python 的包安装程序。其实,pip 就是 Python 标准库(The Python Standard Library)中的一个包,只是这个包比较特殊,用它可以来管理 Python 标准库(The Python Standard Library)中其他的包。pip 是一个命令行程序。 安装 pip 后,会向系统添加一个 pip 命令,该命令可以从命令提示符运行。
安装pip:
- 安装python; 这个是必须安装的;
- 下载pip:
官网地址:https://pypi.org/project/pip/#downloads; 下载完毕后,解压
- 打开命令行窗口,进入到pip解压后的目录;执行代码
python3 setup.py install
进行安装,
安装完成后,将pip加入到系统环境变量中
- 打开命令行窗口,进入到pip解压后的目录;执行代码
- 验证
打开命令行窗口,输入pip list 或者pip3 list
以上只针对于windows系统,其他系统也可以参考;
安装所需库:
打开命令行窗口,输入执行以下代码,并回车pip install jieba
pip install stylecloud等待提示第三库安装成功既可;
代码逻辑
首先使用jieba分词
通过jieba提供的cut函数,将文本分词
```python
def cut_word(txt):
make_list = jieba.cut(txt)
c = Counter() # 计数字典
words_list = []for i in make_list:
if len(i) > 1 and i!='\r\n': c[i] = c[i] +1 words words_list.append(i)
for k,v in c.most_common(10):
print(k,v)
return words_list
为了处理中文乱码问题;可以使用codecs读取文件
```py
with codecs.open('ci.txt', 'r', 'utf8') as f:
txt = f.read()
codecs专门用作编码转换,当我们要做编码转换的时候可以借助codecs很简单的进行编码转换;codecs模块提供一个open方法,三个参数encoding, errors, buffering,这三个参数都是可选参数,但是对于应用来说,需要明确指定encoding的值,而errors和buffering使用默认值即可。
- 使用获取到的分词,生成词云
使用stylecloud的gen_stylecloud方法,传入的参数icon_name可以设置为用 Font Awesome 图标的属性;
具体代码如下:
#! encoding:utf-8
import jieba # 分词
import stylecloud #词云
import codecs # 处理中文
from collections import Counter # 计数
with codecs.open('ci.txt', 'r', 'utf8') as f:
txt = f.read()
def cut_word(txt):
make_list = jieba.cut(txt)
c = Counter() # 计数字典
words_list = []
for i in make_list:
if len(i) > 1 and i!='\r\n':
c[i] = c[i] +1
words
_list.append(i)
for k,v in c.most_common(10):
print(k,v)
return words_list
word_list = cut_word(txt)
words_txt = " ".join(word_list)
stylecloud.gen_stylecloud(text=words_txt,background_color='#1A1A1A',
colors=['#5470c6','#91cc75','#fac858','#ee6666','#73c0de'],
icon_name="fas fa-pause",
max_font_size=110,
font_path="C:/Windows/Fonts/simkai.TTF",
output_name='666.jpg')