Python实现《都挺好》社交网络分析

本文通过Python分析《都挺好》中人物关系,包括制作人物字典、计算共同出现频数、绘制关系图、应用PageRank算法确定重要人物、社区发现、相关系数计算等,揭示了小说的核心剧情和发展趋势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1《都挺好》简介

该小说讲述了职场金领苏明玉从小不受家人待见,生长在家庭的边缘,在孤独扭曲的环境中长大成人的故事。结局是这样的,苏明哲回到了美国,苏明成和朱丽离婚后不知所踪,苏明玉和石天冬在一起了,三个子女看清了苏大强的为人,没有人再管着他,最终苏大强得了老年痴呆症,苏明玉于心不忍,因此把他接回家照顾。
在这里插入图片描述
上图是去除停用词、去除人名、只保留形容词和名词的小说词云图;由图中也可以看出基本都是和家庭相关的词语。

# 小说词云
def getWordCloud():
    rlist=[]
    for s in content:
        for w in pseg.cut(str(s)):
            if(w.word not in stopdict and w.flag=='a' or w.flag=='n'):
                rlist.append(w.word)
    rlist = " ".join(rlist)
    w = WordCloud(font_path="C:/Users/Windows/fonts/simkai.ttf",width=600,height=400,background_color="black",max_words=50)
    w.generate(rlist)
    path=r'C:\Users\Administrator\Desktop\pic.png'
    w.to_file(path)

2人物共同出现频数

2.1制作主要人物字典

需要把《都挺好》小说txt版下载下来,刚开始我是通过jieba分词把所有nr(人名)的词语保存下来,作为人物集合,但是①某个人物多个称呼 ②nr类型会出现许多不合适的词

words=pseg.cut(single)
        for w in words:
            if(w.flag=='nr')

参考电视猫中的人物关系图,单独制作了主要人物词典
在这里插入图片描述

#主要人物 姓名词典
pdict={
   '明玉':['明玉','苏明玉','苏总'],'朱丽':['朱丽','丽丽'],'明哲':['明哲','苏明哲','大哥'],
       '明成':['明成','苏明成','大哥'],'苏大强':['苏大强','老爹','爸'],'吴非':['吴非'],'苏家':['苏家'],
       '宝宝':['宝宝'],'老蒙':['老蒙','蒙总'],'小蒙':['小蒙'],'天冬':['天冬','石天冬','石大哥'],
       '柳青':['柳青'],'蔡根花':['蔡根花'],'钟点工':['钟点工'],'温玮光':['温玮光','温总'],'苏母':['苏母']}

#判断na是哪个人物
def getPerson(na):
    for key,value in pdict.items():
        if(na in value):
            return str(key)
    return '无'

2.2计算人物相互出现的频数

(1)首先初始化一个16×16的人物频数0矩阵。
(2)在小说的每一段中,当这一段中出现了词典中的人物时,就把出现的人物两两对应的频数+1。
(3)遍历频数矩阵的右上半边(或左下半边)获得人物两两之间的频数。

# 计算人物相互出现的频数 保存成顶点-权重
def getPeopleNetwork():
    plist=list(pdict.keys())
    N=len(plist)
    pcount=np.ze
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值