☰
幽梦影数据集解析:chinese-poetry 中张潮清言文集的 JSON 数据格式与加载实践
2026/9/30 6:48:42 网站建设 项目流程
  • 数据集

【免费下载链接】chinese-poetry

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

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

本文以 chinese-poetry 仓库中 幽梦影/README.md 及其数据文件 幽梦影/youmengying.json 为主体,系统讲解清代张潮《幽梦影》一书的 JSON 数据组织方式、字段语义与完整加载路径。通过仓库内的数据加载器(loader/data_loader.py)与数据校验脚本(test_poetry.py),读者可以掌握这套「正文 + 评注」两层结构的清言类文本如何在仓库中被定义、读取与复用,并可直接运用于自己的诗词类应用开发。

数据集概况:清代张潮的清言文集

幽梦影是清代文学家张潮(字山来,号心斋)所著的一部随笔体格言集,以格言、警句与生活美学感悟为主,全书采用「正文 + 时人评注」的独特体例,正文之后往往附有曹秋岳、张竹坡、江含徵、黄九烟等同时代文人圈子的批注,形成一种对话式的阅读体验。

在 chinese-poetry 仓库中,该数据集由以下两部分组成:

  • 幽梦影/README.md:数据集说明文档,交代作者、内容与数据格式;
  • 幽梦影/youmengying.json:实际数据文件,共收录 219 条条目。

依据 幽梦影/README.md 的说明,本数据集提供简体中文内容,首版数据由社区贡献者@snowtraces提供。该数据集同时被仓库根目录 README.md 的「数据集」章节收录,与唐诗宋诗、全宋词、论语、诗经等并列,属于仓库覆盖的古典文集之一。

数据格式:content 与 comment 两层结构

幽梦影/README.md 中给出了明确的数据格式定义:整个文件是一个 JSON 数组,每个元素是一个对象,包含content(正文)与comment(评注数组)两个字段。README 中的示意如下:

[ { "content": "读经宜冬,其神专也;读史宜夏,其时久也;读诸子宜秋,其致别也;读诸集宜春,其机物也。", "comment": [ "曹秋岳曰:可想见其南面百城时。", "庞笔奴曰:读《幽梦影》则春、夏、秋、冬,无时不宜。" ] } ]

对 幽梦影/youmengying.json 的实际内容进行全量统计,可以得到如下结构事实:

维度实际情况
总条目数219 条
字段集合仅content与comment两个键
含评注条目209 条(约 95.4%)
无评注条目10 条

各字段语义如下:

  • content(字符串):张潮原文正文。部分条目正文中保留有括号内注文,如“无善无恶是圣人(如'帝力何有于我'……之类)”,这是原书自注,直接保留在字符串中;
  • comment(字符串数组):时人评注的集合。每条评注以评者姓名开头,格式为“评者名+曰+评语”,例如“张竹坡曰:……”;同一正文可附带 0 到多条评注。

真实数据示例(节选自 幽梦影/youmengying.json 第 4 条):

{ "content": "天下有一人知己,可以不恨。不独人也,物亦有之。如菊以渊明为知己,梅以和靖为知己,竹以子猷为知己……一与之订,千秋不移。若松之于秦始,鹤之于卫懿,正所谓不可与作缘者也。", "comment": [ "查二瞻曰:此非松、鹤有求于秦始、卫懿,不幸为其所近,欲避之而不能耳。", "殷日戒曰:二君究非知松、鹤者,然亦无损其为松、鹤。", "周星远曰:鹤于卫懿,犹当感恩。至吕政五大夫之爵,直是唐突十八公耳。", "王名友曰:松遇封,鹤乘轩,还是知己。世间尚有剧松煮鹤者,此又秦、卫之罪人也。", "张竹坡曰:人中无知己,而下求于物,是物幸而人不幸矣。物不遇知己而滥用于人,是人快而物不快矣。可见知己之难,知其难方能知其乐。" ] }

从数据结构上看,这种「一正文对多评注」的模型与仓库中其他诗集类数据集(如paragraphs数组式诗行)不同:幽梦影的content是整段连续文本,评注则独立成数组,非常适合直接渲染为“原文 + 批注”的阅读界面。

在数据集注册表中定位幽梦影

仓库通过 loader/datas.json 维护所有数据集的注册信息,幽梦影在其中登记如下:

"youmengying": { "name": "幽梦影-张潮文集", "id": 6, "path": "幽梦影/youmengying.json", "tag": "content" }

该配置字段的含义:

字段值说明
name幽梦影-张潮文集数据集显示名
id6数据集在注册表中的数字标识,可用于按 id 反查数据集
path幽梦影/youmengying.json数据文件相对仓库根目录的路径(单文件类型)
tagcontent从每条记录中提取正文所用的字段名

注意此处tag取值为content,这正是幽梦影数据集区别于多数诗集的标志:大部分数据集(如全唐诗、宋词)的tag是paragraphs,按诗行数组切分正文;而幽梦影直接以content字段作为提取目标,反映其“格言段落”而非“诗句行”的文本性质。

通过 PlainDataLoader 加载幽梦影正文

仓库提供了统一的数据加载器 loader/data_loader.py,其中PlainDataLoader类负责按注册表配置读取任意数据集。其核心读取逻辑(body_extractor)会先判断目标路径是单个 JSON 文件还是目录:

  • 若是单文件(os.path.isfile成立),直接json.load后逐条累加poem[tag];
  • 若是目录,则遍历子文件并按excludes列表跳过 README、error 等非数据文件。

由于datas.json中youmengying的path指向单个文件、tag为content,因此加载时会走到单文件分支,将 219 条记录的content字符串依次拼入返回列表。最小可用调用示例:

from loader.data_loader import PlainDataLoader loader = PlainDataLoader() # 默认读取 ./loader/datas.json bodies = loader.body_extractor("youmengying") # 按注册名提取正文 print(len(bodies)) # 219 print(bodies[0]) # 读经宜冬,其神专也;读史宜夏,其时久也;……

PlainDataLoader还支持按数据集 id 提取(extract_with_ids([6]))与多数据集合并提取(extract_from_multiple(["youmengying", "shijing"])),便于把《幽梦影》与其他古典文集拼接成统一语料。若需要连带评注一起使用,则直接解析 幽梦影/youmengying.json 原始数组,遍历comment字段即可。

数据校验:test_poetry.py 与幽梦影目录

仓库根目录的 test_poetry.py 提供了针对各中文目录的 JSON 合法性校验。脚本中的is_book_directory通过判断目录名是否含中文字符来筛选文集目录,随后为每个目录(含幽梦影)动态注册一个test_幽梦影测试函数,递归调用check_json校验其中所有.json文件。

校验逻辑为:读取文件并执行json.loads,解析成功输出「校验成功」,解析失败则抛出断言并打印堆栈。这意味着 幽梦影/youmengying.json 只要能被标准 JSON 解析器读取,即可通过该脚本的校验。将 幽梦影/youmengying.json 与本仓库其他 JSON 数据一起纳入测试,保证了content/comment两层结构的数据在多次更新后仍保持合法可解析。

应用场景与使用建议

基于上述数据格式与加载路径,可将《幽梦影》数据集直接应用于以下场景:

  1. 古籍阅读应用:渲染「正文 + 评注」对照视图,content作为主文,comment数组按评者分组展示,还原原书对话式批注体验;
  2. 自然语言处理语料:利用PlainDataLoader的extract_from_multiple将youmengying与其他数据集(如shijing、chuci)合并,作为清言类文本的训练或检索语料;
  3. 格言检索与推荐:219 条短小精悍的格言段落适合构建“每日一句”类功能,按id(数组下标)随机取条即可。

使用时需注意两点前提:一是数据文件采用 UTF-8 编码,读取时建议显式指定encoding='utf-8';二是content与comment均为简体中文原始文本,未做句读分段或标点标准化处理,如需按句切分可在读取后进行二次加工。

小结

幽梦影数据集是 chinese-poetry 仓库中文言随笔类数据的典型代表:以 幽梦影/README.md 定义格式规范,以 幽梦影/youmengying.json 承载 219 条「正文 + 评注」内容,并通过 loader/datas.json 的注册表配置与 loader/data_loader.py 的PlainDataLoader实现统一读取,同时由 test_poetry.py 保证数据合法性。掌握这一组文件之间的关系,即可在自有应用中快速集成这份清言文集数据。

  • 数据集

【免费下载链接】chinese-poetry

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

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

相关推荐

上一篇:Unbabel COMET:多语言翻译质量评估框架
下一篇:给扫描 PDF 补上可搜索文字层:OCRmyPDF 多语言 OCR 配置(3 条命令快速上手)

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

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询