我要用python3.7写一段代码,主要任务是逐行读取一个txt,并使用jieba对txt中的内容进行分词、统计词频、标注词性,再逐行写入一个新的txt中,后使用wordcloud对词频结果绘制词云图
时间: 2024-03-27 10:36:18 浏览: 56
好的,以下是实现该功能的Python代码,需要安装jieba和wordcloud库:
```python
import jieba
from collections import Counter
import jieba.posseg as pseg
from wordcloud import WordCloud
# 读取原始txt文件
with open('input.txt', 'r', encoding='utf-8') as f:
lines = f.readlines()
# 初始化分词器和词频统计器
jieba.load_userdict('userdict.txt') # 加载自定义词典
words = []
counter = Counter()
# 逐行分词、统计词频和标注词性
for line in lines:
words += [(word, flag) for word, flag in pseg.cut(line.strip())]
# 统计词频
for word, _ in words:
counter[word] += 1
# 将结果写入新的txt文件
with open('output.txt', 'w', encoding='utf-8') as f:
for word, flag in words:
f.write(word + ' ' + flag + '\n')
# 绘制词云图
wordcloud = WordCloud(width=800, height=800, margin=0, background_color='white')
wordcloud.generate_from_frequencies(counter)
wordcloud.to_file('wordcloud.png')
```
其中,`input.txt`和`userdict.txt`分别为原始文本和自定义词典,可以根据实际情况修改文件名和路径。生成的词云图将保存在`wordcloud.png`文件中。
阅读全文