Python(wordcloud):根据文本数据(.txt文件)绘制词云图

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

一、前言

本文将介绍如何利用python来根据文本数据(.txt文件)绘制词云图,除了绘制常规形状的词云图(比如长方形),还可以指定词云图的形状。

二、相关库的介绍

1、安装相关的库
pip install jieba
pip install matplotlib
pip install wordcloud
pip install numpy
pip install Image 
2、 导入相关的库
import jieba
import matplotlib.pyplot as plt
from wordcloud import WordCloud
import numpy as np
from PIL import Image # 图像处理
3、 相关库的介绍
  • jieba:
    结巴分词库,一个中文分词库。由于中文文本的每个汉字都是连续书写的,因此需要对文本进行分词来获得中文文本的每个词组,即分词。

  • matplotlib.pyplot
    图像展示库。用来创建画布以及相关的图像展示。在绘图前,需要创建一个figure对象,即需要一张画板才能开始绘图。

  • wordcloud :
    词云展示库,可以根据文本的词频,对内容进行词云图的可视化。

  • numpy
    numpy是Python的一个开源的数值计算扩展库,主要用于处理大型多维数组和矩阵,以及进行高效的数学运算,广泛应用于数据分析、机器学习、信号处理等领域。

  • Image
    Image模块是一个强大的图像处理工具,提供了对图像文件的读写和处理的功能。也提供了各种功能和方法来处理和操作图像,包括加载、保存、调整大小、旋转、裁剪、应用滤镜等。

三、数据处理

1、中文分词
  • 中文分词可以将中文语句切割成单独的词组;
  • 中文分词的工具有很多,比如 python 的第三方库 jieba;
  • jieba 支持三种分词模式:全模式、精确模式、搜索引擎模式。结巴分词最主
    要的方法是 cut 方法

(1)精确模式

  • 试图将句子最精确地切开,适合文本分析
  • 结巴分词默认为该模式
jieba.cut("文本内容",cut_all=False)

(2)全模式

  • 把句子中所有可以成词的词语都扫描出来,速度很快,但是不能解决歧义
jieba.cut("文本内容",cut_all=True)

(3)搜索引擎模式

  • 在精确模式的基础上,对长词再次切分,提高召回率
2、去除停用词
  • 对中文来说,包括像“的”、“和”、“在”、“是”等副词、量词、介词、叹词、数词都是停用词。这些词汇几乎在所有中文文本都会出现,不具有特殊性,没有区分度,所以通常会把这些词从文本中去除;
  • 去除停用词需要一个停词表stopword.txt,将分词后的文本中每个词与停词字典中的条目进行匹配。如果匹配成功,该词将被删除;
  • 直接百度搜索停词表并下载就好了
    (由于本文用到的数据集的文本内容比较简单,因此没有执行去除停用词这一步的操作)

四、实现

1、绘制基本词云图
(1)核心

在以下代码中,根据实际更改文件的读取路径以及保存路径即可:
txt生成词云,Python,python,词云图,数据可视化,wordcloud

(2)WordCloud 参数解释
  • 参数解释
参数 解释
width 词云图的宽度(默认400像素)
height 词云图的高度(默认200像素)
max_font_size 词云图字体的最大字号(根据图片高度自动调节)
min_font_size 词云图字体的最小字号(默认为4号字体)
max_words 词云图显示的最大单词数(默认200)
stop_words 不显示的词语、单词
mask 指定词云图的形状(默认为长方形)
background_color 词云图的背景颜色(默认为黑色)
font_path 字体文件的路径
  • 如果文本是中文的,需要设置字体,否则会乱码
font_path = "C:\Windows\Fonts\Microsoft YaHei UI\msyh.ttc"
(3)完整代码:
import jieba
import matplotlib.pyplot as plt
from wordcloud import WordCloud

# 读取文本文件
text = open(r"C:\Users\abc\Desktop\词云图数据\grape.txt", encoding="utf-8").read()
# 对文本进行分词,默认精确模式
text1=jieba.cut(text)
# 以空格作为分隔符,将分词后的所有字符串合并成一个新的字符串
text = ' '.join(text1)
# 根据分词结果产生词云
wc = WordCloud(font_path = "C:\Windows\Fonts\Microsoft YaHei UI\msyh.ttc",width=500, height=400, mode="RGBA", background_color=None).generate(text)
# 以图片的形式显示词云
plt.imshow(wc, interpolation="bilinear")
# 不显示图像坐标系
plt.axis("off")
# 显示图像
plt.show()
#保存词云图
wc.to_file(r"\Users\abc\Desktop\res.png")
  • 以陈奕迅《葡萄成熟时》的歌词作为文本数据,词云图的结果如下:
    txt生成词云,Python,python,词云图,数据可视化,wordcloud
2、绘制指定形状的词云图
  • 有时候需要指定词云图的形状,我们可以通过导入背景图片作为词云图的底图来实现
  • 注意:背景图片的背景一定要是白色的,不可以是其他颜色或者透明
  • 以下面的葡萄图片作为背景图片:
    txt生成词云,Python,python,词云图,数据可视化,wordcloud
(1)核心代码

需要使用numpy库以及Image库来对背景图片进行图像处理

txt生成词云,Python,python,词云图,数据可视化,wordcloud

  • 词云图的结果如下:
    txt生成词云,Python,python,词云图,数据可视化,wordcloud
(2)词云图优化
  • 我们可以给背景图的轮廓进行清晰化,比如给轮廓添加粗度和颜色

txt生成词云,Python,python,词云图,数据可视化,wordcloud文章来源地址https://www.toymoban.com/news/detail-852815.html

  • 优化后的词云图如下:
    txt生成词云,Python,python,词云图,数据可视化,wordcloud
(3)完整代码:
import wordcloud
import jieba
import matplotlib.pyplot as plt
import numpy as np
from PIL import Image # 图像处理

#打开背景图片
pic = Image.open("grape.jpg")
# 提取图片的轮廓
shape = np.array(pic)
# mask为图片背景,font_path为字体,若不设置可能乱码
wc = wordcloud.WordCloud(mask=shape, font_path="simkai.ttf", background_color="white", contour_color='purple',contour_width=3,
max_font_size=100)
#读取要分词的文本文件
text = open(r'C:\Users\abc\Desktop\词云图数据\grape.txt', "r", encoding='UTF-8').read()
#结巴分词
cut_text = jieba.cut(text)
result = " ".join(cut_text)
#生成词云图
wc.generate(result)
#保存词云图
wc.to_file("cloud.jpg")
# 以图片的形式显示词云
plt.imshow(wc, interpolation="bilinear")
# 不显示图像坐标系
plt.axis("off")
# 显示图像
plt.show()

到了这里,关于Python(wordcloud):根据文本数据(.txt文件)绘制词云图的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Python读取指定的TXT文本文件并从中提取指定数据的方法

      本文介绍基于 Python 语言,遍历文件夹并从中找到文件名称符合我们需求的多个 .txt 格式文本文件,并从上述 每一个文本文件 中,找到 我们需要的指定数据 ,最后得到 所有文本文件中 我们 需要的数据的合集 的方法。   首先,我们来明确一下本文的具体需求。现有

    2024年02月14日
    浏览(54)
  • Python 数据可视化-文本可视化(词云图)

    这篇文章主要是教大家如何制作一个自定义个性化词云图,具体要求如下: 1.    文本内容使用文件content.txt的内容。如下图所示: 2.    字体任意选取。这里我选择的是极影毁片辉宋字体   3.    指定词云形状为文件222.png。如下图所示:   4.    设置文字颜色以背景图片

    2024年02月13日
    浏览(55)
  • python中读取文本文件txt

    文件创建 如果文件不存在就是创建,如果文件存在就是打开操作 文件对象创建 文件读 以下的函数都是文件对象的成员函数 read() 一次性读取文件的所有内容放在一个大字符串中,即存在内存中 readline() 逐行读取文本,结果是一个list readlines() 一次性读取文本的所有内容,结

    2024年02月05日
    浏览(70)
  • wordcloud制作词云图

    font_path:字体路径,默认不支持中文,可通过该参数指定字体,支持OTF和TTF 格式; width、 height:画布的宽度和高度,单位为像素 margin:文字之间的边距 mask:指定图片的形状,忽略白色部分,通常为 ndarray max_words:最多显示的词的数量,默认为200 min_font_size、max_font_size:最小

    2024年02月02日
    浏览(36)
  • Python读取txt文本数据,写进excel中

    因为项目需要,需要统计训练的loss和acc,写进excel中,用手统计太累了。 方法:读取文档后,采用split分割出数据,然后用列表保存,再将列表内容写进excel中。 txt文本内容如下所示: 直接上代码,代码的value_title 需要自己手动更改:  最后生成的结果,很完美。  

    2024年01月22日
    浏览(47)
  • Python - 读取pdf、word、excel、ppt、csv、txt文件提取所有文本

    本文对使用python读取pdf、word、excel、ppt、csv、txt等常用文件,并提取所有文本的方法进行分享和使用总结。 可以读取不同文件的库和方法当然不止下面分享的这些,本文的代码主要目标都是:方便提取文件中所有文本的实现方式。 这些库的更多使用方法,请到官方文档中查

    2024年02月13日
    浏览(124)
  • python绘制词云图

    作者简介 :一名后端开发人员,每天分享后端开发以及人工智能相关技术,行业前沿信息,面试宝典。 座右铭 :未来是不可确定的,慢慢来是最快的。 个人主页 :极客李华-CSDN博客 合作方式 :私聊+ 这个专栏内容 :BAT等大厂常见后端java开发面试题详细讲解,更新数目10

    2024年02月12日
    浏览(46)
  • Python绘制基础词云图

    Python的词云制作。 词云介绍: 词云是对文本进行可视化呈现的一种方式, 词云出现的次数越多,字体越大,颜色越醒目, 可以通过词云快速获取文本的主要内容 给大家看一下词云绘制的效果:     用来绘制词云的第三方库:wordcloud,在导入前需要下载。 在绘制之前需要先创

    2024年02月04日
    浏览(75)
  • python之文件操作、对.txt文本文件的操作(读、写、修改、复制、合并)、对json文本文件的操作、json字符串与字典的相互转换。

    注意:本篇所讲的文件操作,都是对后缀为.txt、.json文件进行的操作。 1、json其实就是一个 文件的格式 ,像.txt一样,json也是一个 纯文本文件 。 与.txt不同的是, json常用来存放有键值对的数据,写法上像python中的字典一样, 但与字典不同的是 ,字典是一个数据类型,且

    2024年02月16日
    浏览(49)
  • 〖Python网络爬虫实战⑱〗- 数据存储之TXT纯文本

    订阅:新手可以订阅我的其他专栏。免费阶段订阅量1000+                 python项目实战                  Python编程基础教程系列(零基础小白搬砖逆袭) 说明:本专栏持续更新中,目前专栏免费订阅,在转为付费专栏前订阅本专栏的,可以免费订阅付费专栏,

    2023年04月24日
    浏览(62)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包