Python中华文化源远流长、博大精深,经典书籍,浩如烟雨,涌现出如《红楼梦》、《三国演义》、《水浒传》等众多脍炙人口的作品。请选择一本自己喜欢的书籍,编写程序统计并输出文本中出现频次最高的前20个单词。(1)请采用jieba库进行中文分词(2)请编写函数读取文本内容
时间: 2024-04-01 09:37:23 浏览: 7
以下是Python程序:
```python
import jieba
from collections import Counter
def read_file(file_path):
with open(file_path, 'r', encoding='utf-8') as f:
text = f.read()
return text
def count_words(text):
words = [word for word in jieba.cut(text) if len(word) > 1]
word_freq = Counter(words)
return word_freq.most_common(20)
file_path = 'your_file_path.txt'
text = read_file(file_path)
top_words = count_words(text)
for i, (word, freq) in enumerate(top_words):
print(f"{i+1}. {word}: {freq}")
```
解释:
1. `jieba`是中文分词库,需要先安装。可以使用`pip install jieba`进行安装。
2. `read_file`函数用于读取文件内容,返回字符串。这里采用了Python的上下文管理器`with open()`,可以自动关闭文件。
3. `count_words`函数用于统计单词频次。首先使用`jieba.cut()`进行分词,然后过滤掉单个汉字,最后使用`collections.Counter()`进行统计。`most_common()`方法返回出现频次最高的前20个单词。
4. `file_path`变量需要根据实际情况替换成文件路径。
5. 最后使用`enumerate()`函数对前20个单词进行遍历,并输出序号、单词和频次。