Skip to content

四大名著文本数据分析 ​

原文:2025 计算概论 C 钱丽艳班助教团队,版本 1.0,日期 2025 年 11 月 27 日。本页保留 PDF 对应部分全文,章节编号沿用原文。

课程与提交说明 · 公共要求与 Python 基础 · 完整 PDF(网盘链接待补充)

2 . 选题二:四大名著文本数据分析 ​

四大名著作为中国古典文学的代表作,人物众多、章节复杂、语言生动,十分适合作为文本数据分析的入门项目。使用Python 对四大名著进行数据化探索,通过对人物出场、人物关系、剧情结构等方面的分析,体会数据分析如何帮助我们理解文学作品。

一、基础分析:人物出场和章节变化(统计性描述) ​

  • 任务1: 章节字数统计与节奏分析:

    • 读取名著的文本数据,统计每一章的字数。

    • 绘制章节字数的直方图,观察是否存在明显的“长章节”和“短章节”。

    • 绘制章节-字数的折线图,来表示章节字数随着章节编号的变化,分析小说的节奏变化(高潮、平缓、过渡章节等)。

    • 选取两个或更多的名著,绘制章节字数的箱线图,观察字数的总体分布,是否有异常值的章节。

  • 任务2: 主要人物出场次数分析:

    • 出场次数排行:任选几名主要人物(五名左右),统计每个人物在全书出现的总次数,绘制横向柱状图(便于显示名字),全书最常出现的人物是哪些。

    • 人物在各章节的出场变化趋势:对每个角色统计每章出现的次数,选择3 名左右角色绘制折线图对比趋势

    • 人物活跃度随着时间变化:将人物出场次数累计并作同比变化,使用堆叠面积图来展示人物活跃阶段。

    • 分析回答以下问题:哪些人物比预期更加常见/少见?是否有一些人物的“高光章节”?能否反映故事结构的自然分段?

二、进阶分析:基于共现的人物关系分析 ​

  • 任务1: 构建共现矩阵:共现分析是文学分析中常用方法。我们通过观察人物是否同时出现来推理分析他们之间的关系。首先定义共现规则:在章节中同时出现算共现1次(或者你可以自选以段落等为共现单位)。

    • 选取10 名左右主要人物,统计人物共现次数,构建共现矩阵.

    • 人物共现矩阵可视化:绘制人物共现热力图,观察哪些角色关系最为密切。

  • 任务2: 社交网络分析:使用networkx 绘制人物关系网络图,将共现次数大于某个阈值的人物对连接成边,根据共现次数来设置边的粗细等,观察哪些人物在网络中处于中央、哪些人物构成小群体。(例:基于《水浒传》,分析宋江、吴用、林冲谁在关系网络中更中心)

  • 任务3: 关系演变:把章节分成3-5 个部分,计算每个阶段的共现矩阵,计算差值热力图,对比人物关系在不同阶段如何发生变化并推测可能原因。是否有角色从边缘变为核心或从核心变为边缘?

三、探索部分(以下是几个示例题目,可自行探究其他话题) ​

  • 示例1: 从妖怪对孙悟空的称呼推断妖怪的来源与背景:《西游记》中,不同背景的妖怪对孙悟空的称呼往往带有明显的“身份暗示”。天宫体系人物(天兵天将、旧识)可能称:“大圣”、“齐天大圣”、“行者”、“弼马温”;山野或民间妖怪多使用贬称:“泼猴”、“猴头”、“毛脸雷公嘴”;特定势力的妖怪(如牛魔王)可能有特殊用语或态度。尝试分析称呼和势力是否存在对应,探索妖怪对孙悟空的称呼是否能够作为推断妖怪背景的证据。可以逐步的回答问题:例如先人工列一份称呼词表(可以边做边补),然后使用正则

表达式来抓取说话人+ 对白(例如只抓取【某某道:“”】这种形式),便可以得到一份简单的【人物-对孙悟空的称呼】的数据。

  • 示例2: 红楼梦后四十回与前八十回是否同人所写:《红楼梦》是中国古典小说巅峰之作,传统上认为全书120 回,但有明确史料表明:前80 回出自曹雪芹,被称为“脂本八十回”;后40 回(高鹗续稿)作者归属存在争议。学界普遍观点是“前80 回为曹雪芹,后40 回为续作”,但对后40 回的写作方式、是否完全来自一人、是否参考草稿等问题,仍存在大量争论。探究《红楼梦》后40 回与前80 回是否具备明显的风格差异?是否有证据支撑“两段文本可能出自不同作者”?通过可视化(如折线图、柱状图、热力图、散点图、PCA

图等)展示你的发现。例如可以比较前80 回vs 后40 回在以下指标上的差异:每千字使用的常用词频(如“的”“了”“者”等);平均句子长度、句长分布;专用词汇(如“凤姐”、“宝玉”、“探春”)的出现概率;基于共现的人物关系变化等。

课程资料由授课教师、助教与同学共同积累。