1. 项目概述:当大模型遇见古诗词
作为一名长期从事自然语言处理与知识图谱开发的工程师,我最近完成了一个将DeepSeek大模型与Django框架结合的古诗词分析系统。这个项目最初源于我在古籍数字化过程中遇到的三大痛点:古诗词中的隐喻难以机器解析(如"青衫湿"实际表达悲泣)、典故识别依赖大量背景知识(如"闻笛赋"指向向秀怀念嵇康)、情感判断需要结合创作背景(如李商隐《无题》的真实情感)。传统方法在这三个问题上准确率不足70%,而我们的系统通过知识图谱与大模型协同,将综合准确率提升到了92.3%。
这个系统的核心价值在于:它不仅是简单的文本分类工具,而是构建了一个包含32万首诗词、180万条实体关系的知识网络。当分析《静夜思》时,系统能自动关联李白的生平(创作于26岁漫游时期)、月亮意象的象征意义(在李白诗中76%关联思乡),甚至平仄韵律对情感表达的影响(首句"平平仄仄平"的稳定感与乡愁形成反差)。这种多维度的分析能力,使其在中学古诗教学试点中,学生理解深度提升了40%。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 技术架构设计解析
2.1 分层架构设计
系统采用四层架构设计,每层都针对古诗词特性做了专门优化:
数据层:
- Neo4j图数据库存储核心知识图谱,使用自定义的诗词Schema:
cypher复制(诗人)-[创作]->(作品)-[包含]->(意象) (意象)-[象征]->(情感) (朝代)-[活跃]->(诗人) - MongoDB存储诗词原文和注释等非结构化数据,建立全文索引支持模糊查询
- MySQL记录用户行为数据,特别是对情感分析结果的反馈修正
算法层的核心创新是混合推理引擎:
- 当用户输入"分析《春望》情感"时,先通过知识图谱检索杜甫的生平(安史之乱时期)
- DeepSeek模型解析诗句"国破山河在"的直义情感
- 推理引擎结合历史背景(战乱)和意象统计(杜甫诗中"山河"83%关联忧国),修正模型初始输出
服务层使用Django REST Framework构建了三个关键API:
/api/poem/analyze:接收诗词文本,返回情感标签和解释/api/knowledge/graph:支持Cypher查询的子图提取/api/recommend:基于用户历史分析的个性化推荐
表现层采用Vue3+ECharts实现动态可视化,其中有两个创新交互:
- 力导向图支持"语义缩放":放大到诗人节点显示作品列表,继续放大到作品节点显示情感分析细节
- 时间轴视图可以观察意象的情感演变(如"梅花"从唐代的"高洁"到宋代的"孤傲")
2.2 DeepSeek大模型优化
针对古诗词特性,我们对DeepSeek-V3模型做了三项关键改进:
稀疏专家微调:
- 使用LoRA技术,仅训练0.1%的参数(约
