1. 项目背景与核心价值
古诗词作为中华文化瑰宝,其数字化处理一直面临语义理解困难、情感分析模糊等挑战。这个项目以李清照词作为切入点,尝试解决三个核心问题:如何量化婉约派诗词的意象特征?如何实现基于情感维度的精准检索?如何让这套系统适配不同应用场景?
我在古典文学数字化领域工作八年,处理过超10万首诗词的标注工作。实测发现,传统的关键词检索在古诗词场景下准确率不足40%,而基于规则的情感分析对婉约派作品经常误判。这套系统通过多维度特征提取和混合检索模型,将准确率提升至78%以上。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 技术架构设计解析
2.1 数据预处理流水线
原始文本采用《全宋词》权威底本,经过以下处理流程:
- 异体字标准化(如"沈"转"沉")
- 典故标注(用[典故]标记出处)
- 格律校验(检测平仄错误)
- 分词强化(专有名词保护表包含"瑞脑"、"玉簟"等300+词条)
关键技巧:在jieba分词基础上加载自定义词典时,需要设置
check_content=False参数避免误拆连绵词
2.2 意象特征工程
构建四层意象标签体系:
- 自然意象(月、花、雨等)
- 闺阁意象(帘、镜、钗等)
- 情感载体(酒、泪、雁等)
- 时空意象(黄昏、重阳、秋等)
使用BERT-wwm-ext模型进行上下文感知的特征编码,对"瘦"这类多义字特别有效。例如:
- "人比黄花瘦" → 瘦(情感强度0.92)
- "绿肥红瘦" → 瘦(意象权重0.67)
2.3 混合检索模型
创新性地结合三种检索路径:
python复制class HybridRetriever:
def __init__(self):
self.lexical = BM25Okapi() # 字面匹配
self.semantic = SentenceBERT() # 语义向量
self.emotion = EmotionMLP() # 情感分类
def query(self, text):
lexical_score = self.lexical.search(text)
semantic_score = self.semantic.
