用python3写一段代码,使用jieba打开一段txt文件进行分词,再进行词频统计,并将结果逐行写入一个新的txt文件中,再以此为依据创建一个词云图
时间: 2024-03-25 10:42:08 浏览: 35
好的,这是你要的代码:
```python
import jieba
from collections import Counter
from wordcloud import WordCloud
# 打开待分词的txt文件
with open('input.txt', 'r', encoding='utf-8') as f:
text = f.read()
# 使用jieba进行分词
words = list(jieba.cut(text))
# 统计词频
word_counts = Counter(words)
# 将结果逐行写入新的txt文件
with open('output.txt', 'w', encoding='utf-8') as f:
for word, count in word_counts.items():
f.write(f"{word}\t{count}\n")
# 创建词云图
wc = WordCloud(width=800, height=600, background_color='white')
wc.generate_from_frequencies(word_counts)
# 保存词云图
wc.to_file('wordcloud.png')
```
需要注意的是,以上代码需要安装`jieba`和`wordcloud`两个库。
相关问题
用python3写一段代码,使用jieba打开一段txt文件进行分词,再进行词频统计,并将结果逐行写入一个新的txt文件中
好的,以下是代码实现:
```python
import jieba
# 打开原始文件和新文件
with open('original.txt', 'r', encoding='utf-8') as f1, open('result.txt', 'w', encoding='utf-8') as f2:
# 读取原始文件内容
content = f1.read()
# 分词并统计词频
words = {}
for word in jieba.cut(content):
if word in words:
words[word] += 1
else:
words[word] = 1
# 将结果按照词频逆序排序
sorted_words = sorted(words.items(), key=lambda x: x[1], reverse=True)
# 将结果写入新文件中
for word, freq in sorted_words:
f2.write(word + ' ' + str(freq) + '\n')
```
需要注意的是,这里需要提前安装jieba库,可以使用以下命令进行安装:
```
pip install jieba
```
此外,需要将`original.txt`替换为你要进行分词的文件名,而`result.txt`则是保存分词结果的文件名。
用python3写一段代码,使用jieba打开一段txt文件进行分词及词频统计,并逐行写入一个新的txt文件中
好的,以下是代码实现:
```python
import jieba
# 打开原始文件和目标文件
with open('input.txt', 'r', encoding='utf-8') as f, open('output.txt', 'w', encoding='utf-8') as fw:
# 读取原始文件每一行内容并进行分词
for line in f:
words = jieba.cut(line.strip())
# 统计每个词的出现频率
word_dict = {}
for word in words:
if len(word) > 1:
if word not in word_dict:
word_dict[word] = 1
else:
word_dict[word] += 1
# 将统计结果逐行写入目标文件
for word, freq in word_dict.items():
fw.write(word + ' ' + str(freq) + '\n')
```
这段代码会将原始文件每一行进行分词并统计词频,然后将结果逐行写入目标文件中。请将`input.txt`替换为你要分词的文件名,`output.txt`替换为你要输出的文件名。
阅读全文