python中的词云图

这篇具有很好参考价值的文章主要介绍了python中的词云图。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

词云图

wordcloud 是什么? 词云图,也叫文字云,是对文本中出现频率较高的“关键词”予以视觉化的展现词云图过滤掉大量的低频低质的文本信息使得浏览者只要一眼扫过文本就可领略文本的主旨。

安装

pip install wordcloud

怎么使用?

先导入,在创建一个wordcloud的实例化对象。

基本使用方法如下:

from wordcloud import WordCloud                       	#导入
with open("new.txt","r",encoding="utf-8") as file:		#打开文件
    txt = file.read()									#读取文件
    wordcloud = WordCloud(font_path="BASKVILL.TTF",		#设置属性
                          collocations=False,
                          background_color="white",
                          width=800,
                          height=600,
                          max_words=50).generate(txt)
    #生成图片
    image = wordcloud.to_image()
    #展示图片
    image.show()
    #保存图片
    wordcloud.to_file("tag.jpg")

这里面的参数都是什么意思?

  • font_path 字体路径。如果数据文件中包含的有中文的话,font_path必须指定字体,否则中文会乱码
  • collocations: 是否包括两个词的搭配,默认为True,如果为true的时候会有重复的数据,这里我不需要重复数据,所以设置为False
  • width 幕布的宽度,height 幕布的高度
  • max _words 要显示的词的最大个数
  • generate 读取文本文件
font_path 字体的路径
  1. 绝对路径:这里为了方便就使用绝对路径了

    C:\Windows\Fonts\simhei.ttf
    

    怎么找?
    在C:\Windows\Fonts\找到字体之后右键,属性,找到字体文件名

  2. 相对路径:

    把字体文件放到与py文件一个文件夹里

从文件中读取文本
from wordcloud import WordCloud
with open("new.txt","r",encoding="utf-8") as file:
    txt = file.read()
    wordcloud = WordCloud(font_path="BASKVILL.TTF",  #这里我用的是相对路径,自己演示的时候可以做修改
                          collocations=False,
                          background_color="white",
                          width=800,
                          height=600,
                          max_words=50).generate(txt)
    #generate(txt)这个方法的作用是把 txt 里面的信息传给wordcloud,让他绘制词云图
    #生成图片
    image = wordcloud.to_image()
    #展示图片
    image.show()

文本为英文时font_path可以不用写

from wordcloud import WordCloud
# 第一个是包名,第二个是类名
txt ="The awesome yellow planet of Tatooine emerges from a totaleclipse,~her two moons glowing againstl"
wordcloud = WordCloud(
            # font_path="C:\Windows\Fonts\STFANGSO.TTF",
                      collocations=False,		#这些也可以不用设置,默认的也可以
                      background_color="black",
                      width=800,
                      height=600,
                      max_words=50).generate(txt)
#生成图片
image = wordcloud.to_image()
#展示图片
image.show()

文本含中文时,不加字体路径会出现乱码现象

from wordcloud import WordCloud
# wordcloud是包名,WordCloud是类名
txt = "这是我写的第一个词云图"
wordcloud = WordCloud(
    		# font_path="C:\Windows\Fonts\simhei.ttf",
                      collocations=False,
                      background_color="white",
                      width=800,
                      height=600,
                      max_words=50).generate(txt)
#生成图片
image = wordcloud.to_image()
#展示图片
image.show()

python词云图,motplotlib,python,信息可视化

把路径加上再演示一下

from wordcloud import WordCloud
# wordcloud是包名,WordCloud是类名
txt = "这是我写的第一个词云图"
wordcloud = WordCloud(
    		 font_path="C:\Windows\Fonts\simhei.ttf",
                      collocations=False,
                      background_color="white",
                      width=800,
                      height=600,
                      max_words=50).generate(txt)
#生成图片
image = wordcloud.to_image()
#展示图片
image.show()

python词云图,motplotlib,python,信息可视化

运行后会发现这根本不是词云图

wordcloud默认以空格来拆分词

怎么解决?

方法一:手动给中文分词
from wordcloud import WordCloud
# wordcloud是包名,WordCloud是类名
txt = "这 是我 写的 第一个 词云图"
wordcloud = WordCloud(
    		font_path="C:\Windows\Fonts\STFANGSO.TTF",
                      collocations=False,
                      background_color="white",
                      width=800,
                      height=600,
                      max_words=50).generate(txt)
#生成图片
image = wordcloud.to_image()
#展示图片
image.show()

python词云图,motplotlib,python,信息可视化

方法二:

中文使用词云图—需要使用jieba分词模块

特点-支持三种分词模式:

  • 精确模式,试图将句子最精确地切开,适合文本分析
  • 全模式,把句子中所有的可以成词的词语都扫描出来速度非常快,但是不能解决歧义
  • 搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引警分词。
  • 支持繁体分词
  • 支持自定义词典

安装

pip install jieba
  • jieba.cut 方法接受三个输入参数: 需要分词的字符串;cut_all 参数用来控制是否采用全模e式,HMM 参数用来控制是否使用 HMM 模型。必须需要传入的参数:需要分词的字符串
  • jieba.cut_for_seaich 方法接受两个参数: 需要分词的字符串;是否使用 HMM 模型。该方法适合用于搜索引擎构建倒排索引的分词,粒度比较细待分词的字符串可以是 unicode 或 UTF-8 字符串、GBK 字符串。注意:不建议直接输入 GBK 字符串,可能无法预料地错误解码成 UTF-8
  • jieba.cut 以及 jieba.cut_for_search 返回的结构都是一个可迭代的 generator,可以使用 for 循环来获得分词后得到的每一个词语(unicode),或者用 =jieba.lcut 以及 jieba.lcut_for_search 直接返回 list
import jieba
seg_list = jieba.cut("我来到北京清华大学") # 默认是精确模式
print(" ".join(seg_list)) 

seg_list = jieba.cut("小明硕士毕业于中国科学院计算所,后在日本京都大学深造") # 默认
print("-".join(seg_list))

一般都是以空格相连
python词云图,motplotlib,python,信息可视化

全模式
seg_list = jieba.cut("我来到北京清华大学",cut_all=True)
print("Full Mode:" + " ".join(seg_list))
精确模式
seg_list = jieba.cut("我来到北京清华大学",cut_all=False)
print("Default Mode:" + " ".join(seg_list)) #精确模式
cut_for_search

会从前往后找能够拼接的词。把能组成词的全部显示出来

seg_list = jieba.cut_for_search("小明硕士毕业于中国科学院计算所,后在日本京都大学深造")
print(" ".join(seg_list))

看一下拆分后是什么?

import jieba # 数据文件
txt ="皇后区的友好邻居变成了宇宙的,现实世界资本的侵蚀之下,只有哥谭还维持着它的地域性"
txt_list =jieba.cut(txt)		#jieba.cut()返回的是一个迭代器没法直接打印
print([i for i in txt_list])	

python词云图,motplotlib,python,信息可视化

txt_str = " ".join(txt_list)  #把txt_list 这个列表里的数据用空格来拼接起来,前面" "里面是什么,就拿什么拼接

还有一点要注意:

import jieba # 数据文件
txt ="皇后区的友好邻居变成了宇宙的,现实世界资本的侵蚀之下,只有哥谭还维持着它的地域性"
txt_list =jieba.cut(txt)		#jieba.cut()返回的是一个迭代器没法直接打印
print(type(txt_list))
print([i for i in txt_list])
txt_str = " ".join(txt_list)  #把txt_list 这个列表里的数据用空格来拼接起来,前面" "里面是什么,就拿什么拼接
print(txt_str)     # 这一步无法打印是因为前面使用了迭代器,前面迭代器已经走到最后了,再往后就没有了

词云图和分词结合起来

from wordcloud import WordCloud								
import jieba
import jieba.analyse
txt ="皇后区的友好邻居变成了宇宙的,现实世界资本的侵蚀之下,只有哥谭还维持着它的地域性"
txt_list = jieba.cut(txt)											# 分词
txt_str = " ".join(txt_list)										# 拼接
wordcloud = WordCloud(
    		font_path="C:\Windows\Fonts\STFANGSO.TTF",
                      collocations=False,
                      background_color="white",
                      width=800,
                      height=600,
                      max_words=50).generate(txt_str)				#传入
#生成图片
image = wordcloud.to_image()
#展示图片
image.show()

python词云图,motplotlib,python,信息可视化

但是它还有问题:像 的 了 着 这些我们不需要,怎么处理???

jieba.analyse的使用: 提取关键字

  • 第一个参数:待提取关键词的文本。

  • 第二个参数 topk:返回关键词的数量,重要性从高到低排排序

  • 第三个参数withWeight:是否同时返回每个关键词的权重 (一般用不到)

  • 第四个参数allowPOS=(): 词性过滤,为空表示不过滤,若提供则仅返回符合词性要求的关键词

    比如:名词为 n,动词为 v

注意事项:必须引入的使用就引入jieba.analyse,才能使用. 不能导入jieba,然后使用jieba.analyse,会报错

试一试?

import jieba
# import jieba.analyse
text ="皇后区的友好邻居变成了宇宙的,现实世界资本的侵蚀之下,只有哥谭还维持着它的地域性"
seg_list = jieba.analyse.extract_tags(text, allowPOS=("v"))
print("analysea extract allowPOS:"+ str((seg_list))) # 分析提取

python词云图,motplotlib,python,信息可视化

提取名词

import jieba
import jieba.analyse 
text ="皇后区的友好邻居变成了宇宙的,现实世界资本的侵蚀之下,只有哥谭还维持着它的地域性"
seg_list = jieba.analyse.extract_tags(text, allowPOS=("n"))
print("analysea extract allowPOS:"+ str((seg_list))) # 分析提取

提取动词

import jieba
import jieba.analyse
text ="皇后区的友好邻居变成了宇宙的,现实世界资本的侵蚀之下,只有哥谭还维持着它的地域性"
seg_list = jieba.analyse.extract_tags(text, allowPOS=("v"))
print("analysea extract allowPOS:"+ str((seg_list))) # 分析提取

不设置词性

import jieba.analyse
text ="皇后区的友好邻居变成了宇宙的,现实世界资本的侵蚀之下,只有哥谭还维持着它的地域性"
seg_list = jieba.analyse.extract_tags(text)
print("analysea extract allowPOS:"+ str((seg_list))) # 分析提取

python词云图,motplotlib,python,信息可视化

词云图和分词结合起来

from wordcloud import WordCloud
import jieba.analyse
text ="皇后区的友好邻居变成了宇宙的,现实世界资本的侵蚀之下,只有哥谭还维持着它的地域性"
seg_list = jieba.analyse.extract_tags(text)

#将列表拼接成字符串
txt_str = " ".join(seg_list)
wordcloud = WordCloud(
    		font_path="C:\Windows\Fonts\STFANGSO.TTF",
                      collocations=False,
                      background_color="white",
                      width=800,
                      height=600,
                      max_words=50).generate(txt_str)
#生成图片
image = wordcloud.to_image()
#展示图片
image.show()

python词云图,motplotlib,python,信息可视化

对比上面生成的没有像 的 了 着 的那些词了,相比之下好很多

综合案例

from wordcloud import WordCloud
import jieba.analyse
text ="皇后区的友好邻居变成了宇宙的,现实世界资本的侵蚀之下,只有哥谭还维持着它的地域性"
seg_list = jieba.analyse.extract_tags(text,topK=3,allowPOS=("v"))

#将列表拼接成字符串
txt_str = " ".join(seg_list)
wordcloud = WordCloud(
    		font_path="C:\Windows\Fonts\STFANGSO.TTF",
                      collocations=False,
                      background_color="white",
                      width=800,
                      height=600,
                      max_words=50).generate(txt_str)
#生成图片
image = wordcloud.to_image()
#展示图片
image.show()

python词云图,motplotlib,python,信息可视化文章来源地址https://www.toymoban.com/news/detail-731455.html

到了这里,关于python中的词云图的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • chatgpt赋能python:Python词云入门:构建你自己的词云图

    如果你是一个数据科学家或者是数据分析师,那么你肯定已经听过了“词云图”这个词。词云图是数据可视化的一种方式,用于呈现文本数据中最频繁出现的词汇。在这篇文章中,我将提供一个详细的教程,包括如何使用Python生成词云图和如何调整它们的外观。 词云图是一个

    2024年02月09日
    浏览(87)
  • python学习之10行代码制作炫酷的词云图(匹配指定图形形状)

    想必大家有一个问题:什么是词云呢? 词云又叫名字云,是对文本数据中出现频率较高的“”在视觉上的突出呈现,形成的渲染形成类似云一样的彩色图片,从而一眼就可以领略文本数据的主要表达意思。 网页上有许多词云的效果图: python代码运行需要安装第

    2024年02月09日
    浏览(58)
  • 湖仓一体电商项目(六):大屏可视化工具腾讯云图

    文章目录 大屏可视化工具腾讯云图 一、腾讯云图介绍 二、购买使用

    2024年02月06日
    浏览(42)
  • Python气象信息可视化方法汇总

            气象数据可视化是一种将气象数据通过图形、图像等视觉化手段进行呈现,以便更好地理解、分析和预测天气状况的系统。它的发展历程可以追溯到20世纪70年代,随着计算机技术和大数据处理能力的不断提升,气象数据可视化系统也得到了迅速发展,成为气象领

    2024年01月23日
    浏览(57)
  • Kibana 8.X 如何做出靠谱的词云图?

    Kibana 实现一个词云效果并不复杂,甚至可以说非常简单。 大致可以分成如下几个步骤: 步骤1:已有索引待做词云的 text 类型字段设置:fielddata 为true,以便基于分词结果聚合操作。 步骤2:在 8.X 的 kibana 的 Data Views关联索引。 步骤3:在dashboard控制面板选择 Aggregation Based 下

    2023年04月08日
    浏览(44)
  • Python采集二手房源数据信息并做可视化展示

    前言 嗨喽~大家好呀,这里是魔王呐 ❤ ~! 环境使用: Python 3.8 jupyter -- pip install jupyter notebook pycharm 也可以 模块使用: requests pip install requests 数据请求模块 parsel pip install parsel 数据解析模块 csv 内置模块 第三方模块安装: win + R 输入 cmd 点击确定, 输入安装命令 pip install 模块名

    2024年02月10日
    浏览(42)
  • Python招聘信息爬虫数据可视化分析大屏全屏系统

     博主介绍 :黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,学习后应对毕业设计答辩。 项目配有对应开发文档、

    2024年04月09日
    浏览(64)
  • 微博数据可视化分析:利用Python构建信息图表展示话题热度

    1. 引言 随着社交媒体的迅速发展,微博已成为人们交流观点、表达情感的重要平台之一。微博评论数据蕴含着丰富的信息,通过对这些数据进行分析和可视化,我们可以深入了解用户对特定话题的关注程度和情感倾向。本文将介绍如何利用Python进行微博评论数据的准备、探索

    2024年02月20日
    浏览(57)
  • 【Python爬虫+数据分析】采集电商平台数据信息,并做可视化演示

    随着电商平台的兴起,越来越多的人开始在网上购物。而对于电商平台来说,商品信息、价格、评论等数据是非常重要的。因此,抓取电商平台的商品信息、价格、评论等数据成为了一项非常有价值的工作。本文将介绍如何使用Python编写爬虫程序,抓取电商平台的商品信息、

    2024年02月08日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包