用python3写一段代码,使用jieba打开一段txt文件进行分词及词频统计,并逐行写入一个新的txt文件中
时间: 2024-03-25 09:41:54 浏览: 158
好的,以下是代码实现:
```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`替换为你要输出的文件名。
相关问题
用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.7写一段代码,主要任务是逐行读取一个txt,并使用jieba对txt中的内容进行分词、统计词频、标注词性,再将词性及词频结果按顺序逐行写入一个新的txt中,后使用wordcloud对词频结果绘制词云图
好的,以下是实现该功能的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 sorted(words, key=lambda x: x[1]):
f.write(word + '\t' + flag + '\t' + str(counter[word]) + '\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`分别为原始文本和自定义词典,可以根据实际情况修改文件名和路径。生成的词频结果将按照词性顺序逐行写入`output.txt`文件中,每行包括词语、词性和词频三个字段,以制表符分隔。生成的词云图将保存在`wordcloud.png`文件中。
阅读全文