看过来——用Python探索《红楼梦》的人物关系

本文利用Python对《红楼梦》进行数据处理,通过jieba分词和pyecharts绘制人物出镜次数的柱状图及人物关系图。通过对小说内容的分析,揭示人物间的紧密联系,并生成人物关系表和比重表。
摘要由CSDN通过智能技术生成

数据准备

红楼梦 txt 文件一份

金陵十二钗 + 贾宝玉 人物名称列表。

宝玉 nr
黛玉 nr
宝钗 nr
湘云 nr
凤姐 nr
李纨 nr
元春 nr
迎春 nr
探春 nr
惜春 nr
妙玉 nr
巧姐 nr
秦氏 nr

该分列表是为了做分词时使用,后面的 nr 就是人名的意思。

人物出镜次数

首先读取小说;

with open("红楼梦.txt", encoding="gb18030") as f:
    honglou = f.read()

接下来进行出场次数数据整理;

honglou = honglou.replace("\n", " ")
honglou_new = honglou.split(" ")
renwu_list = ['宝玉', '黛玉', '宝钗', '湘云', '凤姐', '李纨', '元春', '迎春', '探春', '惜春', '妙玉', '巧姐', '秦氏']
renwu = pd.DataFrame(data=renwu_list, columns=['姓名'])
renwu['出现次数'] = renwu.apply(lambda x: len([k for k in honglou_new if x[u'姓名'] in k]), axis=1)
renwu.to_csv('renwu.csv', index=False, sep=',')
renwu.sort_values('出现次数', ascending=False,
  • 18
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值