使用jieba第三方包对《三国演义》文本进行分词,统计诸葛亮出场的次数
时间: 2024-03-01 21:54:02 浏览: 19
好的,下面是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的文件中。
运行以上代码,即可得到周瑜、吕布、夏侯惇的出现次数。
Python编写程序利用jieba库进行分词,统计出三国演义中三国人物的出现次数
好的,首先需要安装jieba库,可以使用以下命令进行安装:
```
pip install jieba
```
然后,我们需要读取三国演义的文本文件。假设三国演义的文本文件名为“sgyy.txt”,可以使用以下代码进行读取:
```python
with open('sgyy.txt', 'r', encoding='utf-8') as f:
sgyy_text = f.read()
```
接下来,我们需要使用jieba库进行分词。可以使用以下代码:
```python
import jieba
# 分词
seg_list = jieba.cut(sgyy_text)
# 去除停用词
stop_words = [',', '。', '、', ':', ';', '\n', '之', '也', '而', '乃', '其', '则', '者', '其', '为', '以', '有', '是', '在', '不', '而', '此', '彼']
word_list = [word for word in seg_list if word not in stop_words]
```
上面的代码中,我们使用了jieba.cut()方法对文本进行分词,并使用列表推导式去除了一些无意义的停用词。
接下来,我们需要统计出三国演义中三国人物的出现次数。可以使用以下代码:
```python
# 统计人物出现次数
person_dict = {}
for i in range(len(word_list)-1):
if word_list[i] == '曹操' or word_list[i] == '刘备' or word_list[i] == '孙权':
if word_list[i+1] != ',' and word_list[i+1] != '。':
if word_list[i] not in person_dict:
person_dict[word_list[i]] = 1
else:
person_dict[word_list[i]] += 1
# 输出结果
for key, value in person_dict.items():
print(key, value)
```
上面的代码中,我们使用了一个字典来统计人物出现次数。首先,我们遍历分词后的列表,判断当前词是否是三国人物中的一个(曹操、刘备、孙权)。如果当前词是一个三国人物,我们再判断下一个词是否是标点符号(“,”和“。”),如果不是,则将当前词加入到字典中,并将其出现次数加1。最后,我们将字典中统计出来的结果输出即可。
完整代码如下:
```python
import jieba
# 读取文本
with open('sgyy.txt', 'r', encoding='utf-8') as f:
sgyy_text = f.read()
# 分词
seg_list = jieba.cut(sgyy_text)
# 去除停用词
stop_words = [',', '。', '、', ':', ';', '\n', '之', '也', '而', '乃', '其', '则', '者', '其', '为', '以', '有', '是', '在', '不', '而', '此', '彼']
word_list = [word for word in seg_list if word not in stop_words]
# 统计人物出现次数
person_dict = {}
for i in range(len(word_list)-1):
if word_list[i] == '曹操' or word_list[i] == '刘备' or word_list[i] == '孙权':
if word_list[i+1] != ',' and word_list[i+1] != '。':
if word_list[i] not in person_dict:
person_dict[word_list[i]] = 1
else:
person_dict[word_list[i]] += 1
# 输出结果
for key, value in person_dict.items():
print(key, value)
```