python词频统计红楼梦
时间: 2024-01-06 11:25:42 浏览: 129
以下是使用Python进行词频统计的示例代码:
```python
from collections import Counter
# 打开红楼梦txt文档并读取内容
txt = open('红楼梦.txt', 'r', encoding='utf-8').read()
# 使用jieba库进行分词
import jieba
words = jieba.lcut(txt)
# 使用Counter进行词频统计
word_count = Counter(words)
# 输出词频统计结果
for word, count in word_count.most_common(10):
print(word, count)
```
这段代码首先使用`jieba`库的`lcut()`函数对红楼梦文本进行分词,将分词结果保存在`words`变量中。然后使用`Counter`类对`words`进行词频统计,得到每个词出现的次数。最后,使用`most_common()`方法获取出现频率最高的前10个词及其出现次数,并将结果打印出来。
相关问题
python红楼梦词频统计
使用Python进行红楼梦的词频统计需要使用jieba库来进行中文分词。以下是一个简单的代码示例,可以实现对红楼梦文本中的单词进行词频统计:
```python
import jieba
txt = open("G:\\红楼梦.txt","r",encoding="utf-8")
words = jieba.lcut(txt.read())
a = {}
for word in words:
if len(word) == 1:
continue
else:
a[word] = a.get(word,0) + 1
items = list(a.items())
items.sort(key=lambda x: x[1], reverse=True)
for i in range(15):
word, count = items[i]
print("{0:<10}{1:>5}".format(word, count))
txt.close()
```
这段代码的具体步骤如下:
1. 打开红楼梦.txt文件,采用UTF-8编码方式读取。
2. 使用jieba库的精准模式将红楼梦文本分词,并将分词结果保存到words列表中。
3. 创建一个空字典a,用于统计每个单词的出现次数。遍历words列表,对每个单词进行统计。
4. 将字典a转换为有序的列表items,并按照每个单词出现次数的降序进行排序。
5. 输出排序结果中的前15个单词以及对应的出现次数。
python统计红楼梦人物词频
在Python中统计《红楼梦》人物的词频,你可以使用自然语言处理库如jieba分词、collections模dule的Counter函数以及一些文本处理技巧。以下是一个简单的步骤:
1. 首先,你需要获取《红楼梦》的文本数据,这可以是从网络上下载电子版的txt文件,也可以从公开的数据源获取。
2. 使用`jieba`对文本进行分词,它能较好地处理汉语词语。安装`jieba`库(如果未安装):`pip install jieba`
```python
import jieba
```
3. 读取并清洗文本,移除非汉字字符,转换为小写等操作:
```python
with open('hongloumeng.txt', 'r', encoding='utf-8') as f:
text = f.read().lower()
words = ''.join(c for c in text if '\u4e00' <= c <= '\u9fa5')
```
4. 使用`jieba.lcut`进行分词,并计算词频:
```python
words_list = jieba.lcut(words)
word_freq = Counter(words_list)
```
5. 最后,打印出人物名称及其词频:
```python
for word, freq in word_freq.most_common():
if is_person_name(word): # 自定义判断是否为人名的函数
print(f"{word}: {freq}")
```
注意,这里需要你自己编写一个`is_person_name()`函数来识别人名,因为《红楼梦》中涉及的人物众多,直接通过字符串匹配可能会有误。
阅读全文