使用python的wordcloud包实现中文标签云制作
来源:互联网 发布:java编程培训机构 编辑:程序博客网 时间:2024/05/24 20:08
一、前言
数据分析报告之中文标签云
在我的前一篇博客(python爬虫爬取拉勾网职业信息)中,获得了一份格式化的职业信息数据,不清楚的可以看看我的上一篇博客。
python制作标签云的包有几个,我这里选用了wordcloud,直接pip install 即可。
二、实战
1、统计词频数
前面我们用爬虫已经抓取了一份格式化的数据,要制作标签云,要先把各个公司职位优势的词频数统计出来,代码如下:
def wordCount(filename): ''' 简单计算词频的函数 :param filename: 文件名 :return: 词频 ''' wordCount = {} file = open(filename,'r') while True: line = file.readline() if line: wordlist = line.split(',[') if len(wordlist) == 1: continue wordlist = wordlist[1].split('],')[0].split(',') for word in wordlist: word = word.replace(' ', '').replace("'", '') if word in wordCount.keys(): wordCount[word] = wordCount[word]+1 else: wordCount[word] = 1 else: break return [(k, wordCount[k]) for k in wordCount.keys()]注意,上述代码只用于特定格式下,即爬虫抓取回来的职位信息中公司优势的词频统计
2、生成标签云
def generateCloud(filename,imagename,cloudname,fontname): ''' 生成标签云的函数 ''' coloring = imread(imagename) # 读取背景图片 wc = WordCloud(background_color="white", # 背景颜色max_words=2000,# 词云显示的最大词数 mask=coloring, # 设置背景图片 stopwords=STOPWORDS, # 停止词 font_path=fontname, # 兼容中文字体 max_font_size=150) # 字体最大值 #计算好词频后使用generate_from_frequencies函数生成词云 #txtFreq例子为[('词a', 100),('词b', 90),('词c', 80)] txtFreq = wordCount(filename) wc.generate_from_frequencies(txtFreq) # 生成图片 plt.imshow(wc) plt.axis("off") # 绘制词云 plt.figure() # 保存词云 wc.to_file(cloudname)这里需要注意的是,fontname这个参数,在ubuntu系统下,生成中文标签云默认字体可能会不兼容,所以要重新指定兼容的字体,直接在window系统下复制微软雅黑(msyh,tff)字体过来即可。
3、运行
if __name__ == '__main__': d = path.dirname(__file__) # 获取当前文件路径 fontname = path.join(d, 'msyh.ttf') # 中文字体路径 filename = path.join(d, '广州.txt') # txt文件路径 imagename = path.join(d, "circle.jpg") # 背景图片路径 cloudname = path.join(d, "cloud.png") # 标签云路径 generateCloud(filename, imagename, cloudname, fontname)三、结果
1、选用的背景图片--circle.jpg
2、生成的标签云--cloud.png
3、到这里就大工告成了,具体代码可以在我的github上找到:https://github.com/lpty
0 0
- 使用python的wordcloud包实现中文标签云制作
- 在python上使用wordcloud制作自己的词云
- python + wordcloud实现任意形状标签云
- python wordcloud的使用
- python的wordcloud使用
- Python使用wordcloud+pillow基于给定图像制作词云
- python使用wordcloud生成词云(能识别中文)
- python包——好玩的wordcloud
- python运用jieba和wordcloud库简单实现对QQ聊天记录制作词云
- Python 3.6 使用wordcloud制作词云(可设背景图像)
- python使用wordcloud创建词云
- Python使用wordcloud做词云
- Python中文分词_使用介绍(wordcloud+jieba)
- Python词云库wordcloud 显示中文 !!!
- python wordcloud 对电影《我不是潘金莲》制作词云
- 解决Python词云库wordcloud不显示中文的问题
- wordcloud用来制作词云
- wordcloud的基本使用
- 关于年前接到的外包单总结
- 一个执行计划异常变更的案例 - 外传之SQL Profile(上)
- ajax发送请求的方式
- JAVASE基础-day03(Java语言基础)
- spring注解扫描
- 使用python的wordcloud包实现中文标签云制作
- Eclipse中安卓开发遇到parseSdkContent failed Could not initialize class android.graphics.Typeface问题
- 【Codeforces 733 C. Epidemic in Monstropolis】+ 模拟
- 【linux】——常用命令(一)
- windows下 php 连接 sqlsrv 大坑
- UVA11491:Erasing and Winning(奖品的价值)
- JS中的匿名函数和闭包
- 【SPOJ】QTREE - Query on a tree(树链剖分+线段树(基于边权))
- dubbo2.5-spring4-mybastis3.2-springmvc4-mongodb3.4-redis3.2整合(七)RabbitMQ工作原理和Spring的集成