拓十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

《花间集》数据集深度解析:五代文人词 JSON 数据格式、文件组织与加载实践(chinese-poetry 仓库)

《花间集》数据集深度解析:五代文人词 JSON 数据格式、文件组织与加载实践(chinese-poetry 仓库)
  • 数据集

【免费下载链接】chinese-poetry

The most comprehensive database of Chinese poetry 🧶最全中华古诗词数据库, 唐宋两朝近一万四千古诗人, 接近5.5万首唐诗加26万宋诗. 两宋时期1564位词人,21050首词。

项目地址:https://gitcode.com/gh_mirrors/ch/chinese-poetry
点击查看免费下载

《花间集》是中国文学史上第一部文人词选集,也是 chinese-poetry 仓库「五代诗词」板块的核心数据集之一。本文以 五代诗词/huajianji/README.md 为骨架,结合仓库内实际 JSON 文件、数据加载器 与 数据集配置 的源码实现,系统讲解《花间集》的文本数据组织方式、字段语义、分卷文件结构,以及如何用官方 loader 一次性提取全本 498 首词并接入自己的诗词应用。

《花间集》:第一部文人词选集与五代词史坐标

《花间集》编纂于中国五代十国时期,由后蜀人赵崇祚(字弘基)编辑,是文学史上第一部文人词选集。原书收录温庭筠、韦庄等 18 位花间词派诗人的经典作品,集中而典型地反映了早期词史上文人词创作的主体取向、审美情趣、体貌风格和艺术成就。

在 chinese-poetry 仓库中,《花间集》与《南唐二主词》并列为「五代诗词」的两大数据集:

  • 五代诗词/huajianji —— 本文主角,《花间集》全本数据;
  • 五代诗词/nantang —— 南唐中主李璟、后主李煜的词作合集。

仓库根 README.md 的「数据集」列表也把「五代·花间集」单列为一个正式数据子集,与全唐诗、全宋词、论语、诗经等并列,说明它在本仓库中是独立成册、可直接消费的一级数据源。

数据形式:分卷 JSON 与统一字段结构

《花间集》数据分布在目录下的 11 个 JSON 文件中,命名规则为花间集卷第一至花间集卷第十的对应英文卷号文件,另加一个前置序言文件:

文件内容
huajianji-0-preface.json欧阳炯所作《花间集序》(含注释)
huajianji-1-juan.json~huajianji-9-juan.json原书卷一至卷九词作
huajianji-x-juan.json补卷(含毛熙震、孙光宪等词作)

每份词作 JSON 是一个对象数组,单个对象包含 5 个字段,以卷一首词(温庭筠《菩萨蛮 其一》)为例:

[ { "title": "菩萨蛮 其一", "paragraphs": [ "小山重叠金明灭,鬓云欲度香腮雪。", "懒起画蛾眉,弄妆梳洗迟。", "照花前后镜,花面交相映。", "新帖绣罗襦,双双金鹧鸪。" ], "author": "温庭筠", "rhythmic": "菩萨蛮", "notes": [ "1.小山--写女子的隔夜残妆。小山:女子画眉的式样之一。小山重叠:眉晕褪色。金:额黄,在额上涂黄色。金明灭:褪色的额黄明暗不匀。", "2.鬓云欲度--鬓发撩乱如云,低垂下来。香腮雪:洁白如雪的香腮。", "3.照花--对镜簪花。用前镜、后镜对照以瞻顾后影。", "4.双双--罗襦上用金线绣的成双的鹧鸪鸟。反衬自身孤独。" ] } ]

各字段语义如下:

  • title:词的标题,常为「词牌 + 序号」或「词牌 + 首句」组合(如菩萨蛮 其一、河渎神·铜鼓赛神来),是全词在书中的定位标识;
  • paragraphs:词的正文,按阙(片)拆分为字符串数组,是渲染词作正文的权威字段,也是官方 loader 提取的默认目标字段;
  • author:作者名,如「温庭筠」「韦庄」;
  • rhythmic:词牌名,如「菩萨蛮」「浣溪沙」,是词作分类与检索的核心维度;
  • notes:逐句注文数组,每项以「序号.关键词--释义」开头,承载古籍注释信息,如「1.小山--写女子的隔夜残妆」。

序言文件 huajianji-0-preface.json 结构略有不同:它没有paragraphs多段正文,而是把欧阳炯《花间集序》全文放入单元素paragraphs,并配 27 条注释(含「大蜀广政三年——相当公元940年」等考据),author为赵崇祚,rhythmic为「花间集」。读取序言时需要注意这一结构差异。

全本统计:498 首词、19 位作者、78 个词牌

对 五代诗词/huajianji 目录下全部 JSON 做一次聚合统计,可以还原这部选集的规模全貌:

  • 全本共498 首词;
  • 涉及19 位作者(README 所称「18 位词人」之外,序言作者赵崇祚也出现在数据中);
  • 使用78 个不同词牌。

作品量领先的作者与词牌(来自仓库实际数据统计):

排名作者词作数词牌词作数
1温庭筠66浣溪沙56
2孙光宪61菩萨蛮41
3顾敻54酒泉子26
4韦庄48临江仙26
5李珣37女冠子19

温庭筠(66 首)、韦庄(48 首)居前,与文学史上「温韦」并称、为花间派主将的定位完全吻合;词牌维度上「浣溪沙」「菩萨蛮」合计近 100 首,是花间词人最偏爱的两类小令,数据本身即可支撑词史研究中的风格统计。

数据去重说明:与全唐诗、全宋词可能重复

五代诗词/huajianji/README.md 的「注意」一节明确指出:

本目录数据保存了所有的花间集数据诗词,由于五代十国朝代的原因,可能与全唐诗和全宋词的诗词重复。这是正常的。

即:同一首词可能同时出现在本目录、全唐诗 与 宋词 数据集中。原因在于五代十国时期作者(如温庭筠)的作品在《全唐诗》《全宋词》的编纂口径中也被收录,各文集边界本就交叉。在构建跨数据集检索、去重或作者作品全景图谱时,应把author + title(或author + rhythmic + 首句)组合作为关联键,主动做归一化处理;宋词/UpdateCi.py 这类清洗脚本在合并多源词作时也需要考虑同样的重复问题。

官方加载器:用 PlainDataLoader 一键提取全本

《花间集》不仅是独立的 JSON 目录,还作为官方数据集注册进了仓库的加载器配置 loader/datas.json:

"wudai-huajianji": { "name": "五代-花间集", "id": 0, "path": "五代诗词/huajianji/", "excludes": ["README.md"], "tag": "paragraphs" }
  • path指向数据集目录;
  • excludes排除README.md等非数据文件;
  • tag: "paragraphs"指明从每条记录中提取paragraphs字段作为正文。

loader/data_loader.py 的PlainDataLoader据此实现了统一加载逻辑:当path是目录时,遍历目录内全部 JSON(跳过excludes命中的文件),把每条记录的tag字段拼接成一个大列表返回;当path指向单文件时直接读取。对《花间集》而言,最终得到的就是全本 498 首词的正文数组。

加载器自带的演示入口(loader/data_loader.py)给出了最直接的调用方式:

from loader.data_loader import PlainDataLoader loader = PlainDataLoader() # 默认读取 ./loader/datas.json print(loader.id_table) # id -> 数据集名 映射 # 提取《花间集》全部正文,末尾一条即补卷中的词作 print(loader.body_extractor("wudai-huajianji")[-1]) # 合并五代两大数据集(花间集 + 南唐二主词) print(len(loader.extract_from_multiple(["wudai-huajianji", "wudai-nantang"]))) # 按数据集 id 批量提取 print(loader.extract_with_ids([0, 1, 2]))

以上代码需要在仓库根目录下运行(PlainDataLoader默认配置路径为./loader/datas.json,且datas.json中cp_path为./),运行环境需具备 Python 3 与requests/json标准库即可。extract_with_ids([0, 1, 2])会依次取出「花间集、南唐二主词、元曲」三个数据集的正文,体现了同一套加载器跨数据集复用的设计。

数据校验:JSON 合法性由测试脚本兜底

仓库根目录的 test_poetry.py 提供了针对所有数据目录的 JSON 校验机制:它遍历仓库中所有含中文名称的目录(is_book_directory判断),对每个目录内的.json文件执行json.loads解析(test_poetry.py),任一文件解析失败即断言失败。

五代诗词/huajianji同样处于该校验范围之内,因此全部分卷文件(含序言与补卷)的 JSON 合法性是有测试兜底的——这意味着你可以放心地以标准json.load()直接消费这些文件,而不必担心文件级格式损坏。

实战:把《花间集》接入你的诗词应用

综合以上数据与源码,接入《花间集》的最小可行流程如下:

  1. 定位数据:读取 五代诗词/huajianji 目录下的 10 个卷文件(跳过README.md),或直接使用官方 loader 的wudai-huajianji数据集;
  2. 按卷或全本加载:json.load()逐文件读取,得到[{"title", "paragraphs", "author", "rhythmic", "notes"}, ...]数组;
  3. 结构化入库:以rhythmic(词牌)、author(作者)建索引,paragraphs用"\n".join()还原全文,notes保留为逐句注文;
  4. 去重处理:若同时接入 全唐诗 与 宋词,按「作者 + 词牌 + 首句」关联键去重,规避五代作品跨集重复;
  5. 渲染展示:词牌、序数、正文分段(阙)天然适配列表页与详情页的卡片式布局。

例如加载并渲染温庭筠《菩萨蛮 其一》的代码片段:

import json with open("五代诗词/huajianji/huajianji-1-juan.json", encoding="utf-8") as f: poems = json.load(f) first = poems[0] print(first["rhythmic"], first["title"], first["author"]) # 菩萨蛮 菩萨蛮 其一 温庭筠 print("\n".join(first["paragraphs"])) # 正文按阙分行

依托 README.md 描述的「JSON 格式分发、方便快速构建诗词类应用」的设计初衷,《花间集》数据在诗词查询、词牌统计、作者作品集、风格分析、诗词生成等场景中都能直接落地。对五代词研究而言,这份数据更是把「第一部文人词选集」从纸面文献变成了可编程、可统计、可检索的结构化资产。

  • 数据集

【免费下载链接】chinese-poetry

The most comprehensive database of Chinese poetry 🧶最全中华古诗词数据库, 唐宋两朝近一万四千古诗人, 接近5.5万首唐诗加26万宋诗. 两宋时期1564位词人,21050首词。

项目地址:https://gitcode.com/gh_mirrors/ch/chinese-poetry
点击查看免费下载
上一篇:Windows平台5分钟搭建RTMP直播服务器:nginx-rtmp-win32终极教程
下一篇:如何通过Secretive安全培训认证:验证团队安全管理能力的完整指南

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

返回列表