Python分词及词云制作——基于wordcloud库

对于行研报告、咨询报告以及路演 ppt 而言,图表“颜值”有着至关重要的作用。多次行研实习的我,别的本领没学会,对排版和图表“颜值”的要求却被惯得越来越高。So,词云这个如此方便的可视化利器,怎么可以放过。
(CSDN 排版让人满意真的好难)

  • 本文将基于爬虫得到的《三国演义》全文,借助jieba、wordcloud库进行分词并绘制词云;
  • 词云类型由易到繁分为三类:普通型,特定形状型,特定形状和颜色型;

库的安装

本文用到的jieba和wordcloud库比较朴素,不像ta-lib容易出幺蛾子,可以直接在 cmd 或 自己创建的环境中用 pip 安装。但是我个人在安装wordcloud库的过程中,出现了安装不成功的小概率事件,故在此提供一个解决方案。

当普通的pip安装不成功时,可以考虑到 Python库大本营 下载需要的库文件(.whl)到本地,之后再 pip install 库文件本地存储路径 进行安装。该方法通用性较广,其他库下载安装不成功时,也可以尝试该方法。

pip install jieba
pip install wordcloud
pip install "F:\Program_Files\wordcloud-1.7.0-cp38-cp38-win_amd64.whl"  # 这是我随便找的路径,给大家打个样,换成自己的就ok

jieba分词

import jieba
from wordcloud import WordCloud, ImageColorGenerator
import matplotlib.pyplot as plt

text = open('三国.txt', "r",encoding='utf-8').read()  # 文件读取 
cut_text = jieba.lcut(text)  # 结巴分词,生成列表
result = " ".join(cut_text)  # 必须给个符号将分隔开的词重新拼成字符串,否则不能绘制词云

普通词云

不管是哪种词云图,基本流程都是一致的,创建WordCloud对象,generate生成词云,to_file()保存词云。我们需要关注的是创建WordCloud对象过程中需要的参数,常用参数展示如下。重点说明两个:1) font_path,可以到“控制面板——外观和个性化——字体” 中找到心仪的字体文件,复制到当前py文件的同一路径下,这样路径不会太长,好看一点;2) colormap,指定色系,下面左图是不加colormap参数的效果,右图是加colormap='Blues’的效果。如果不知道colormap都有哪些,可以随便写一个错的运行,报错信息中会列示colormap们(最下面的图)。

wc = WordCloud(       
        background_color='white',  # 设置背景色
        mode = 'RGBA',  # 默认为“RGB”
        width=500,  # 设置背景宽,默认为400像素
        height=350,  # 设置背景高,默认为200像素
        max_font_size=50,  # 最大字体
        min_font_size=10,  # 最小字体
        font_path='simkai.ttf',  # 由于要显示中文,需要设置字体,否则会出现乱码
        max_words = 200,  # 最大词汇个数
        # colormap='Blues'  # 指定词云色系,默认随机分配颜色
        )
wc.generate(result)  # 产生词云
wc.to_file("./image/wordcloud_1.png")   # 保存图片

在这里插入图片描述
在这里插入图片描述

特定形状型

特定形状型实际上是以特定图片为蒙版制作,处理较为简单,只需要在前面一版的基础上加图片读取和mask参数即可完成。推荐使用色彩对比鲜明的图片,这样词云图可以与原图更相似,还可以通过调参绘制出更为美观的词云图。在这里我想说明一点的是,之前看许多大佬的文章,蒙版创建都是用PIL库,后来发现其实更为大家熟悉的 plt 也能实现同样的功能。

bg_img = plt.imread('./image/男生.jpeg')
wc = WordCloud(
        background_color='white',
        max_font_size=50,
        min_font_size=10,
        font_path='simkai.ttf',
        colormap='Blues',
        mask=bg_img
        )
wc.generate(result)
wc.to_file("./image/wordcloud_2.png") 

在这里插入图片描述

特定形状和颜色型

不仅想用特定图片的形状,还想用它的颜色,就可以根据蒙版生成词云图的颜色,之后对 WordCloud 对象进行 recolor ,不清楚为什么最后的效果并不理想,我再研究一下,如果解决了会放到评论区。

bg_img = plt.imread('./image/男生.jpeg')
wc = WordCloud(
        max_font_size=50,
        font_path='simkai.ttf',
        colormap='Blues',
        mask=bg_img
        )
wc.generate(result)
image_color = ImageColorGenerator(bg_img)  # 生成颜色
wc_color = wc.recolor(color_func=image_color)  # 重新上色
wc_color.to_file("./image/wordcloud_3.png")   # 保存云图

在这里插入图片描述

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python是一门流行的编程语言,有许多强大的和工具可以用来处理中文文本数据,其中包括中文分词词云制作。 中文分词是将中文文本按照词语划分成一个个单独的词汇,是自然语言处理领域的重点问题之一。在Python中,最常用的中文分词是jieba。下面是一个简单的中文分词例子: ```python import jieba text = "我喜欢用Python做自然语言处理" words = jieba.cut(text) for word in words: print(word) ``` 这段代码将会输出分词后的结果: ``` 我 喜欢 用 Python 做 自然语言处理 ``` 接下来是词云制作词云是一种用来展示文本数据的可视化图形,它将文本中出现频率高的关键词以不同的字体大小和颜色呈现在图形中。在Python中,我们可以使用wordcloud制作词云。下面是一个简单的词云制作例子: ```python from wordcloud import WordCloud import jieba text = "我喜欢用Python做自然语言处理" # 使用jieba进行中文分词 words = jieba.cut(text) words_list = " ".join(words) # 生成词云 wordcloud = WordCloud(width=800, height=600, background_color="white").generate(words_list) # 保存词云图片 wordcloud.to_file("wordcloud.png") ``` 这段代码将会生成一张名为wordcloud.png的词云图片。如果你想要将词云显示在Jupyter Notebook中,可以使用下面的代码: ```python from IPython.display import Image Image(filename="wordcloud.png") ``` 这样就可以在Jupyter Notebook中显示词云图片了。 以上就是用Python做中文分词词云制作的简单例子,希望能对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值