有效利用STOPWORDS生成中文词云的关键技巧
发布时间:2023-12-25 04:51:38
中文词云是一种可视化工具,用于展示文本中关键词的频率分布情况。而停用词(STOPWORDS)是一类在文本分析中经常用到的词语列表,它们通常包含一些常见的、无实际意义的词语,如介词、连词、代词等,这些词在文本分析中往往无法带来有效的信息,因此在制作中文词云时往往需要去掉这些停用词,以避免干扰关键词的展示效果。
在生成中文词云时,有效利用停用词可以提高关键词的准确性和可读性。以下是一些使用例子和关键技巧,帮助你更好地利用停用词生成中文词云:
1. 导入相关库和停用词表:
import jieba from wordcloud import WordCloud, STOPWORDS
2. 加载停用词表:
stopwords = set(STOPWORDS)
3. 分词并过滤停用词:
text = "这是一段待处理的中文文本" wordlist = jieba.cut(text) filtered_words = [word for word in wordlist if word not in stopwords]
4. 统计词频:
word_freq = {}
for word in filtered_words:
if word in word_freq:
word_freq[word] += 1
else:
word_freq[word] = 1
5. 创建词云图:
wc = WordCloud(background_color="white", max_words=200, width=800, height=400, contour_color='steelblue') wc.generate_from_frequencies(word_freq)
6. 可选:自定义词云图样式:
wc.set_font_path('SimSun.ttf') # 设置字体
wc.set_mask(image_path) # 设置词云形状
wc.recolor(color_func=grey_color_func, random_state=3) # 自定义颜色
7. 可选:显示词云图:
import matplotlib.pyplot as plt
plt.imshow(wc, interpolation='bilinear')
plt.axis("off")
plt.show()
通过上述步骤,你可以生成一张中文词云图,其中包含了有效利用停用词的关键技巧。下面是一个完整的例子,展示如何生成一个基于《红楼梦》文本的中文词云图:
import jieba
from wordcloud import WordCloud, STOPWORDS
import matplotlib.pyplot as plt
# 加载停用词表
stopwords = set(STOPWORDS)
# 读取文本
with open('hongloumeng.txt', 'r', encoding='utf-8') as f:
text = f.read()
# 分词并过滤停用词
wordlist = jieba.cut(text)
filtered_words = [word for word in wordlist if word not in stopwords]
# 统计词频
word_freq = {}
for word in filtered_words:
if word in word_freq:
word_freq[word] += 1
else:
word_freq[word] = 1
# 创建词云图
wc = WordCloud(background_color="white", max_words=200, width=800, height=400, contour_color='steelblue')
wc.generate_from_frequencies(word_freq)
# 设置字体和形状
wc.set_font_path('SimSun.ttf')
wc.set_mask('hongloumeng.png')
# 显示词云图
plt.imshow(wc, interpolation='bilinear')
plt.axis("off")
plt.show()
通过上述代码,你将可以生成一张基于《红楼梦》文本的中文词云图。你可以根据自己的需要,调整参数和自定义词云图的样式,以更好地展示关键词的频率分布情况。
