文章目录

是庸老的小说迷,想着根据小说做个大模型项目,既好理解,又能用到主流知识点。

以金庸先生的15部小说(“飞雪连天射白鹿,笑书神侠倚碧鸳”加《越女剑》)作为语料库,是一个绝佳的算法实验场。这个数据集不仅包含了海量的文本,还自带极其复杂的人物关系、时间线和武学体系。

为了全面体现各种维度的算法,你可以将项目设计为以下几个核心模块,每个模块对应不同的算法维度:

文本检索与 NLP 维度(基础与进阶)
核心目标:解决“如何从千万字中精准找到想要的内容”。
BM25 关键词检索:
测试问题:“帮我找出《天龙八部》中所有提到‘降龙十八掌’的原文片段。”
算法体现:分词(jieba)、停用词过滤、倒排索引构建、BM25 评分机制。
向量语义检索(Embedding + ANN):
测试问题:“书中有哪些描写‘孤独落寞’心境的段落?”(原文可能没有“孤独”二字,而是“形影相吊”、“萧瑟”等)。
算法体现:文本向量化(如 BGE、M3E)、HNSW/IVF 等近似最近邻搜索算法、余弦相似度计算。
混合检索与重排序(Hybrid Search & Rerank):
测试问题:“张无忌在光明顶上的高光时刻。”
算法体现:BM25 召回“张无忌”、“光明顶”,向量召回“力战群雄”、“乾坤大挪移”,使用 RRF(倒数排名融合)算法合并结果,最后用 Cross-Encoder 模型进行精排。

知识图谱与图算法维度(关系与推理)
核心目标:解决“人物之间的复杂关系和隐藏线索”。
实体识别与关系抽取(NER & RE):
测试问题:“提取出《神雕侠侣》中所有的师徒关系和敌对关系。”
算法体现:基于大模型(LLM)的信息抽取、Prompt Engineering、正则表达式辅助。
图数据库与路径搜索:
测试问题:“郭靖和韦小宝之间有几层关系?请找出最短路径。”(例如:郭靖 -> 黄蓉 -> 郭襄 -> 灭绝师太 -> 峨眉派 -> 张三丰 -> 武当派 -> 张无忌 -> 谢逊 -> 殷素素 -> 殷天正 -> 韦小宝… 当然这是跨书,同书内如“段誉 -> 段正淳 -> 阮星竹 -> 阿朱 -> 萧峰”)。
算法体现:Neo4j 图数据库建模、Dijkstra / A* 最短路径算法、社区发现算法(Louvain,用于发现门派或阵营)。

大模型应用与 RAG 维度(生成与问答)
核心目标:解决“基于原著内容的智能问答与创作”。
多文档 RAG 问答:
测试问题:“对比一下《射雕英雄传》和《倚天屠龙记》中‘九阴真经’的修炼方法和威力有何不同?”
算法体现:文档切片(Chunking)、上下文窗口管理、多路召回、大模型长文本理解与对比生成。
幻觉抑制(Faithfulness):
测试问题:“林平之最后是怎么死的?”(如果原著没写,测试模型是否会瞎编)。
算法体现:引用溯源(Citation)、答案置信度评估、基于知识库的严格约束生成。

数据分析与统计维度(宏观洞察)
核心目标:解决“对小说宏观特征的量化分析”。
主题模型与情感分析:
测试问题:“分析《笑傲江湖》中令狐冲的情感变化曲线。”
算法体现:LDA 主题模型、基于词典或大模型的情感极性打分、时间序列平滑算法。
文本风格与作者归属(Stylometry):
测试问题:“《倚天屠龙记》后半部分和前半部分的用词习惯一致吗?”(探讨代笔传闻)。
算法体现:词频统计、TF-IDF、PCA/t-SNE 降维可视化、聚类算法(K-Means)。

推荐系统维度(个性化)
核心目标:解决“根据用户喜好推荐小说或章节”。
测试问题:“我喜欢《天龙八部》里的悲剧色彩和群像描写,接下来该看哪本?”
算法体现:协同过滤(基于用户/物品)、基于内容的推荐(Content-based,提取小说标签如“武侠”、“历史”、“悲剧”进行匹配)。

💡 项目落地建议(MVP 路线)

如果你准备动手,建议按照以下阶段推进:
V1.0(数据基建):写爬虫或找开源数据集,清洗出15部小说的纯文本。用 jieba 分词,存入 Elasticsearch,实现基础的 BM25 搜索。
V2.0(语义升级):引入向量数据库(如 Milvus 或 Chroma),将小说按章节或段落切片并 Embedding,实现“模糊语义搜索”。
V3.0(RAG 问答):接入 LLM API(如通义千问),结合 V1 和 V2 的混合检索,做一个“金庸百晓生”聊天机器人。
V4.0(高阶玩法):用大模型抽取人物关系,导入 Neo4j,实现“人物关系图谱查询”和“跨书联动问答”。

这个项目不仅能让你重温金庸宇宙,还能把搜索、NLP、图计算、大模型应用、数据分析这五大主流算法方向全部串联起来,是一个含金量极高的全栈 AI 练手项目!

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐