实验 4:中文文本分析与统计。 要求:给出一篇文档“wind.txt”,统计其中词频前 3 位的词及出现次数。 提示:中文文本分析与统计通常是将文件操作与第三方库 jieba 库、字典、列表等知识点结 合在一起,重点在于知识综合运用能力。 (1)导入第三方库 jieba 库,该库用于中文分词。 (2)使用当前操作系统默认的编码方式,打开文本文件“wind.txt”,并将文件内容读取 到变量 txt 中。 (3)使用 jieba 库的 lcut()方法将 txt 变量分词,分词结果保存到列表 ls 中。 (4)完成词频统计功能,并保存在字典中;将字典中的统计结果保存到列表 freq_word 中,然后根据出现频次排序,最后输出
时间: 2024-02-05 21:11:48 浏览: 169
以下是代码示例:
```python
import jieba
# 读取文本文件
with open('wind.txt', 'r', encoding='utf-8') as f:
txt = f.read()
# 分词
ls = jieba.lcut(txt)
# 统计词频
word_freq = {}
for word in ls:
if len(word) > 1:
word_freq[word] = word_freq.get(word, 0) + 1
# 根据词频排序
freq_word = sorted(word_freq.items(), key=lambda x: x[1], reverse=True)[:3]
# 输出结果
print("词频前三的词及出现次数:")
for word, freq in freq_word:
print(word, freq)
```
解释一下代码的过程:
1. 导入了 jieba 库。
2. 使用 `with open()` 打开文本文件,读取文件内容到变量 `txt` 中。
3. 使用 `jieba.lcut()` 方法对文本进行分词,将分词结果保存到列表 `ls` 中。
4. 初始化一个空字典 `word_freq`,用于统计每个词出现的次数。遍历列表 `ls` 中的每个词,如果该词长度大于 1,就在字典 `word_freq` 中将该词的出现次数加 1。
5. 使用 `sorted()` 函数对词频字典 `word_freq` 进行排序,并取出前三个词,将结果保存到列表 `freq_word` 中。
6. 遍历列表 `freq_word`,输出每个词及其出现次数。
注意,以上代码中用到的 `wind.txt` 文件需要与代码文件在同一目录下,并且文件编码方式为 UTF-8。如果文件编码方式不是 UTF-8,需要在 `open()` 函数中指定正确的编码方式。
阅读全文