用wordcloud和jieba生成中文词云

本文介绍了如何结合Python的WordCloud库和jieba分词库,生成中文词云图。以《三国演义》中的四字成语为例,通过词云图展示了高频词汇,如“”,“”等。主要代码包括设置font_path防止中文乱码,以及将jieba分词结果转化为字符串输入WordCloud。
摘要由CSDN通过智能技术生成

WordCloud是Python中一个非常优秀的第三方词云展示库,但是处理中文就不怎么能胜任,因为中文通常包含着一整句话,尽管在WordCloud里虽然也有process_text()方法用于把很长的文字做分隔,但这个方法本身是根据英文文本分词设计的,所以对于中文字的展示必须要配合更适合做中文分词处理的jieba分词库来操作效果更佳,今天就拿这两个库配合一起展示下小说《三国演义》中,四个字成语中那些出现的频率最高。

先来看下最终的词云效果图,下面就是我们以武将张飞为模板形状产生的中文词云图,可以很明显的看到诸如,如之奈何大喝一声木牛流马决一死战都是比较大突出和大的字体,说明频率最高,也不得不说三国剧情的跌宕起伏和打斗场面精彩。

在这里插入图片描述

下面就是整段处理的代码,因为我们的目标是创建基于小说《三国演义》里所有四个字成语的中文词云图,因此我们从逻辑上来说只需要设计两个函数体。分别是split_four_text()函数用来处理中文分词功能,和draw_wordcloud函数用于将处理后的中文词显示成词云,对于整段代码提一下几处重要的代码区域。

第13行代码处,在配置实例对象wordcloud参数时,我们设置了font_path参数,因为在部分系统环境内显示中文会出现乱码,所以强制以定义的中文字体显示就可以解决这个问题。

第64行代码处,由于WordCloud词云读取的文本必须以字符串或者二进制形式输入,否则会报错TypeError: expected string or bytes-like object的关系,所以我们强制将jieba分词返回的list类型内容转换为str类型。

import jieba
import numpy as np
from pathlib import Path
from PIL import Image
from wordcloud import WordCloud, ImageColorGenerator
from matplotlib import pyplot as plt

def split_four_text
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值