所需要的包
wordcloud: 处理词云的工具包
matplotlib:绘图的工具包
numpy: Python二维数据的工具包
Wordcloud的工具包使用到的属性的整理
# 创建对象
wc = wordcloud.WordCloud()
# 获取文本
txt = open(os.path.join(os.path.dirname(__file__), "1.txt")).read()
# 生成一个词云
wy = wc.generate(txt)
# 将生成的词云导出来
wy.to_file("1.png")
wordcloud的常用参数整理:
width 词云图片宽度,默认400像素
height 词云图片高度 默认200像素
background_color 词云图片的背景颜色,默认为黑色
background_color='white'
font_step 字号增大的步进间隔 默认1号
font_path 指定字体路径 默认None,对于中文可用font_path='msyh.ttc'
mini_font_size 最小字号 默认4号
max_font_size 最大字号 根据高度自动调节
max_words 最大词数 默认200
stopwords 不显示的单词 stop_words={"python","java"}
Scale 默认值1。值越大,图像密度越大越清晰
prefer_horizontal:默认值0.90,浮点数类型。表示在水平如果不合适,就旋转为垂直方向,水平放置的词数占0.9?
relative_scaling:默认值0.5,浮点型。设定按词频倒序排列,上一个词相对下一位词的大小倍数。有如下取值:“0”表示大小标准只参考频率排名,“1”如果词频是2倍,大小也是2倍
mask 指定词云形状图片,默认为矩形
通过以下代码读入外部词云形状图片(需要先pip install imageio安装imageio)
import imageio
mk = imageio.imread("picture.png")
w = wordcloud.WordCloud(mask=mk)
中文分词库jieba的常用方法
精确模式(最常用,只会这个就行):每个字只用一遍,不存在冗余词汇。jieba.lcut('动力学和电磁学')
全模式:把每个字可能形成的词汇都提取出来,存在冗余。jieba.lcut('动力学和电磁学',cut_all=True)
搜索引擎模式:将全模式分词的结果从短到长排列好。jieba.lcut_for_search('动力学和电磁学')
eg:
>>> import jieba
>>> textlist1 = jieba.lcut('动力学和电磁学')
>>> textlist1
['动力学', '和', '电磁学']
>>> textlist2 = jieba.lcut('动力学和电磁学',cut_all=True)
>>> textlist2
['动力', '动力学', '力学', '和', '电磁', '电磁学', '磁学']
>>> textlist3 = jieba.lcut_for_search('动力学和电磁学')
>>> textlist3
['动力', '力学', '动力学', '和', '电磁', '磁学', '电磁学']