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

用Python实现中文词云的生成与展示

发布时间:2023-12-18 12:56:15

中文词云是一种可视化技术,用于显示一段文本中出现频率较高的词语,并以词语的大小表示其在文本中的重要性或出现的频率。Python中有很多库可以帮助实现中文词云的生成与展示,其中最著名的是WordCloud库。

WordCloud库提供了丰富的功能,包括生成词云图、设置词云图的颜色和形状、生成词云图的背景、设置词云图的字体等。下面我们将使用WordCloud库进行演示,并以新冠疫情为例。

首先,我们需要导入WordCloud库和其他需要使用的库:

import jieba
from wordcloud import WordCloud
import matplotlib.pyplot as plt

接下来,我们需要获取文本数据,并进行分词。这里我们使用jieba库对文本进行分词:

text = "新冠病毒是当前全球面临的一大挑战。新冠病毒是一种传染性极强的病毒,可以引发严重的呼吸道疾病。新冠病毒从2019年开始在中国蔓延开来,很快在全球范围内传播。新冠病毒引起了大规模的疫情,并对全球健康和经济产生了严重影响。"

words = jieba.lcut(text)

将文本进行分词后,我们可以使用WordCloud库生成词云图。以下是生成词云图的代码:

# 将分词结果转换为字符串
words_str = " ".join(words)

# 创建词云对象并生成词云图
wordcloud = WordCloud(font_path="simhei.ttf", background_color="white", width=800, height=400).generate(words_str)

# 展示词云图
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis("off")
plt.show()

在生成词云图的代码中,我们使用了字体文件simhei.ttf,该字体文件是一种中文字体,在生成中文词云时可以保证显示的是中文字符。同时,我们可以设置词云图的背景颜色为白色,并设置词云图的宽度为800像素,高度为400像素。最后,使用imshow函数展示词云图,并使用axis函数隐藏坐标轴。

运行以上代码,我们就可以看到生成的中文词云图。

除了生成词云图,WordCloud库还提供了其他一些方法,例如我们可以设置词云图的形状、颜色和背景图片等。以下是使用WordCloud库设置词云图形状和颜色的代码示例:

# 使用自定义形状
mask = plt.imread("mask.png")
wordcloud = WordCloud(font_path="simhei.ttf", background_color="white", mask=mask).generate(words_str)

# 设置词云图的颜色
wordcloud = WordCloud(font_path="simhei.ttf", background_color="white", colormap="rainbow").generate(words_str)

在上述代码中,我们首先使用imread函数读取一个自定义形状的图片,并将其作为mask参数传递给WordCloud对象。这样生成的词云图就会以自定义形状的图片作为背景。另外,我们还可以使用colormap参数设置词云图的颜色。

总结来说,通过使用Python中的WordCloud库,我们可以方便地生成中文词云图,并通过设置参数来自定义词云图的形状、颜色和背景图片等。这对于分析文本数据、发现关键词汇等非常有帮助。