要实现对小说中出现的角色人名进行统计,并将统计的结果导出为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文件,该文件包含人名和出现次数两项。
领取专属 10元无门槛券
私享最新 技术干货