数据准备
红楼梦 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,