编写一段python代码要求实现对txt文件里的中文文本的关键词提取并统计关键词的出现频次绘制频次图和词云图
以下是一个基于jieba和wordcloud库的示例代码,用于实现对txt文件里的中文文本的关键词提取,并统计关键词的出现频次,绘制频次图和词云图:
import jieba
from wordcloud import WordCloud
import matplotlib.pyplot as plt
# 读取txt文件
with open('text.txt', 'r', encoding='utf-8') as f:
text = f.read()
# 使用jieba进行分词
seg_list = jieba.cut(text)
# 构建词频字典
word_freq = {}
for word in seg_list:
if len(word) > 1: # 只考虑长度大于1的词
word_freq[word] = word_freq.get(word, 0) + 1
# 按词频排序
sorted_word_freq = sorted(word_freq.items(), key=lambda x: x[1], reverse=True)
# 绘制词频图
x = [i[0] for i in sorted_word_freq[:10]]
y = [i[1] for i in sorted_word_freq[:10]]
plt.bar(x, y)
plt.title('Top 10 keywords')
plt.xlabel('Keywords')
plt.ylabel('Frequency')
plt.show()
# 绘制词云图
wordcloud = WordCloud(font_path='msyh.ttc', background_color='white')
wordcloud.generate_from_frequencies(word_freq)
plt.imshow(wordcloud)
plt.axis('off')
plt.show()
需要注意的是,以上示例代码中的text.txt为输入文本的文件名,msyh.ttc为词云图所使用的字体文件名,需要根据实际情况进行修改。同时,为了保证jieba能够正确地进行中文分词,需要提前安装jieba库,并且需要根据需要自行添加停用词等处理
原文地址: https://www.cveoy.top/t/topic/e9R7 著作权归作者所有。请勿转载和采集!