python学习(13)————jieba进阶生成词云
来源:互联网 发布:阿里云网站备案查询 编辑:程序博客网 时间:2024/05/18 03:51
提取小说《开国太后纪事》得到的结果
安装WordCloud
构建词云的方法很多,这里我们介绍一下WordCloud的使用方法,WordCloud是可以自定义图片背景,然后通过给的文档自动生成词云,它会根据词出现频率的大小来确定词的大小。安装方法有两种:
一种是自己下包,并用pip安装依赖然后再安装,一种是直接安装:
它的官网是:
官网: https://amueller.github.io/word_cloud/
github: https://github.com/amueller/word_cloud
1、到github上下载包,解压后进入文件夹:
执行
pip install -r requirements.txtpython setup.py install
2、直接执行:
pip install wordcloud
wordcloud生成代码
我们根据https://github.com/amueller/word_cloud/blob/master/examples/colored.py的代码,修改后来处理中文词条数据。当然,一个小说首先得先通过jieba自动分词,否则无法获得词条。然后再通过wordcloud处理得到图片。主要流程如下
代码如下:
#encoding=utf-8import jiebaimport mathfrom os import pathfrom scipy.misc import imreadimport matplotlib.pyplot as pltfrom collections import Counterimport jieba.analyseimport timeimport sys from wordcloud import WordCloud, STOPWORDS, ImageColorGenerator#让文件以utf-8的形式读取reload(sys) sys.setdefaultencoding('utf8')# 获取当前文件路径# __file__ 为当前文件, 在ide中运行此行会报错,可改为# d = path.dirname('.')d = path.dirname(__file__)# 读取文本 source.txt 在包文件的example目录下source = 'source.txt'# 设置背景图片alice_coloring = imread(path.join(d, "1.jpg"))wc = WordCloud(font_path="C:\Windows\Fonts\FZSTK.TTF",#设置字体background_color="white", #背景颜色max_words=2000,# 词云显示的最大词数mask=alice_coloring,#设置背景图片stopwords=STOPWORDS.add("said"),#设置不用的词max_font_size=100, #字体最大值relative_scaling=.4,#设置相对大小random_state=42)#使用jieba对source.txt进行分词,并将得到的数据转换格式以便于中文输出with open(source,'r') as fr: d1=jieba.analyse.extract_tags(fr.read(),topK=100,withWeight=True)data = [] for tag in d1: data.append((tag[0].encode('gbk').decode('gbk'),tag[1]))# 生成词云, 可以用generate输入全部文本(中文不好分词),也可以我们计算好词频后使用generate_from_frequencies函数wc.generate_from_frequencies(data)#设置背景图片image_colors = ImageColorGenerator(alice_coloring)# 以下代码显示图片plt.imshow(wc)plt.axis("off")# 绘制词云plt.figure()# 重新绘制词云并展示# 我们也可以直接在构造函数中设置参数 color_func=image_colorsplt.imshow(wc.recolor(color_func=image_colors))plt.axis("off")# 绘制背景图片为颜色的图片plt.figure()plt.imshow(alice_coloring, cmap=plt.cm.gray)plt.axis("off")plt.show()# 保存图片wc.to_file(path.join(d, "1.png"))
使用WordCloud出现的问题
- wordcloud中文显示不出怎么办:
中文显示不出可以设置wc的参数,font_path到你想要的字体下。例如,在Windows环境下,我将参数设置到C:\Windows\Fonts\FZSTK.TTF这个字体下。windows一些自带的字体都在C:\Windows\Fonts\下,你也可以自己下载一些字体展示: - wordcloud无法调用jieba产生数据:
目前我想到的就是通过jieba获取数据,然后挨个将中文的编码用unicode解析和gbk读取一遍。 - wordcloud说缺少模块 imread:
用pip或者easy_install安装scipy
0 0
- python学习(13)————jieba进阶生成词云
- Python+jieba生成词云
- Python学习——jieba分词库和time模块
- python学习(12)————jieba分析数据
- jieba(结巴)—— Python 中文分词
- python进阶学习笔记(大纲)——摘自慕课网 python进阶
- python jieba分词学习
- Python + worldcloud + jieba 十分钟学会用任意中文文本生成词云
- Python + worldcloud + jieba 十分钟学会用任意中文文本生成词云
- 好玩的分词——python jieba分词模块的基本用法
- python 结巴分词(jieba)学习
- python 结巴分词(jieba)学习
- python 结巴分词(jieba)学习
- python 结巴分词(jieba)学习
- python 结巴分词(jieba)学习
- python 结巴分词(jieba)学习
- python 结巴分词(jieba)学习
- Python学习之jieba、wordcloud
- uva 11468 ac自动机+概率DP+简单的数据生成器
- vim基本操作
- 公约数的简单应用
- PS中灰度图像如何查看像素值
- 过拟合的解决方法
- python学习(13)————jieba进阶生成词云
- 剑指Offer_54_字符流中第一个不重复的字符
- java自带线程池和队列详细讲解
- 冒泡排序法
- ROS+科大讯飞语音=让你的机器人能听会说---(三)识别篇
- mysql字符集介绍
- P NP NPC问题
- 关于String的操作及格式化
- 小米笔试题