1. 项目背景与核心价值
去年在整理古典文学资料时,我发现人工分析四大名著的人物关系、情节脉络需要耗费大量时间。作为Python开发者,自然想到用NLP技术来自动化这个过程。经过三个月的实践,我摸索出一套完整的解决方案,不仅能快速提取文本特征,还能在VS Code里直接调用AI模型进行深度分析。
这套方法特别适合:
- 文学研究者快速获取文本统计特征
- 中文NLP学习者实践词向量、主题模型等算法
- 开发者构建自己的文学分析工具链
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境准备与数据获取
2.1 基础工具栈
python复制# 核心库清单
import jieba # 中文分词
import gensim # 主题建模
from sklearn.feature_extraction.text import TfidfVectorizer # 特征提取
import spacy # 实体识别
# 推荐使用conda创建专用环境
conda create -n nlp_classic python=3.8
conda activate nlp_classic
注意:spacy需要单独安装中文语言包:
bash复制python -m spacy download zh_core_web_sm
2.2 文本数据预处理
四大名著txt文件建议从权威渠道获取,我使用的是中华书局电子版。预处理时特别注意:
- 删除章节标题和注释(正则匹配"第[一二三四五六七八九十百]+回")
- 统一全半角标点
- 处理特殊字符(如■□等排版符号)
python复制def clean_text(text):
text = re.sub(r'第[一二三四五六七八九十百]+回', '', text)
text = text.translate(str.maketrans(',。!?;:“”‘’', ',.!?;:""\'\''))
return text
3. 核心分析技术实现
3.1 人物关系网络构建
使用基于共现分析的方案:
- 用jieba进行命名实体识别(需自定义词典)
- 滑动窗口统计人物共现次数
- 用networkx生成关系图
python复制# 自定义人物词典示例
