用Wordcloud生成指定形状的词云图

wordcloud是Python扩展库中一种将词语用图片表达出来的一种形式,通过词云生成的图片,我们可以更加直观的看出某篇文章的故事梗概。

首先贴出一张词云图(以哈利波特小说为例):

file

在生成词云图之前,首先要做一些准备工作

安装结巴分词库

pip install jieba

file

Python中的分词模块有很多,他们的功能也都是大同小异,我们安装的结巴分词 是当前使用的最多的类型。

下面我来简单介绍一下结巴分词的用法

结巴分词的分词模式分为三种:

(1)全模式:把句子中所有的可以成词的词语都扫描出来, 速度快,但是不能解决歧义问题

(2)精确模式:将句子最精确地切开,适合文本分析

(3)搜索引擎模式:在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词

下面用一个简单的例子来看一下三种模式的分词区别:

import jieba
# 全模式:把句子中所有的可以成词的词语都扫描出来, 速度快,但是不能解决歧义问题
text = "哈利波特是一常优秀的文学作品"
seg_list = jieba.cut(text, cut_all=True)
print(u"[全模式]: ", "/ ".join(seg_list)
  • 11
    点赞
  • 62
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是生成红楼梦词云图的Python代码: ```python # 导入需要的库 import jieba from wordcloud import WordCloud, STOPWORDS import matplotlib.pyplot as plt from PIL import Image import numpy as np # 读入红楼梦文本 text = open('hongloumeng.txt', 'r').read() # 使用jieba进行中文分词 words = jieba.cut(text) # 去除停用词 stopwords = set(STOPWORDS) stopwords.add('一个') stopwords.add('不是') stopwords.add('什么') stopwords.add('我们') stopwords.add('那里') stopwords.add('怎么') stopwords.add('如今') stopwords.add('这里') stopwords.add('那个') stopwords.add('就是') stopwords.add('不知') stopwords.add('不得') stopwords.add('只是') stopwords.add('众人') stopwords.add('一面') stopwords.add('两个') stopwords.add('只有') stopwords.add('听见') stopwords.add('原来') stopwords.add('不敢') stopwords.add('不过') stopwords.add('不好') stopwords.add('不住') stopwords.add('不由') stopwords.add('不能') stopwords.add('不曾') stopwords.add('不禁') stopwords.add('不在') stopwords.add('不免') stopwords.add('不少') stopwords.add('不时') stopwords.add('不堪') stopwords.add('不愿') stopwords.add('不得不') stopwords.add('不知不觉') filtered_words = [] for word in words: if word not in stopwords: filtered_words.append(word) # 将分词结果转换为字符串 text = ' '.join(filtered_words) # 读入背景图 background = np.array(Image.open('hongloumeng_bg.jpg')) # 创建词云对象 wc = WordCloud(background_color='white', max_words=2000, mask=background, stopwords=stopwords, font_path='msyh.ttc') # 生成词云 wc.generate(text) # 显示词云 plt.imshow(wc, interpolation='bilinear') plt.axis('off') plt.show() # 保存词云图片 wc.to_file('hongloumeng_wordcloud.png') ``` 其中,我们使用了jieba库进行中文分词,并使用了一个停用词列表来去除无意义的词语。我们还使用了PIL库中的Image模块读入了一张红楼梦背景图,将其作为词云的形状。最后,我们使用WordCloud库创建了词云对象,并将其生成、显示、保存。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值