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

用Python生成的中文字词云与词频统计

发布时间:2023-12-17 00:57:52

Python中有很多库可以用来生成中文字词云和词频统计,其中最常用的是jieba和wordcloud库。下面是一个使用例子,该例子会对一个文本文件进行分词,并生成词云图和词频统计。

首先,我们需要安装jieba和wordcloud库。可以使用以下命令来安装这两个库:

pip install jieba
pip install wordcloud

接下来,我们需要准备要处理的文本文件。假设我们有一个名为"input.txt"的文本文件,其中包含中文文本。该文件可以是任何文本文件,比如新闻文章、小说、论文等。

接下来,我们编写Python代码来生成词云和词频统计。以下是一个完整的代码示例:

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

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

# 使用jieba进行分词
seg_list = jieba.cut(text)

# 将分词结果保存到一个字符串中
seg_str = " ".join(seg_list)

# 创建词云对象
wordcloud = WordCloud(background_color="white", font_path="msyh.ttc")

# 生成词云图
wordcloud.generate(seg_str)

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

# 生成词频统计
word_count = {}
for word in seg_str.split():
    if word in word_count:
        word_count[word] += 1
    else:
        word_count[word] = 1

# 打印词频统计结果
for word, count in word_count.items():
    print(word, count)

在上述代码中,首先我们使用jieba库对文本进行分词,将分词结果保存到一个字符串中。然后,我们使用WordCloud库创建一个词云对象,并调用其generate方法生成词云图。最后,我们使用matplotlib库展示词云图。

同时,我们还会对分词结果进行词频统计。创建一个空字典word_count用于保存词频统计结果,然后遍历分词结果,统计每个词出现的次数。最后,我们打印词频统计结果。

需要注意的是,以上代码仅仅是一个使用示例,具体的应用场景可能需要根据需求进行适当的修改。另外,为了生成中文词云,我们还需要指定一个中文字体,如示例中所示的"msyh.ttc"字体文件。你可以根据自己的需求选择其他中文字体。

最后,当我们运行以上代码时,会生成词云图并显示出来,同时会打印词频统计结果。这样,我们就可以通过Python生成中文字词云和词频统计了。