欢迎访问宙启技术站
智能推送

使用Python中的STOPWORDS生成别致的中文词云

发布时间:2023-12-25 04:53:02

中文词云是一种可视化工具,可以对一段文本中出现的词频进行可视化展示。STOPWORDS是一个常用的Python库,其中包含了一系列常见的英文停用词(如"a", "an", "the"等),用于在文本处理中过滤掉这些无意义的词语。然而,对于中文文本来说,过滤无意义的停用词是非常重要的,因为中文文本中的停用词也会对词云生成造成影响。因此,本文将介绍如何使用Python中的STOPWORDS库生成别致的中文词云,并提供一些使用例子。

首先,我们需要安装Python中的wordcloud和jieba库。wordcloud库可以用于生成词云,jieba库则可以用于中文分词。可以使用pip命令来安装这两个库:

pip install wordcloud
pip install jieba

接下来,我们需要准备一段中文文本进行词云生成。这里我们以《红楼梦》为例,读取《红楼梦》的文本文件,将其中的停用词过滤掉,并生成词云。

from wordcloud import WordCloud
from jieba import lcut
from collections import Counter

# 读取《红楼梦》的文本文件
with open('hongloumeng.txt', 'r', encoding='utf-8') as f:
    text = f.read()

# 中文分词
words = lcut(text)

# 过滤停用词
stopwords = set(['的', '了', '和', '是', '就', '而', '也', '在', '中', '有', '是'])
filtered_words = [word for word in words if word not in stopwords]

# 统计词频
word_counts = Counter(filtered_words)

# 生成词云
wordcloud = WordCloud(font_path='simhei.ttf').generate_from_frequencies(word_counts)

# 显示词云
import matplotlib.pyplot as plt
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
plt.show()

通过上述代码,我们可以生成一张红楼梦的中文词云图,图中的词汇频率越高,显示的位置越突出。

除了上述的例子,我们还可以通过STOPWORDS库进行更进一步的自定义停用词过滤。例如,我们可以根据实际需求添加或删除一些停用词,使生成的词云更加别致。

from wordcloud import WordCloud, STOPWORDS
from jieba import lcut
from collections import Counter

# 读取文本文件
with open('text.txt', 'r', encoding='utf-8') as f:
    text = f.read()

# 中文分词
words = lcut(text)

# 过滤停用词
stopwords = set(STOPWORDS)
stopwords.update(['的', '了', '和', '是', '就', '而', '也', '在', '中', '有', '是'])
filtered_words = [word for word in words if word not in stopwords]

# 统计词频
word_counts = Counter(filtered_words)

# 生成词云
wordcloud = WordCloud(font_path='simhei.ttf').generate_from_frequencies(word_counts)

# 显示词云
import matplotlib.pyplot as plt
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
plt.show()

通过上述代码,我们可以生成根据实际需求自定义停用词过滤的中文词云图。效果图将更加别致,并且能更好地展示文本中的关键词。

在使用中文文本生成词云时,还可以根据需要进行一些其他的自定义设置,比如设置词云形状,设置背景颜色等。有关这些更高级的使用方法,可以参考wordcloud库的官方文档。

总之,使用Python中的STOPWORDS库可以帮助我们生成别致的中文词云图,并根据实际需求进行自定义停用词过滤,以展示文本中的关键词。希望本文对大家了解如何使用STOPWORDS库生成中文词云有所帮助。