资治通鉴-文白对照数据-人工智能辅助理解-交互式史书
🚀 强烈推荐先点这里在线体验:https://zztj.wawuyu.cn
建议从「关系网络」「地图」开始探索,交互体验最佳。
更新记录
- 2026.1.17
- 前端可视化(visualization)
- URL 全局状态同步与历史语义(更稳定的跳转/回退体验)
- 范围驱动视图(按卷/年份范围过滤事件、地点等),详情交互增强
- 新增“地图”Tab(Leaflet + OpenStreetMap),地点可一键在地图中查看并高亮定位;地点列表支持搜索
- 时间轴重构为“时间点列表 + 右侧事件列表”,更适配事件密集年份
- 关系网络详情增强:人物详情/关系详情中展示“相关事件”,点击可直接打开事件卡片
- 顶部增加 GitHub 入口与 Star 数展示(更方便关注/收藏)
- 构建验证步骤补充(任务完成后可复现验证)
- 数据与流水线
- 统一知识库与类型定义完善(canonical artifact / unified KB types)
- 地点地理编码:高德(Amap)缓存与回填坐标流程
- 工程化与文档
- 多处结构/可读性重构与健壮 JSON 解析复用
- 任务地图与 UX 规范补充与更新;README 增加地图 Demo 截图
- 前端可视化(visualization)
效果预览(阶段性成果)
| 主界面(时间轴) | 核心能力:人物关系网 |
|---|---|
![]() | ![]() |
- 时间轴:事件密集时自动聚类;支持缩放/平移/搜索
- 人物关系网:点击人物/关系查看详情与交互事件(体现结构化的核心成果)
- 地点:地点列表与详情,串起相关人物与事件
文白对照阅读
简介
项目地址:zizhitongjian
这个仓库是有关资治通鉴-文白对照的可供人类和机器阅读阅读并进行相关数据研究的项目。
本项目中的文本格式按照原书的卷进行整理,chapters目录下按照[0-9]+_资治通鉴卷名.md进行分别存储:
chapters
├── 001_资治通鉴第一卷(周纪).md
├── 002_资治通鉴第二卷(周纪).md
├── 003_资治通鉴第三卷(周纪).md
...
每一卷的内容格式如下(*表示在部分卷中可能不存在的内容):
[卷名]*
[时间原文]
[时间译文]
[空白][空白][原文]
[空白][空白][译文]
[空白][空白][原文]
[空白][空白][译文]
[时间原文]
[时间译文]
[空白][空白][原文]
[空白][空白][译文]
结构化数据
结构化数据已由model.py生成,其中的数据结构及生成过程可见于model.py。结构化数据保存于data.json(结构化数据文件)。数据读取和使用样例请见data_usage_demo_visualization.ipynb(结构化数据使用样例)。
资治通鉴数据应用样例:交互式历史可视化系统
本项目新增了基于 React + D3.js 的现代化交互式可视化系统,位于 visualization 目录下。该系统提供了更加流畅、直观的历史数据探索体验,帮助读者从时间、空间、人物关系等多个维度深入理解《资治通鉴》。
主要功能展示
1. 交互式历史事件时间轴 (Interactive Timeline)
全新的时间轴组件支持智能聚类、缩放平移、全局概览及实时搜索。
- 主界面与时间轴概览:

- 时间轴细节交互:

2. 复杂人物关系网络 (Relation Network)
通过力导向图展示人物之间的复杂关系,支持点击节点查看人物详情,点击连线查看具体交互事件。
- 关系网络全景:

- 人物详情查看:

- 关系细节查看:

3. 历史地理与地点 (Historical Locations)
展示历史地名及其相关事件,支持查看地点详情。
- 地点列表:

- 地点详情:

- 地图模式(OpenStreetMap):

本地启动方法
如果您想在本地运行该系统:
cd visualization
npm install
npm run dev
技术实现简述
为了支撑上述可视化系统,本项目构建了一套完整的知识提取与融合流程:
-
AI 知识提取 (Knowledge Extraction)
- 利用大语言模型对《资治通鉴》原文进行深度语义分析。
- 自动提取人物 (Roles)、地点 (Locations)、事件 (Events) 及人物关系 (Relations)。
-
实体消歧与融合 (Entity Resolution)
- 智能合并:通过 Union-Find 算法,将同一人物的不同称呼(如“赵籍”、“赵侯”)自动合并为统一实体。
- 防误触机制:内置黑名单机制,防止“王”、“臣”、“公子”等通用称谓导致错误合并。
- 人地分离:特殊处理逻辑区分人名与国名(如区分“赵籍”与“赵国”),确保关系网络准确性。
-
统一知识库 (Unified Knowledge Base)
- 将分散在各卷的碎片化信息重组为时空连贯的结构化数据,支持跨卷检索与分析。
-
地点地理编码 (Geocoding)
- 使用高德(Amap)为
data/unified_knowledge.json的地点补全 WGS84 坐标(coordinates: [lng, lat])。 - 配置:复制
.env.example为.env,填入AMAP_KEY。 - 运行:
python scripts/geocode_locations_amap.py生成缓存,然后python scripts/merge_geocoding_into_unified_kb.py回填坐标。 - 速率控制:默认每次请求间隔
0.25s(可用--sleep调整),避免触发限流。 - 无密钥也可预跑:不设置
AMAP_KEY时会自动进入--simulate(只写入 query/needs_review,不调用 API)。
- 使用高德(Amap)为
项目进展
项目在持续更新,目前任务列表完成情况如下:
- 文本内容获取
- 格式化卷名,便于排序及查询
- 时间数据的译文格式保持和原文格式统一
- 去除不符合文白对照格式的空行、空格,使用统一的换行格式
- 文本内容程序化校对,定位残缺和错误内容
- 文本数据结构化,便于利用数据分析工具和可视化工具进行处理
- 结构化数据使用样例
- AI辅助理解及可视化样例
- AI辅助获取全书知识图谱(人物、事件及其关系,以及在格式化数据中的精确定位)
- 对话交互式资治通鉴
- ...
数据预处理的部分源码及说明在本项目的*.ipynb中存档及更新。
如果有任何感兴趣的、想要这个项目做的,请随时、尽情建议!
参与贡献
- 请随时、尽情在issue中提供任何意见建议,不限于文本内容、文本格式、数据结构、数据分析、数据可视化等任何主题;
- 文本中有
[todo]的地方为分析过程中发现的内容残缺的部分,可以参与校对和修复:D
相关资源
- http://www.ziyexing.com/files-5/zizhitongjian/zizhitongjian_index.htm
- https://ctext.org/wiki.pl?if=gb&res=548761&remap=gb
- 卷28译文可参考:http://www.ziyexing.com/files-4/yywj-157.htm