使用jieba第三方包对《三国演义》文本进行分词,统计诸葛亮出场的次数
时间: 2024-03-01 09:54:02 浏览: 87
好的,下面是Python代码实现:
```python
import jieba
# 读取《三国演义》文本
with open('sgyy.txt', 'r', encoding='utf-8') as f:
sgyy = f.read()
# 对文本进行分词,并统计诸葛亮出现次数
count = 0
words = jieba.cut(sgyy)
for word in words:
if word == '诸葛亮':
count += 1
print('诸葛亮出现的次数为:', count)
```
其中,需要先将《三国演义》文本保存为sgyy.txt文件,并放在代码所在的目录下。执行该代码会输出诸葛亮在文本中出现的次数。
相关问题
2)使用Jieba库对《三国演义》进行分词处理,分别统计周瑜、吕布、夏侯惇的出场次数。
好的,我可以回答你的问题。首先,我们需要安装jieba库,可以通过以下命令来安装:
```
pip install jieba
```
安装完成后,我们可以使用以下代码进行分词处理和统计:
```python
import jieba
# 读取《三国演义》的文本
with open('sgyy.txt', 'r', encoding='utf-8') as f:
content = f.read()
# 对文本进行分词处理
words = jieba.lcut(content)
# 统计周瑜、吕布、夏侯惇的出现次数
zhou_count = 0
lv_count = 0
xia_count = 0
for word in words:
if word == '周瑜':
zhou_count += 1
elif word == '吕布':
lv_count += 1
elif word == '夏侯惇':
xia_count += 1
print('周瑜出现次数:', zhou_count)
print('吕布出现次数:', lv_count)
print('夏侯惇出现次数:', xia_count)
```
其中,我们需要将《三国演义》的文本保存在当前目录下的一个名为sgyy.txt的文件中。
运行以上代码,即可得到周瑜、吕布、夏侯惇的出现次数。
Python3.11使用jieba统计《三国演义》人物出场,输入自定义的电子版《三国演义》文本,输出出场率最高的 10个人物,并保存为文本文件。
在Python 3.11中,我们可以使用jieba库进行中文分词,结合字典数据结构来统计《三国演义》人物的出场次数。以下是一个简化的步骤说明:
1. **安装必要的库**:
首先需要安装`jieba`库,可以使用pip命令进行安装:
```
pip install jieba
```
2. **分词处理**:
使用`jieba.lcut()`函数对文本进行分词,去除停用词(如“的”、“了”等常用词),只保留人物名。
3. **构建人物出场字典**:
初始化一个空的字典,例如`character_frequency = {}`,遍历分词后的结果,如果遇到的人物名未在字典中,就添加并初始化为0;已存在的则增加计数。
4. **统计和排序**:
遍历文本,累加每个字符在文本中出现的次数。然后使用`collections.Counter`或自定义的排序函数找出出场次数最多的前10个人物。
5. **保存结果**:
将排序后的结果写入到文本文件中,比如`top_characters.txt`。
```python
import jieba
from collections import Counter
# 假设你已经有了电子版《三国演义》的文本内容,存储在变量text中
text = "..."
# 分词
words = jieba.lcut(text)
# 假定人物名列表(根据实际文本调整)
characters = ["刘备", "关羽", ...] # 你需要将这里替换为实际的人物名单
# 创建频率字典
character_frequency = {char: 0 for char in characters}
for word in words:
if word in character_frequency:
character_frequency[word] += 1
# 统计并找到最常见的10个人物
top_10_characters = Counter(character_frequency).most_common(10)
# 保存到文件
with open("top_characters.txt", "w", encoding="utf-8") as f:
for character, count in top_10_characters:
f.write(f"{character}: {count}\n")
阅读全文