- 数据集
【免费下载链接】chinese-poetry
The most comprehensive database of Chinese poetry 🧶最全中华古诗词数据库, 唐宋两朝近一万四千古诗人, 接近5.5万首唐诗加26万宋诗. 两宋时期1564位词人,21050首词。
《花间集》是中国文学史上第一部文人词选集,也是 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()直接消费这些文件,而不必担心文件级格式损坏。
实战:把《花间集》接入你的诗词应用
综合以上数据与源码,接入《花间集》的最小可行流程如下:
- 定位数据:读取 五代诗词/huajianji 目录下的 10 个卷文件(跳过
README.md),或直接使用官方 loader 的wudai-huajianji数据集; - 按卷或全本加载:
json.load()逐文件读取,得到[{"title", "paragraphs", "author", "rhythmic", "notes"}, ...]数组; - 结构化入库:以
rhythmic(词牌)、author(作者)建索引,paragraphs用"\n".join()还原全文,notes保留为逐句注文; - 去重处理:若同时接入 全唐诗 与 宋词,按「作者 + 词牌 + 首句」关联键去重,规避五代作品跨集重复;
- 渲染展示:词牌、序数、正文分段(阙)天然适配列表页与详情页的卡片式布局。
例如加载并渲染温庭筠《菩萨蛮 其一》的代码片段:
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首词。
相关推荐
Redux-Beacon高级技巧:使用combine-events和debounce-event优化事件流
Redux Beacon高级技巧:使用combine events和debounce event优化事件流 Redux Beacon是一款强大的Redux和ng
【亲测免费】 chinese-poetry:构建古文诗词数据集和机器学习的数据宝库
chinese poetry:构建古文诗词数据集和机器学习的数据宝库 项目介绍 chinese poetry 是一个开源的中文诗歌古典文集数据集,旨在为研究者和
数据集NLPFlair 文本分类数据格式解析:AG_NEWS 数据集的 FastText 格式与加载实战
Flair 文本分类数据格式解析:AG_NEWS 数据集的 FastText 格式与加载实战 AG_NEWS(AG's News Topic Classific
NLP深度学习机器学习
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考