用以下的代码编写一个 Python 程序,读取data.txt文件中的文本,对进行分词,统计频率最高的前100个,结果输出到result.csv文件中。
时间: 2023-11-22 11:55:21 浏览: 247
以下是代码实现:
```python
import jieba
import csv
# 读取文件
with open('data.txt', 'r', encoding='utf-8') as f:
text = f.read()
# 分词
words = jieba.cut(text)
# 统计词频
freq = {}
for word in words:
if len(word) > 1:
freq[word] = freq.get(word, 0) + 1
# 排序,取前100个
top100 = sorted(freq.items(), key=lambda x: x[1], reverse=True)[:100]
# 结果写入CSV文件
with open('result.csv', 'w', encoding='utf-8', newline='') as f:
writer = csv.writer(f)
writer.writerow(['词语', '频率'])
for word, count in top100:
writer.writerow([word, count])
```
首先使用`open()`函数读取`data.txt`文件中的文本内容,然后使用`jieba`库对文本进行分词,得到分词后的列表`words`。接着使用一个字典`freq`来统计每个词在文本中出现的次数。由于有些单字词会干扰结果,因此我们在统计词频时只考虑长度大于1的词。
统计完词频后,我们将字典`freq`按照值降序排序,取前100个最高频的词,得到一个列表`top100`。最后,将`top100`写入CSV文件`result.csv`中,格式为两列:词语和频率。
阅读全文