使用python生成定制化词云的代码示例
作者:码银
词云,作为一种流行的数据可视化形式,能够将大量文本数据中的关键词以视觉化的方式呈现,让我们迅速捕捉到文本的核心,本文将通过Python编程语言,使用jieba和wordcloud库,生成一个具有特定形状的词云,需要的朋友可以参考下
引言
数据可视化已成为我们理解复杂信息的关键工具。词云,作为一种流行的数据可视化形式,能够将大量文本数据中的关键词以视觉化的方式呈现,让我们迅速捕捉到文本的核心。本文将通过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()
到此这篇关于使用python生成定制化词云的代码示例的文章就介绍到这了,更多相关python生成定制化词云内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!