1. 项目概述与核心价值
这个基于Django框架和DeepSeek大模型的古诗词分析系统,本质上是一个融合了传统Web开发与现代AI技术的文化计算应用。我在实际开发中发现,它完美解决了三个行业痛点:一是传统诗词推荐系统缺乏情感维度分析,二是静态知识图谱难以捕捉诗词间的深层关联,三是普通可视化方案无法直观展示诗词的时空情感特征。
系统采用四层架构设计:数据采集层(爬虫+人工标注)、AI分析层(DeepSeek微调模型)、业务逻辑层(Django REST框架)、展示层(Echarts+D3.js)。其中最具创新性的是将知识图谱技术与情感计算结合,通过大模型提取诗词中的意象、典故等实体,同时分析情感倾向,构建出带有情感权重的多维关系网络。
2. 关键技术实现解析
2.1 知识图谱构建流程
诗词数据处理采用"双通道标注"方案:
- 结构化数据通道:自动提取诗题、作者、朝代等元数据
- 非结构化数据通道:使用DeepSeek模型进行以下处理:
- 实体识别(人物、地点、意象)
- 关系抽取(用典、唱和、化用)
- 情感分析(基于自定义的7维情感词典)
知识存储采用Neo4j图数据库,节点设计包含特殊属性:
python复制class PoemNode:
title: str
author: str
dynasty: str
sentiment: dict # {joy:0.7, sadness:0.2...}
vectors: list # 768维嵌入向量
2.2 大模型微调方案
针对古诗词领域特点,我们对DeepSeek模型进行了三阶段微调:
- 领域适应训练:使用30万首古诗构建MLM任务
- 特定任务训练:
- 情感分析:标注5万首诗词情感标签
- 关系抽取:构建1.2万组诗词关系对
- 知识蒸馏:将教师模型(参数量大)的能力迁移到轻量级学生模型
关键训练参数:
yaml复制learning_rate: 3e-5
batch_size: 32
max_seq_length: 256
epochs: 15
warmup_ratio: 0.1
3. 系统功能实现细节
3.1 情感可视化设计
采用"时空情感立方体"创新视图:
- X轴:历史时间线(朝代)
- Y轴:地理分布(诗人籍贯/任职地)
- Z轴:情感强度
- 颜色编码:情感类型(红=喜悦,蓝=忧伤)
前端实现基于Echarts GL的三维渲染:
javascript复制option = {
grid3D: {
viewControl: {
autoRotate: true
}
},
xAxis3D: {
type: 'category',
data: ['唐','宋','元','明','清']
},
series: [{
type: 'scatter3D',
symbolSize: 12,
data: convertedData,
itemStyle: {
color: function(params) {
return sentimentColorMap[params.data[3]]
}
}
}]
}
3.2 混合推荐算法
结合四种推荐策略的加权融合:
- 基于内容的推荐(TF-IDF+词向量)
- 协同过滤(用户行为矩阵分解)
- 知识图谱路径推荐
- 大模型生成式推荐
算法融合公式:
code复制final_score = 0.3*content + 0.2*CF + 0.3*KG + 0.2*LLM
4. 部署与性能优化
4.1 高并发解决方案
采用分级缓存策略:
- 热点数据:Redis缓存(TTL 5分钟)
- 图谱查询:Neo4j APOC缓存过程
- 模型推理:Triton推理服务器+动态批处理
实测QPS对比:
| 方案 | 平均响应时间 | 最大并发 |
|---|---|---|
| 原生Django | 320ms | 150 |
| 优化方案 | 89ms | 1200 |
4.2 大模型服务化
使用FastAPI封装模型接口,关键配置:
python复制@app.post("/analyze")
async def analyze_poem(poem: str):
# 动态批处理
inputs = tokenizer(poem, return_tensors="pt", padding=True, truncation=True)
with torch.no_grad():
outputs = model(**inputs)
return {
"entities": extract_entities(outputs),
"sentiment": compute_sentiment(outputs)
}
5. 典型问题与解决方案
5.1 古籍文本噪声处理
常见问题:
- 异体字(如"峯"与"峰")
- 排版错误(竖排转横排的错位)
- 缺字漏字
我们的清洗流程:
- 构建古汉语字符映射表(包含3.5万组对应关系)
- 基于BERT的错字检测模型
- 人工校验众包平台对接
5.2 情感标注一致性
解决方案:
- 设计分层标注指南(含300个典型示例)
- 使用Glicko-2评分系统评估标注者水平
- 引入标注仲裁机制(分歧样本由专家终审)
6. 项目扩展方向
在实际应用中我们发现几个有价值的延伸方向:
- 跨模态分析:将书法、绘画等视觉元素纳入知识图谱
- 风格迁移:基于大模型生成特定诗人风格的作品
- 教育应用:开发诗词写作辅助工具
技术栈升级路线:
- 尝试使用MoE架构降低推理成本
- 引入增量学习实现知识图谱动态更新
- 探索GNN在图谱推理中的应用