首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

小说中出现的角色人名统计,用python就搞定!

要实现对小说中出现的角色人名进行统计,并将统计的结果导出为csv或xsl格式,这里使用python的jieba库和pandas库,简单几行代码就可搞定!

python中有一个强大的库——jieba,jieba库是一个中文分词工具库,可用于将一段中文文本分成由一个个词语组成的序列。它采用了基于前缀词典实现的分词算法,支持三种分词模式:精确模式、全模式和搜索引擎模式,并且可以自定义词典,从而适应不同的分词需求。jieba库广泛用于中文自然语言处理、文本挖掘、信息检索等领域。

首先需要安装两个库:jieba和pandas,可以使用以下命令安装:

pip install jieba pandas

安装库

这样就将需要的两个库安装好了,接下来,可以按照以下步骤来获取小说中出现的所有人名,并将人名出现的次数进行统计,统计后保存至csv格式的文件中。

1、开始导入所需的库:

import jieba

import pandas as pd

2、读取小说文本并进行分词

这里以《红楼梦》为例,假设小说的文本文件名为hongloumeng.txt,保存在当前工作目录下。

with open('hongloumeng.txt', 'r', encoding='utf-8') as f:

text = f.read()

words = jieba.lcut(text)

3、使用jieba的posseg模块取出人名词性

names = []

for w, pos in jieba.posseg.cut(text):

if pos == 'nr':

names.append(w)

4、使用pandas的value_counts()函数对人名出现次数进行统计

name_df = pd.DataFrame({'name': names})

name_count = name_df['name'].value_counts()

5、将统计结果保存为csv格式的文件

name_count.to_csv('name_count.csv', encoding='utf-8')

完整代码如下:

运行代码后,将在当前工作目录下生成name_count.csv文件,该文件包含人名和出现次数两项。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230424A05AE500?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券