python词云图_Python生成一篇文章的词云图
使用前需要确保安装以下第三方库:
jieba, wordcloud, imageio, sklearn,csv
imageio、csv和sklearn在安装anaconda时默认是安装的,另外两个库需要手动安装,安装方式如下:
打开Anaconda Prompt使用pip安装即可:
pip install jieba
pip install wordcloud
我们选一篇自己喜欢的文章,然后保存为txt,放到工作目录下。我选取的文章为知乎上秋叶大叔的一篇文章:如何实现财富自由?
我将其内容保存为"caifu.txt",放在工作目录下,以下是获得这篇文章词云图的过程。
获得词云图
from wordcloud importWordCloud, STOPWORDSfrom imageio importimreadfrom sklearn.feature_extraction.text importCountVectorizerimportjiebaimportcsv#获取文章内容
with open("caifu.txt") as f:
contents=f.read()print("contents变量的类型:", type(contents))#使用jieba分词,获取词的列表
contents_cut =jieba.cut(contents)print("contents_cut变量的类型:", type(contents_cut))
contents_list= " ".join(contents_cut)print("contents_list变量的类型:", type(contents_list))#制作词云图,collocations避免词云图中词的重复,mask定义词云图的形状,图片要有背景色
wc = WordCloud(stopwords=STOPWORDS.add("一个"), collocations=False,
background_color="white",
font_path=r"C:\Windows\Fonts\simhei.ttf",
width=400, height=300, random_state=42,
mask=imread('axis.png',pilmode="RGB"))
wc.generate(contents_list)
wc.to_file("ciyun.png")#使用CountVectorizer统计词频
cv =CountVectorizer()
contents_count=cv.fit_transform([contents_list])#词有哪些
list1 =cv.get_feature_names()#词的频率
list2 =contents_count.toarray().tolist()[0]#将词与频率一一对应
contents_dict =dict(zip(list1, list2))#输出csv文件,newline="",解决输出的csv隔行问题
with open("caifu_output.csv", 'w', newline="") as f:
writer=csv.writer(f)for key, value incontents_dict.items():
writer.writerow([key, value])
上述代码中,变量的类型如下:
contents变量的类型: contents_cut变量的类型:contents_list变量的类型:
词云图的形状我尝试了两种,一种是cat.png,另一种是在PPT中直接画一个箭头,保存为图片格式,如下图:
两种背景图产生的词云图结果如下:
我们可以把背景图的设置为任意形状和图片,如果没有合适的照片,我们可以用PPT自己画一个合适的形状。
获得词频列表,保存为csv文件
如果还想要获得词频列表,可以使用sklearn中的CountVectorizer统计词频,当然也可以自己写函数实现。上述代码输出了词频的csv文件,如下图:
参考链接:
python词云图_Python生成一篇文章的词云图相关推荐
- 【python实例6.5】一篇文章让你弄懂政府工作报告词云~总结笔记
一篇文章让你弄懂政府工作报告词云 1.安装wordcloud库 2.新时代中国特色社会主义的词云 wordcloud下载链接: https://www.lfd.uci.edu/~gohlke/pyth ...
- 线上python课程一般多少钱-python培训班一般多少钱?一篇文章告诉你
如今,职场竞争越来越激烈.如果不学习一两项新技能并不断更新你的知识,很容易被年轻一代超越.很多人开始学习python.那么,python培训班一般多少钱? Python语法简洁,代码十分接近人类的自然 ...
- python字符串分片_Python第六章字符串ppt
PPT内容 这是Python第六章字符串ppt,包括了概述,通用序列操作,字符串格式化,字符串方法,正则表达式简介等内容,欢迎点击下载. Python语言编程导论 第六章 字符串 内容提要 概述 通 ...
- 大乐透python预测程序_Python生成随机验证码,大乐透号码
随机生成验证码 示例代码: import random # 导入标准模块中的random if __name__ == '__main__': check_code = "" # ...
- python创建窗体_python生成窗口
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 2.python生成目录树上述 cmd 方式虽然可以生成目录树,但是并不美观,让 ...
- 入门Python到精通,这一篇文章就够了【精心整理】
本篇有点长,大家一定要耐心看完,对初学者的你帮助很大!值得收藏! 编程这个东西是真的奇妙.对于懂得的人来说,会觉得这个工具是多么的好用.有趣,而对于小白来说,就如同大山一样.其实这个都可以理解,大家都 ...
- python输出姓名_Python生成随机不重复姓名昵称
姓采用百家姓,名字从常用名字高频字选取两个汉字,再和当前时间戳组合,估计应该是不会重复了,代码如下: # -*- coding:utf-8 -*- import random import time ...
- Python中使用wordcloud生成漂亮的中文词云
场景 实现 新建文件夹ChinaMapWordCloud 文件夹下新建fonts目录用于存放字体. 新建ChinaMap.py from wordcloud import WordCloud impo ...
- 有关python方面的论文_一篇文章可以带你理解python中的类
继续上一章的内容,上一章说到了python的核心部分-创建对象的各种名词的定义,包括:对象,类,多态,封装,继承,接口和内省,面向对象设计.还有不清楚的可以review一下前文.python核心部分创 ...
最新文章
- 选择排序算法,只需这篇文章就够了
- PMCAFF | same产品分析报告:陌生人社交始终离不开性和脸
- hibernate正向生成数据库表以及配置——Teacher.java
- es6严格模式需要注意的地方
- php mysql 地图 矩形_PHP+Mysql+jQuery中国地图区域数据统计实例讲解
- numpy 算术运算(Arithmetic operations)
- linux 初始化全部操作
- android api 完整翻译之Contacts Provider (学习安卓必知的api,中英文对照)
- 如何调整pdf的页边距
- C语言入门之C语言开发环境搭建
- python浪漫代码表白npy_python实现npy格式文件转换为txt文件操作
- C语言中简单冒泡排序不花里胡哨
- 微处理器和由微型计算机构成,微处理器的组成
- 微博长图快速排版生成工具
- 2021年过了大半了,脑机接口取得哪些进展?
- Keras_examples
- 安卓流畅度测试方法二:FPS Meter测试安卓帧数
- 拼多多有哪些API?
- 杭电计算机考试科目,杭电计算机考研经验
- C++ STL之stack栈容器
热门文章
- 基于JAVA+SpringMVC+Mybatis+MYSQL的在线招聘网站
- 基于JAVA+SpringMVC+Mybatis+MYSQL的养老社区管理系统
- 基于JAVA+SpringMVC+Mybatis+MYSQL的汽车租赁系统
- java http data chunk_HTTP协议之Chunked解析
- cordova mismatch of cpu architecture问题的解决
- Python - WebDriver 识别登录验证码
- 网页中调用Google地图
- URLConnection学习
- Android开发工具大全【转】
- 微课|中学生可以这样学Python(3.1节):单分支选择结构