免费高效制作精美词云(Python、wordart)
现在网上制作词云的工具太多,但是存在一个问题,就是免费的词云网站制作得丑、不支持中文、没有词频统计,收费的又感觉没那必要。现提供以下简单的词频统计+词云制作的方法。
首先,用到免费的词云制作网站为wordart.com,是个外国网站,需要导入词频统计数据。里面包含的词云调整功能丰富,可以自定义的地方很多,大家可以自己探索。
关于中文词频统计,则采用Python库进行。这里用到的是jieba第三方库,分词较准,灵活操作性强。脚本我已经编写好了,大家只需照做即可 。
[TOC]
一、中文词频统计
编写以下Python脚本:
1 | import csv |
代码的第一段可根据自己的需求进行更改。现对这些参数进行解释。
1. 需要分析的文本文件 in_file_name
在同目录下准备以下三个文件:需要分析的文本文件、用户自定义词典、屏蔽词库。将需要分析的文本文件名填入in_file_name中。
示例中,test.txt包含需要词频统计的内容。
2. 用户自定义词典 user_dict_name
此处脚本中,使用jieba默认的精确模式,会自动识别新词。但如果自己想添加自定义的词,可以在新的文本文件(utf-8)中按照以下方式进行添加:
1 | 创新办 3 i |
一个词占一行;每一行分三部分:词语、词频(可省略)、词性(可省略),用空格隔开,顺序不可颠倒。
词性表参见fxsjy/jieba: 结巴中文分词 (github.com)
比如:
关于jieba库的使用参见:fxsjy/jieba: 结巴中文分词 (github.com)
3. 屏蔽词库 block_words_name
新建一个文本文件,在里面添加不需要进行词频统计的词。一行一词。
比如:
4. 输出的.csv文件名 out_file_name
指定输出的.csv文件名。
5.(可选)屏蔽词性block_word_class
指定不需要进行词频统计的词的词性。词性列表参见下文。这里默认屏蔽连词、助词、介词、代词。
6.(可选)保留词的正则表达式 regex
指定需要进行词频统计的词的正则表达式。这里默认为中文、英文和数字。
当一切准备好后,运行脚本。
输出:
二、WordArt网站设置
运行以上脚本,复制输出的内容后。打开网站Word Art - Edit - WordArt.com。
1. 导入统计信息
点击导入:
粘贴,并按照以下设置:
导入成功:
其他自定义操作可自行在网站上操作。
2. 导入字体
网站支持英文词云。如果想让中文词云也能生成,就必须上传一款中文字体。中文字体可以在系统字体(Fonts文件夹)中找:
导入字体后:
3. 选择形状
可以在网站图库中选。这里我采用自己上传的方式。注意,上传PNG图片更好。
至于词云中其他自定义设定可以自行探索。
4. 生成
准备好了之后,点击生成按钮。
当当当当!生成成功。
参考连接
不同的词频统计第三方库:Python中文分词及词频统计 - 简书 (jianshu.com)
csv库官方文档:csv — CSV File Reading and Writing — Python 3.10.2 documentation