AI大模型与知识图谱在古诗词分析中的应用
1. 项目概述:当古典诗词遇上AI大模型
这个毕业设计项目将传统古诗词分析与现代AI技术做了个有趣的结合。核心思路是用Django搭建Web平台,通过LLM大模型构建知识图谱,实现古诗词的情感分析、个性化推荐和可视化展示。我去年指导过类似项目,发现这种技术组合特别适合处理古诗词这类结构化程度低但语义丰富的文本数据。
整套系统主要解决三个痛点:一是传统诗词分类依赖人工标注,效率低下;二是普通推荐系统难以捕捉诗词中的隐喻情感;三是诗词间的隐含关联(如用典、化用)难以直观展示。用大模型+知识图谱的方案,正好能突破这些限制。
2. 技术架构解析
2.1 核心组件拓扑
graph TD A[用户前端] --> B[Django服务层] B --> C[LLM处理模块] C --> D[Neo4j知识图谱] B --> E[情感分析模型] D --> F[可视化引擎](注:实际开发中建议用Python的pyvis库实现动态可视化)
2.2 关键技术选型对比
| 技术方向 | 可选方案 | 本项目选择 | 选择依据 |
|---|---|---|---|
| Web框架 | Flask/Django/SpringBoot | Django | 自带Admin后台适合快速开发数据管理功能 |
| 大模型 | ChatGPT/文心一言/LLaMA | LLaMA-2-7B | 可本地部署且诗词理解能力经过微调验证 |
| 知识图谱 | Neo4j/JanusGraph | Neo4j | 对关联查询性能优化更好 |
| 可视化 | ECharts/D3.js | ECharts | 学习曲线平缓且支持力导向图 |
3. 核心模块实现细节
3.1 古诗词知识图谱构建
从《全唐诗》等公开语料入手,处理流程包括:
- 实体识别:用微调后的BERT模型抽诗人、朝代、意象(如"明月"、"杨柳")
- 关系抽取:通过prompt工程让LLM识别"引用"、"唱和"、"同主题"等关系
- 数据清洗:人工校验高频错误(如将"李白"误识别为酒具)
关键技巧:对"春风又绿江南岸"这类名句,需单独建立与多个诗人的"化用"关系边
3.2 情感分析模型优化
基础方案是用SnowNLP做情感值计算,但实测发现三个问题:
- 对"感时花溅泪"等反语判断不准
- 无法区分"豪放"与"婉约"的风格维度
- 对用典情感(如"商女不知亡国恨")识别率低
改进方案:
- 用LoRA微调LLaMA模型
- 构建包含2000首标注诗词的专用数据集
- 输出五维情感向量:喜/怒/哀/乐/思
3.3 混合推荐策略
结合三种算法:
- 基于内容的推荐(TF-IDF+Word2Vec)
- 协同过滤(用户行为日志)
- 知识图谱路径推荐(如喜欢A诗人→推荐其师承的B诗人)
权重分配公式:
最终得分 = 0.4*内容相似度 + 0.3*用户偏好 + 0.3*图谱关联度4. 典型问题排查实录
4.1 大模型幻觉问题
现象:知识图谱中出现"杜甫曾为李白代笔"等虚假关系 解决方案:
- 设置置信度阈值(需>0.7)
- 增加规则校验(朝代时间冲突检测)
- 人工审核队列机制
4.2 可视化性能瓶颈
当图谱节点>500时出现卡顿,通过以下优化:
- 采用WebWorker异步计算布局
- 实现LOD(Level of Detail)渲染
- 对"唐宋八大家"等知名团体做预聚合
4.3 冷启动问题
新用户没有行为数据时:
- 用IP定位推荐地域相关诗词
- 结合时间特征(清晨推"晨兴理荒秽")
- 问卷收集初始偏好(3道题即可)
5. 部署注意事项
- 硬件配置建议:
- 最低配置:4核CPU/16GB RAM/RTX3060
- 生产环境:需要GPU服务器运行LLM
- 安全防护:
- 对/api/llm接口做速率限制
- 诗词数据需脱敏处理(如作者生卒年)
- 性能监控:
- 知识图谱查询耗时>500ms需告警
- 推荐响应时间应<1.5s
6. 扩展方向
- 增加"联句创作"功能:用户写上半句,系统补全下半句
- 结合AR技术实现"诗词场景重现"
- 开发教师端的数据看板,分析班级诗词偏好
这个项目最让我意外的是,用知识图谱分析发现:宋代诗人最常引用的唐代诗人不是李白杜甫,而是白居易。后来查文献证实了这个发现,说明AI确实能帮助发现一些人工难以统计的规律。建议后续开发者可以多关注这类跨时空的文学影响研究。