读取关键词txt文档,计算另一个已经分好词的txt文档对应关键词的词频矩阵并使用 TF-IDF 算法加权,针对加权后的矩阵进行词云图绘制,python代码怎么写
时间: 2023-03-30 12:04:17 浏览: 109
基于Python实现的词云生成代码,从txt文件中读取词语,生成指定图片的词云图
以下是 Python 代码示例:
```python
import jieba
import jieba.analyse
from sklearn.feature_extraction.text import TfidfVectorizer
from wordcloud import WordCloud
import matplotlib.pyplot as plt
# 读取关键词txt文档
with open('keywords.txt', 'r', encoding='utf-8') as f:
keywords = f.read().splitlines()
# 计算另一个已经分好词的txt文档对应关键词的词频矩阵并使用 TF-IDF 算法加权
with open('text.txt', 'r', encoding='utf-8') as f:
text = f.read()
# 分词
words = jieba.cut(text)
# 计算词频矩阵
vectorizer = TfidfVectorizer(vocabulary=keywords)
tfidf = vectorizer.fit_transform([' '.join(words)])
matrix = tfidf.toarray()
# 针对加权后的矩阵进行词云图绘制
word_freq = dict(zip(keywords, matrix[]))
wordcloud = WordCloud(background_color='white').fit_words(word_freq)
# 显示词云图
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
plt.show()
```
其中,`keywords.txt` 是关键词列表,每行一个关键词;`text.txt` 是已经分好词的文本,可以是一篇文章或一段话。运行代码后,会生成一个词云图,其中关键词出现的频率越高,其在词云图中的大小就越大。
阅读全文