【小白的实战】Python构建中文词云图

简介: 还记得之前我们构建英文词云图的实战吗?通过三期的涉及了自定义调参、形状等……几乎是可以自定义出自己的心仪词云了。但关键问题是什么?——咱们是中国人,我们要做中文的词云!

还记得之前我们构建英文词云图的实战吗?通过三期的涉及了自定义调参、形状等……

几乎是可以自定义出自己的心仪词云了。

但关键问题是什么?——咱们是中国人,我们要做中文的词云!


实战开始


一、中文分词依赖下载


wordcloud本质是对一个个用空格分开的字符串进行频数统计,

这点对于英语来说很好理解,毕竟一个个词都是分开的。

但是中文全部连在一起就像这样子如果有人讲话不带标点你甚至一个空格都找不到他就一句话给你说完了……

这时候我们就需要一个中文分词利器来帮助我们解决问题——

他就是大名鼎鼎的jieba库

还是我们的jupyter开发环境。直接pip install jieba下载依赖包

image.png

尝试一下import看看我们的依赖是否都安装完毕:

image.png

没有反应就是好反应,import顺利,说明依赖包正常运行。


二、打开文件


我们这次选用的是480多万字的当红网络小说,用来考验这个词云的统计能力。

我们用老方法打开文件

w=open(r"C:\Users\asus\Downloads\吞噬星空.txt","r")
txt=w.read()
w.close()

image.png

居然报错了

我们查看报错提示,发现是有文字无法解码。对于这种情况我们往往采用更高级的解码表来解决问题。

上网一搜“gb18030”似乎可以符合条件。我们在打开文件那里增加一个参数encoding="gb18030即可。尝试再次运行——

image.png

此时问题得到了解决。


三、jieba库分词


这个第三方库给中文分词非常简单,一个函数就能解决问题。

a=jieba.lcut(txt)
txt=" ".join(a)
复制代码

分词完毕之后生成的是一个列表,我们需要再把它变成空格隔开的字符串以应对问题,就像英文那样。我们这里采用的是python的join函数,把前面的字符串添加到每个列表元素之间,并最终形成大字符串。明显,480万字的小说分词耗了很多时间。不过最终结果是好的。


四、正常操作词云生成词云图。


这里不赘述了。方法和英文的一样。生成wordcloud对象之后传入文字,最终to_file生成图片文件。

f=wordcloud.WordCloud(font_path="msyh.ttc",width=1500,max_words=150,height=700,background_color="white")
f.generate(txt)
f.to_file("C:/Users/asus/Desktop/吞噬星空词云.png")


image.png

image.png


五、结束语与成果分析


image.png

来到桌面观察战果,发现果然是被中文常用语霸占的词云图啊。

虽然我们仍然可以从中读出主要信息:如金角巨兽出现非常多,甚至大于主角罗峰;这部小说是宇宙玄幻题材的……

但是要做出一个好的中文词云,还有挺长的路要走呀……

首先,你总得完善stopwords语料库,把中文常见词屏蔽,如“那”“是”等吧。这将是不小的工作量。

期待有一天我可以发现解决办法,再分享给大家呀~

相关文章
|
1月前
|
存储 数据采集 人工智能
Python编程入门:从零基础到实战应用
本文是一篇面向初学者的Python编程教程,旨在帮助读者从零开始学习Python编程语言。文章首先介绍了Python的基本概念和特点,然后通过一个简单的例子展示了如何编写Python代码。接下来,文章详细介绍了Python的数据类型、变量、运算符、控制结构、函数等基本语法知识。最后,文章通过一个实战项目——制作一个简单的计算器程序,帮助读者巩固所学知识并提高编程技能。
|
3天前
|
测试技术 数据库 Python
Python装饰器实战:打造高效性能计时工具
在数据分析中,处理大规模数据时,分析代码性能至关重要。本文介绍如何使用Python装饰器实现性能计时工具,在不改变现有代码的基础上,方便快速地测试函数执行时间。该方法具有侵入性小、复用性强、灵活度高等优点,有助于快速发现性能瓶颈并优化代码。通过设置循环次数参数,可以更准确地评估函数的平均执行时间,提升开发效率。
75 61
Python装饰器实战:打造高效性能计时工具
|
11天前
|
Shell 程序员 开发者
轻松搞定在Python中构建虚拟环境
本教程教你如何使用业界公认的最佳实践,创建一个完全工作的Python开发环境。虚拟环境通过隔离依赖项,避免项目间的冲突,并允许你轻松管理包版本。我们将使用Python 3的内置`venv`模块来创建和激活虚拟环境,确保不同项目能独立运行,不会相互干扰。此外,还将介绍如何检查Python版本、激活和停用虚拟环境,以及使用`requirements.txt`文件共享依赖项。 通过本教程,你将学会: - 创建和管理虚拟环境 - 避免依赖性冲突 - 部署Python应用到服务器 适合新手和希望提升开发环境管理能力的开发者。
|
1月前
|
小程序 开发者 Python
探索Python编程:从基础到实战
本文将引导你走进Python编程的世界,从基础语法开始,逐步深入到实战项目。我们将一起探讨如何在编程中发挥创意,解决问题,并分享一些实用的技巧和心得。无论你是编程新手还是有一定经验的开发者,这篇文章都将为你提供有价值的参考。让我们一起开启Python编程的探索之旅吧!
57 10
|
20天前
|
数据采集 存储 XML
python实战——使用代理IP批量获取手机类电商数据
本文介绍了如何使用代理IP批量获取华为荣耀Magic7 Pro手机在电商网站的商品数据,包括名称、价格、销量和用户评价等。通过Python实现自动化采集,并存储到本地文件中。使用青果网络的代理IP服务,可以提高数据采集的安全性和效率,确保数据的多样性和准确性。文中详细描述了准备工作、API鉴权、代理授权及获取接口的过程,并提供了代码示例,帮助读者快速上手。手机数据来源为京东(item.jd.com),代理IP资源来自青果网络(qg.net)。
|
1月前
|
数据采集 分布式计算 大数据
构建高效的数据管道:使用Python进行ETL任务
在数据驱动的世界中,高效地处理和移动数据是至关重要的。本文将引导你通过一个实际的Python ETL(提取、转换、加载)项目,从概念到实现。我们将探索如何设计一个灵活且可扩展的数据管道,确保数据的准确性和完整性。无论你是数据工程师、分析师还是任何对数据处理感兴趣的人,这篇文章都将成为你工具箱中的宝贵资源。
|
1月前
|
机器学习/深度学习 人工智能 算法
深度学习入门:用Python构建你的第一个神经网络
在人工智能的海洋中,深度学习是那艘能够带你远航的船。本文将作为你的航标,引导你搭建第一个神经网络模型,让你领略深度学习的魅力。通过简单直观的语言和实例,我们将一起探索隐藏在数据背后的模式,体验从零开始创造智能系统的快感。准备好了吗?让我们启航吧!
90 3
|
2月前
|
数据采集 XML 存储
构建高效的Python网络爬虫:从入门到实践
本文旨在通过深入浅出的方式,引导读者从零开始构建一个高效的Python网络爬虫。我们将探索爬虫的基本原理、核心组件以及如何利用Python的强大库进行数据抓取和处理。文章不仅提供理论指导,还结合实战案例,让读者能够快速掌握爬虫技术,并应用于实际项目中。无论你是编程新手还是有一定基础的开发者,都能在这篇文章中找到有价值的内容。
|
1月前
|
人工智能 数据可视化 数据挖掘
探索Python编程:从基础到高级
在这篇文章中,我们将一起深入探索Python编程的世界。无论你是初学者还是有经验的程序员,都可以从中获得新的知识和技能。我们将从Python的基础语法开始,然后逐步过渡到更复杂的主题,如面向对象编程、异常处理和模块使用。最后,我们将通过一些实际的代码示例,来展示如何应用这些知识解决实际问题。让我们一起开启Python编程的旅程吧!
|
1月前
|
Unix Linux 程序员
[oeasy]python053_学编程为什么从hello_world_开始
视频介绍了“Hello World”程序的由来及其在编程中的重要性。从贝尔实验室诞生的Unix系统和C语言说起,讲述了“Hello World”作为经典示例的起源和流传过程。文章还探讨了C语言对其他编程语言的影响,以及它在系统编程中的地位。最后总结了“Hello World”、print、小括号和双引号等编程概念的来源。
116 80