探索中文文本之美:使用Python生成定制化词云

news2024/10/6 10:30:21

探索中文文本之美:使用Python生成定制化词云

数据可视化已成为我们理解复杂信息的关键工具。词云,作为一种流行的数据可视化形式,能够将大量文本数据中的关键词以视觉化的方式呈现,让我们迅速捕捉到文本的核心。本文将通过Python编程语言,使用jieba和wordcloud库,并基于斗破苍穹第一章的内容,生成一个具有特定形状的词云。

环境搭建

在开始之前,确保你的Python环境中安装了必要的库。如果尚未安装,可以通过以下命令进行安装:

pip install matplotlib 
jieba 
wordcloud 
numpy 
pillow

读取与准备文本

我们将使用《斗破苍穹第一章》的文本作为示例。首先,确保文本文件以UTF-8编码保存,以避免编码错误:

with open('斗破苍穹第一章.txt', 'r', encoding='utf-8') as file:
    text = file.read()

中文分词

中文文本处理的第一步是分词。我们使用jieba库,它是中文文本分词的常用工具:

import jieba
cut_text = jieba.cut(text)
word = ' '.join(cut_text)

定义停用词

在生成词云之前,我们需要定义一组停用词,以排除那些在文本中频繁出现但对分析没有太大意义的词:

    stopwords={
        '了', '的', '和', '是', '我', '你', '这', '就', '有', '在', '也', '一', '不', '人', '都', '一个',
        '我们', '他', '她', '得', '地', '很', '到', '说', '要', '去', '上', '说', '知道', '能', '看',
        '自己', '出来', '过', '着', '听', '觉得', '但是', '而且', '因为', '所以', '虽然', '如果', '就是',
        '只有', '可以', '什么', '哪', '哪个', '那些', '什么', '怎么', '怎样', '这么', '那么', '这样', '那样',
        '一点', '一些', '一点', '一些', '一下', '一下', '一会儿', '一点儿', '现在', '然后', '再', '曾经',
        '曾经', '曾经', '曾经', '或者', '或者', '以及', '或者', '跟', '跟', '同', '和', '与', '跟', '同',
        '跟', '与', '跟', '和', '与', '而且', '并且', '或者', '还是', '或者', '或者', '又', '也', '还',
        '再', '另外', '那',
        '然后',
        '接着',
        '之后',
        '起来',
        # ... 其他语气助词 ...
    }

选择词云形状

词云的形状可以是任何形式,本例中我们将使用一张图片来定义词云的形状:

from PIL import Image
import numpy as np

pic = Image.open('test1.png')
pic_array = np.array(pic)

现在,我们将所有元素结合在一起,生成词云:

import wordcloud
from matplotlib import colors

color_list = ['black', 'red', 'blue', 'green']
colormap = colors.ListedColormap(color_list)

wc = wordcloud.WordCloud(
    mask=pic_array,
    font_path='simhei.ttf',
    background_color='white',
    colormap=colormap,
    stopwords=stopwords
)

wc.generate(word)

显示词云

最后,我们使用matplotlib库来显示我们生成的词云:

plt.imshow(wc, interpolation='bilinear')
plt.axis('off')
plt.show()

结语

通过上述步骤,我们不仅学习了如何使用Python生成词云,还了解了如何通过jieba进行中文分词,以及如何使用wordcloud库自定义词云的生成。

import matplotlib.pyplot as plt
import jieba
import wordcloud
from PIL import Image
import numpy as np  
from matplotlib import colors

# 读取文本文件
str1 = open('斗破苍穹第一章.txt', 'r', encoding='utf-8').read()  # 确保使用正确的编码

cut_text = jieba.cut(str1)    # 分词处理
word = ' '.join(cut_text)       # 以空格分割文本


color_list = ['black', 'red','blue','green']
colormap = colors.ListedColormap(color_list)  # matplotlib色图

# 使用Pillow读取图片
pic = Image.open('test1.png')  # 读取图片

# 将Pillow图像转换为numpy数组
pic_array = np.array(pic)

wc = wordcloud.WordCloud(
    mask=pic_array,               # 使用转换后的数组作为背景图形
    font_path='simhei.ttf',       # 可以改成自己喜欢的字体
    background_color='white',     # 词云图背景颜色可以换成自己喜欢的颜色
    colormap=colormap,
    stopwords={
        '了', '的', '和', '是', '我', '你', '这', '就', '有', '在', '也', '一', '不', '人', '都', '一个',
        '我们', '他', '她', '得', '地', '很', '到', '说', '要', '去', '上', '说', '知道', '能', '看',
        '自己', '出来', '过', '着', '听', '觉得', '但是', '而且', '因为', '所以', '虽然', '如果', '就是',
        '只有', '可以', '什么', '哪', '哪个', '那些', '什么', '怎么', '怎样', '这么', '那么', '这样', '那样',
        '一点', '一些', '一点', '一些', '一下', '一下', '一会儿', '一点儿', '现在', '然后', '再', '曾经',
        '曾经', '曾经', '曾经', '或者', '或者', '以及', '或者', '跟', '跟', '同', '和', '与', '跟', '同',
        '跟', '与', '跟', '和', '与', '而且', '并且', '或者', '还是', '或者', '或者', '又', '也', '还',
        '再', '另外', '那',
        '然后',
        '接着',
        '之后',
        '起来',
        # ... 其他语气助词 ...
    }
)

wc.generate(word)  # 生成词云

# 显示词云图
plt.imshow(wc, interpolation='bilinear')  # 使用bilinear插值可以使词云看起来更平滑
plt.axis('off')
plt.show()

在这里插入图片描述


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1895382.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

麒麟V10安装MinIO

1、官网下载服务端程序 2、上传至/usr/local/bin/,使用官网命令启动 chmod x minio MINIO_ROOT_USERadmin MINIO_ROOT_PASSWORDpassword ./minio server /mnt/data --console-address ":9001"后台启动 MINIO_ROOT_USERadmin MINIO_ROOT_PASSWORDpassw…

【Python好书推荐】,学习Python必备的8本书,可分享电子档!

在过去一年里,Python的热度一路飙升,国内越来越多的人选择学习Python,如今已然成为大量开发者推荐的入门编程语言和第二编程语言,而且Python还是人工智能的主要编程语言,因此,其重要性和流行度也就不言而喻…

最新榜单出炉!2024年6月AI行业微信公众号排行榜

最新榜单出炉!2024年6月AI行业微信公众号排行榜 🚀 大家好,我是猫头虎!最新的AIGCRank AI行业微信公众号排行榜已经出炉了。如果大家觉得一个一个去搜索太麻烦,没关系,我帮大家整理到了本文,今…

代谢组数据分析(十三):评估影响代谢物的重要临床指标

欢迎大家关注全网生信学习者系列: WX公zhong号:生信学习者Xiao hong书:生信学习者知hu:生信学习者CDSN:生信学习者2介绍 相关性分析是通过计算两个变量之间的相关系数来评估它们之间线性关系的强度和方向。最常用的是皮尔逊相关系数(Pearson correlation coefficient),…

Appium自动化测试框架1

电脑的浏览器 手机的浏览器 手机上的app 原生的应用 纯java 手机上的app apk 移动网页应用 纯HTML CSS 手机的浏览器上 电脑的浏览器上 混合应用 java html css python代码 Appium python库 Appium 手机 都是代表本机 0.0.0.0 127.0.0.1 localhost 如何启动app 启动参…

数据结构 1.1 数据结构的基本概念

本章总览: 一.什么是数据 1.数据 数据是信息的载体,是描述客观事物属性的数、字符及所有能输入到计算机中并被计算机程 序识别和处理的符号的集合。数据是计算机程序加工的原料。 早期计算机只能处理纯数值的问题,如世界第一题计算机ENI…

绩效管理,不再只是一串数字!

在数字化转型的大潮中,绩效管理不再只是枯燥的数字统计。搭贝的绩效管理系统,为企业提供灵活多样的考核模式与工具,助力实现科学、高效的管理。无论是KPI(关键绩效指标)还是OKR(目标与关键成果)…

2024年第十四届APMCM亚太地区大学生数学建模竞赛

C 题 基于量子计算的物流配送问题 随着电子商务的迅猛发展,电商平台对物流配送的需求日益增长。为了确保货物能够按时、高效地送达消费者手中,电商平台与第三方物流公司建立了紧密的合作关系。然而,面对大量的货物和多样的目的地&#xff0c…

一篇轻易入门Pandoc库实现文档格式自由转换

目录 Pandoc库概述: 安装Pandoc工具: 安装pypandoc库: 示例 特点 核心优势 局限性 功能和使用场景 高级功能及示例 总结 如果您需要将文件从一种标记格式转换为另一种标记格式,pandoc 就是您的瑞士军刀.Pandoc 可以在以下格式之间进行转换一款转换神奇. …

如何使用小红书矩阵系统:提升内容管理与发布效率的指南

小红书作为一个流行的社交电商平台,吸引了大量的内容创作者和品牌入驻。为了更高效地管理内容和提升用户体验,小红书矩阵系统提供了一套强大的工具和功能。本文将详细介绍如何使用小红书矩阵系统,帮助您最大化利用其核心功能。 小红书矩阵系…

datawhale大模型应用开发夏令营学习笔记一

参考自 基于LangChainLLM的本地知识库问答:从企业单文档问答到批量文档问答datawhale的llm-universe 作者现在在datawhale夏令营的大模型应用开发这个班中,作为一个小白,为了能为团队做出一点贡献,现在就要开始学习怎么使用langch…

地下电子标识器探测仪ED8000选型注意事项

ED8000探测仪是一台集成了多频率、多种ID标识器调制模式、高低灵敏度调节、可读写标识器等全功能、高性能电子标识器探测仪。它有着极高的灵敏度,同时具备良好的噪声抑制能力,不仅适合专业测绘人员,普通操作人员也可以轻松掌握。 ED8000可支持模拟电子标…

Android10以上实现获取设备序列号功能

Android10以上实现获取设备唯一标识,目前只支持华为和荣耀设备。实现原理:通过无障碍服务读取序列号界面。 public class DeviceHelper implements Application.ActivityLifecycleCallbacks {static final String TAG "WADQ_DeviceHelper";s…

【ubuntu自启shell脚本】——在ubuntu中如何使用系统自带的启动应用程序设置开机自启自己的本地shell脚本

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、设置开机自启shell脚本1.使用 gnome-session-properties2.测试的shell例程代码 总结 前言 在Ubuntu系统中设置开机自启脚本是一种重要的自动化方法。开机自…

基于docker轻松部署selenium grid环境

做web自动化的同学都知道selenium grid非常好用,但是环境配置特别麻烦,很多人都躺在了环境搭建。那么有没有更简单的方式呢,答案是肯定的,今天我们就用docker来完成它,希望对大家有帮助。 一、环境准备 准备一台 Linu…

《安全大模型技术与市场研究报告》发布,海云安榜上有名

近日,网络安全产业研究机构“数说安全”发布2024《安全大模型技术与市场研究报告》(以下简称“报告”)。 海云安凭借在开发安全领域的优秀业务能力以及在大模型相关技术研究方面的成就得到了认可,入选“安全开发大模型推荐供应商”…

实现点击Button,改变背景颜色(多个按钮互斥显示)

一 功能描述 在界面中,有一组button,现在需要实现下面功能:点击其中一个,改变被点击button的背景颜色。当点击下一个之后,之前点击过的按钮背景颜色还原,当前被点击的button背景色又被改变。效果如下图&…

PowerDsigner的简单使用

目录 1.PowerDesinger 2.PD与navicat的区别: 3.使用 1.PowerDesinger 在实际开发中,数据库的设计会使用专业的建模工具——PowerDesinger (安装及其破解大家搜选相关CSDN博客吧) 2.PD与navicat的区别: navicat是…

Zabbix企业级监控系统

——监控可以帮助我们做什么? 作为一个运维,需要会使用监控系统查看服务器系统性能、应用服务状态和网站流量指标等,利用监控系统的数据去了解网站上线发布的结果和健康状态。 利用一个优秀的监控软件,我们可以: 通过一个友好的…

Kubernetes云原生存储解决方案openebs部署实践-4.0.1版本(helm部署)

Kubernetes云原生存储解决方案openebs部署实践-4.0.1版本(helm部署) 简介 OpenEBS 是一种开源云原生存储解决方案。OpenEBS 可以将 Kubernetes 工作节点可用的任何存储转化为本地或复制的 Kubernetes 持久卷。OpenEBS 帮助应用和平台团队轻松地部署需要…