📊中华诗词知识库

Knowledge Base of Chinese Poetry (KBCP)

1. 为什么是一个诗词知识库

最近正在做关于RAG(Retrieval-Augmented Generation,检索增强生成)的技术研究。这个作为一个练习的实例,中国人应该都很喜欢,特别是诗词大会的爱好者。
RAG是一种结合了检索与生成能力的技术框架,它通过从大规模知识库中检索相关信息,来辅助生成模型产生更准确、更丰富、更具上下文相关性的回答或内容。
在自然语言处理领域,RAG技术是一种比较有效的提升模型性能、拓展应用场景的重要手段。

将中国经典的诗词数据整理起来构建这样一个结构化知识库,
一方面能够满足对于传统文化深入探索的需求,
另一方面,相较于其他复杂多变、结构不一的文本类型,诗词相对固定的文本结构使得数据预处理和分析工作更为简便高效,
有助于较快地进入RAG技术研究的核心状态,为后续的实验和模型优化提供坚实的数据基础, 从而推动在该领域取得更有价值的研究成果。

2. 总体目标

本项目旨在构建中华诗词结构化知识库系统。

👉 最终目的,是用高质量诗词数据 + 检索增强生成(RAG),做一个“可引用、可解释”的知识库。

对于诗词研究领域而言,该数据集将为历史、文学、语言学等多学科的研究提供丰富且详实的资料。

示例性的工作流程类似于:

                                用户问题
                                   ↓
        数据收集 ─ │     ┌────────────────┐
        数据清洗 ─ │─────│ 结构化数据库    │ ← 过滤(朝代/作者/主题)🔵(当前阶段)
        数据入库 ─ │     └────────────────┘
                                   ↓
                         ┌────────────────┐
                         │   关键词检索    │ ← 精确匹配(诗句/标题)
                         └────────────────┘
                                   ↓
                         ┌────────────────┐
                         │    向量检索     │ ← 语义相似(主题/风格)
                         └────────────────┘
                                   ↓
                         ┌────────────────┐
                         │ 重排序(rerank)│
                         └────────────────┘
                                   ↓
                                  LLM
                                   ↓
                                  回答
  1. 数据集内容

本项目是一个包含中国历代诗词的综合性数据集,涵盖了从先秦到现当代的诗歌作品,当前总计收集了 4,611 位诗人62,450 首诗词。数据集采用结构化存储方式,便于学术研究、文化分析和诗歌爱好者的使用。

本项目是一个包含中国历代诗词的综合性数据集,远景目标是做成规模宏大、内容丰富、知识准确的诗词宝库。
当前整理收集了 4600多位诗人62400多首诗词, 涵盖了从先秦到现当代的诗歌作品。后续会收集开源内容持续增加。
一方面吸收更多的诗词,另一方面增加对诗词的标签和注释解读。


  1. 数据统计概览

朝代 诗人数量 诗篇数量
先秦 4 325
0 0
19 84
魏晋 20 128
南北朝 43 152
14 22
2,475 40,373
五代 0 0
1,497 17,158
14 225
1 10
339 2,937
44 90
95 360
近代 3 131
现当代 42 452
不详 1 3
总计 4,611 62,450

注:

  1. 表格仅代表初始统计,实际以数据集中为准。
  2. 先秦主要是诗经,整理表格时,李煜等归类在唐而没有划分到五代,以至于五代为0。
  3. 不详是指朝代信息不详的诗词,目前只有3首。

  1. 收集数据的存储结构

本项目采用JSON格式存储数据,每个JSON文件包含一个诗人的所有诗词,文件名以诗人的名字命名,例如“李白.json”。
每个JSON文件的结构如下:

(1). 诗词.json

全部诗词,结构为朝代、作者、诗词。诗词一般是每一句或每两句为一个最小元素。在Json中是这么存的,在知识库中不知道是否好用。暂时感觉还是可以的。

单个朝代,为全部诗词的一个json子集。

discription字段为诗词的注释解读,目前为空,后续会补充。

{
    "唐": {
      "杜甫": {
        "杜甫-春日忆李白": {
          "title": "春日忆李白",
          "author": "杜甫",
          "author_id": "F0282",
          "dynasty": "唐",
          "dynasty_id": "F",
          "content": [
            "白也诗无敌,飘然思不群。",
            "清新庾开府,俊逸鲍参军。",
            "渭北春天树,江东日暮云。",
            "何时一樽酒,重与细论文。"
          ],
          "format": "五言律诗",
          "discription": ""
        }
      }
    }
}


(2) 诗人.json

诗人仅汇总了朝代,诗人传记,以及诗人图谱后续也会补充。

{
    "1": [
        "诗经",
        "先秦"
    ],
    "2": [
        "荆轲",
        "先秦"
    ],
    "3": [
        "屈原",
        "先秦"
    ]
}
  1. 开发阶段说明

阶段 状态 描述
1 🟢 已完成 数据收集:从公开诗集、古籍API等渠道抓取原始诗歌数据。 持续优化中。
2 🔵 进行中 数据集整理:清洗重复数据,统一格式,标注诗歌朝代、作者等元信息。
3 ⚪ 待开始 数据 Schema 设计:定义诗歌数据的结构化字段(如标题、内容、标签)。
4 ⚪ 待开始 数据加工流程:构建自动化脚本,实现数据清洗、分词、向量化等处理。
5 ⚪ 待开始 知识增强方案:引入外部知识库(如历史背景、诗人关系)丰富数据。
6 ⚪ 待开始 RAG 功能:基于检索增强生成(RAG)实现诗歌问答、创作等交互功能。
  • 🟢 已完成(未来更新时使用):该阶段任务已完成。
  • 🔵 进行中:当前正在专注开发的阶段。
  • 待开始:尚未启动的阶段。

项目的Github地址为
https://github.com/liang1057/Knowledge-Base-of-Chinese-Poetry

诗词资源json文件下载链接到资源中了。免积分资源 https://download.csdn.net/download/sdust_dx/92826598

Logo

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

更多推荐