提取TXT文件中的关键词并可视化,先写python代码,使用wordcloud生成清晰大图
时间: 2023-09-09 13:04:25 浏览: 238
### 回答1:
下面是一个使用 Python 代码提取 TXT 文件中的关键词并使用 wordcloud 库生成清晰大图的例子:
```python
# 首先,我们需要安装 wordcloud 库
!pip install wordcloud
# 然后,我们可以使用以下代码来提取文本中的关键词
import jieba
from collections import Counter
# 读取文件
with open('文件路径/文件名.txt', 'r', encoding='utf-8') as f:
text = f.read()
# 使用 jieba 库对文本进行中文分词
words = jieba.cut(text)
# 统计词频
word_counts = Counter(words)
# 获取前 n 个最常见的词
n = 100
common_words = [word for word, count in word_counts.most_common(n)]
# 生成词云图
from wordcloud import WordCloud
import matplotlib.pyplot as plt
# 设置词云的背景图片
mask = plt.imread('背景图片路径/背景图片名.png')
# 生成词云
wc = WordCloud(background_color='white', mask=mask, font_path='字体路径/字体名.ttf')
wc.generate_from_frequencies(dict(word_counts))
# 显示词云图
plt.imshow(wc, interpolation='bilinear')
plt.axis('off')
plt.show()
```
在上面的代码中,需要替换的部分有:
- `文件路径/文件名.txt`:需要提取关键词的 TXT 文件的路径和文件名。
- `背景图片路径/背景图片名.png`:词云图的背景图片的路径和文件名。
- `字体路径/字体名.ttf`:词云图中使用的字
### 回答2:
import jieba
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
from wordcloud import WordCloud
def generate_wordcloud(input_file, output_image):
# 读取文件
with open(input_file, 'r', encoding='utf-8') as file:
text = file.read()
# 使用结巴分词提取关键词
words = jieba.lcut(text)
# 设置停用词,可根据需求自行添加
stop_words = ['。', ',', '?', '!']
words = [word for word in words if word not in stop_words]
# 统计词频
word_freq = {}
for word in words:
if word in word_freq:
word_freq[word] += 1
else:
word_freq[word] = 1
# 生成词云图
mask = np.array(Image.open('mask.png')) # 设置词云形状图片
wordcloud = WordCloud(font_path='font.ttf', mask=mask, background_color='white').generate_from_frequencies(word_freq)
# 显示词云图
plt.figure(figsize=(10, 8))
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
# 保存词云图
plt.savefig(output_image)
plt.show()
# 调用函数生成词云图,并保存为output.png
generate_wordcloud('input.txt', 'output.png')
该代码使用了Python中的jieba库进行关键词提取,并使用matplotlib和wordcloud库进行数据可视化和词云图生成。首先,代码读取文本文件,并使用结巴分词将文本分割为词语。然后,可以通过添加stop_words列表来过滤掉一些停用词。接下来,代码统计每个词语的频率。最后,代码使用一个预定义的形状图片(mask.png)作为词云图的形状,并根据词语的频率生成词云图。最终,词云图保存为output.png文件,并在程序中显示出来。
### 回答3:
下面是使用Python提取TXT文件中的关键词并可视化的代码:
```python
import jieba
from wordcloud import WordCloud
import matplotlib.pyplot as plt
# 读取TXT文件
with open('file.txt', 'r', encoding='utf-8') as file:
content = file.read()
# 使用jieba分词提取关键词
seg_list = jieba.cut(content)
keywords = ' '.join(seg_list)
# 生成词云图
wordcloud = WordCloud(font_path='SimHei.ttf', width=800, height=400).generate(keywords)
# 显示词云图
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
plt.show()
# 保存词云图到文件
wordcloud.to_file("wordcloud.png")
```
首先,将需要提取关键词的TXT文件命名为`file.txt`,并确保该文件与Python代码在同一个目录下。然后,使用`jieba`库对TXT文件内容进行分词,将分词结果以字符串形式保存到`keywords`变量中。接下来,使用`WordCloud`类生成词云图,指定字体文件(这里使用的是中文字体SimHei),设置词云图的大小,并使用`generate`方法输入关键词数据。最后,使用`matplotlib.pyplot`库显示词云图,并保存到名为`wordcloud.png`的文件中。
执行以上代码后,将会生成一个清晰的词云图,并显示在屏幕上,同时也会将词云图保存为`wordcloud.png`文件。
阅读全文