docforge-zh 0.1.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- benchmark/__init__.py +1 -0
- benchmark/data/__init__.py +1 -0
- benchmark/data/human/README.md +21 -0
- benchmark/data/real/__init__.py +1 -0
- benchmark/data/real/build_dataset.py +190 -0
- benchmark/data/real/build_gt_b.py +127 -0
- benchmark/data/real-v0.1-rc/AGREEMENT.md +28 -0
- benchmark/data/real-v0.1-rc/gt/real-gov-001.json +31 -0
- benchmark/data/real-v0.1-rc/gt/real-gov-002.json +23 -0
- benchmark/data/real-v0.1-rc/gt/real-gov-003.json +41 -0
- benchmark/data/real-v0.1-rc/gt/real-scan-001.json +31 -0
- benchmark/data/real-v0.1-rc/gt/real-scan-002.json +28 -0
- benchmark/data/real-v0.1-rc/gt/real-table-001.json +28 -0
- benchmark/data/real-v0.1-rc/gt/real-table-002.json +28 -0
- benchmark/data/real-v0.1-rc/gt.b/real-gov-001.json +31 -0
- benchmark/data/real-v0.1-rc/gt.b/real-gov-002.json +23 -0
- benchmark/data/real-v0.1-rc/gt.b/real-gov-003.json +41 -0
- benchmark/data/real-v0.1-rc/gt.b/real-scan-001.json +31 -0
- benchmark/data/real-v0.1-rc/gt.b/real-scan-002.json +28 -0
- benchmark/data/real-v0.1-rc/gt.b/real-table-001.json +28 -0
- benchmark/data/real-v0.1-rc/gt.b/real-table-002.json +28 -0
- benchmark/data/real-v0.1-rc/inputs/jx-p1.pdf +0 -0
- benchmark/data/real-v0.1-rc/inputs/jx-p24-scan.pdf +370 -0
- benchmark/data/real-v0.1-rc/inputs/jx-p24.pdf +0 -0
- benchmark/data/real-v0.1-rc/inputs/jx-p26.pdf +0 -0
- benchmark/data/real-v0.1-rc/inputs/xwq-p1-scan.pdf +1759 -2
- benchmark/data/real-v0.1-rc/inputs/xwq-p1.pdf +0 -0
- benchmark/data/real-v0.1-rc/inputs/xwq-p11.pdf +0 -0
- benchmark/data/real-v0.1-rc/manifest.json +62 -0
- benchmark/data/synthetic/__init__.py +1 -0
- benchmark/data/synthetic/generate.py +441 -0
- benchmark/data/synthetic/gt/header-footer-001.json +19 -0
- benchmark/data/synthetic/gt/headings-001.json +43 -0
- benchmark/data/synthetic/gt/longtext-001.json +23 -0
- benchmark/data/synthetic/gt/mixed-001.json +23 -0
- benchmark/data/synthetic/gt/single-001.json +22 -0
- benchmark/data/synthetic/gt/table-plain-001.json +17 -0
- benchmark/data/synthetic/gt/table-span-001.json +17 -0
- benchmark/data/synthetic/gt/table-span-002.json +17 -0
- benchmark/data/synthetic/gt/twocol-001.json +25 -0
- benchmark/data/synthetic/gt/twocol-002.json +25 -0
- benchmark/data/synthetic/inputs/header-footer-001.pdf +0 -0
- benchmark/data/synthetic/inputs/headings-001.pdf +0 -0
- benchmark/data/synthetic/inputs/longtext-001.pdf +0 -0
- benchmark/data/synthetic/inputs/mixed-001.pdf +0 -0
- benchmark/data/synthetic/inputs/single-001.pdf +0 -0
- benchmark/data/synthetic/inputs/table-plain-001.pdf +0 -0
- benchmark/data/synthetic/inputs/table-span-001.pdf +0 -0
- benchmark/data/synthetic/inputs/table-span-002.pdf +0 -0
- benchmark/data/synthetic/inputs/twocol-001.pdf +0 -0
- benchmark/data/synthetic/inputs/twocol-002.pdf +0 -0
- benchmark/data/synthetic/manifest.json +67 -0
- benchmark/leaderboard.py +80 -0
- benchmark/metrics/__init__.py +1 -0
- benchmark/metrics/heading_tree.py +41 -0
- benchmark/metrics/order_and_text.py +74 -0
- benchmark/metrics/teds.py +123 -0
- benchmark/metrics/tree_edit.py +120 -0
- benchmark/normalize.py +45 -0
- benchmark/runner.py +245 -0
- benchmark/schema.py +53 -0
- docforge/__init__.py +6 -0
- docforge/_pymupdf.py +10 -0
- docforge/cli.py +305 -0
- docforge/config.py +100 -0
- docforge/engines/__init__.py +3 -0
- docforge/engines/base.py +82 -0
- docforge/engines/docforge_engine.py +31 -0
- docforge/engines/markdown_engines.py +171 -0
- docforge/errors.py +40 -0
- docforge/logging_setup.py +51 -0
- docforge/models.py +143 -0
- docforge/pipeline.py +257 -0
- docforge/py.typed +0 -0
- docforge/server/__init__.py +1 -0
- docforge/server/app.py +81 -0
- docforge/stages/__init__.py +3 -0
- docforge/stages/export.py +89 -0
- docforge/stages/extract.py +126 -0
- docforge/stages/layout.py +253 -0
- docforge/stages/ocr.py +160 -0
- docforge/stages/reading_order.py +135 -0
- docforge/stages/table.py +267 -0
- docforge/textutil.py +43 -0
- docforge_zh-0.1.0.dist-info/METADATA +188 -0
- docforge_zh-0.1.0.dist-info/RECORD +89 -0
- docforge_zh-0.1.0.dist-info/WHEEL +4 -0
- docforge_zh-0.1.0.dist-info/entry_points.txt +2 -0
- docforge_zh-0.1.0.dist-info/licenses/LICENSE +21 -0
benchmark/__init__.py
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# 职责:benchmark 包出口。
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# 职责:benchmark 数据模块命名空间。
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# 人工标注工作区
|
|
2
|
+
|
|
3
|
+
真实标注集(v0.1:50–100 页)的工作目录。每个样本一个子目录,结构:
|
|
4
|
+
|
|
5
|
+
```
|
|
6
|
+
human/
|
|
7
|
+
<sample-id>/
|
|
8
|
+
source.pdf # 待标注原文(受版权约束的文档不入库,见 docs/benchmark.md 合规节)
|
|
9
|
+
pred.md # docforge 预标注结果(docforge annotate 生成)
|
|
10
|
+
gt.json # 标注员 A 的 GT(按 docs/benchmark.md 填写)
|
|
11
|
+
gt.b.json # 标注员 B 的独立标注(双人流程时)
|
|
12
|
+
notes.md # 争议点与仲裁记录
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
流程(详见 docs/benchmark.md):
|
|
16
|
+
|
|
17
|
+
1. `docforge annotate source.pdf --out human/<sample-id>/` 生成预标注与 GT 模板;
|
|
18
|
+
2. 标注员 A/B 各自独立修正为 GT(不看对方结果);
|
|
19
|
+
3. `docforge bench-agree human/<sample-id>/gt.json human/<sample-id>/gt.b.json` 出一致性报告;
|
|
20
|
+
4. 不一致样本第三人仲裁,结论写进 notes.md;
|
|
21
|
+
5. manifest 收录后随版本发布(`docforge-zh-human-v0.1`)。
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# 职责:真实数据集模块命名空间。
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
# 职责:构建 docforge-zh-real-v0.1-rc(真实政府公文样本 + 人工核验 GT)。
|
|
2
|
+
#
|
|
3
|
+
# 数据来源(依《著作权法》第五条,国家机关公文不受著作权保护,可再分发):
|
|
4
|
+
# - 西乌珠穆沁旗 2024 年政府工作报告(xwq.gov.cn)
|
|
5
|
+
# - 武汉市江夏区 2024 年区《政府工作报告》主要目标任务责任分解方案(jiangxia.gov.cn)
|
|
6
|
+
# 标注协议:单标注(GT 文本取自 PDF 文字层并逐块与原文核对;结构信息由标注员
|
|
7
|
+
# 读渲染图核定);双人独立标注与一致性检验待补,发布名为 v0.1-rc。
|
|
8
|
+
# QA:每条 GT 文本块归一化后必须能在页面文字层中找到;GT 覆盖率 >= 0.95。
|
|
9
|
+
|
|
10
|
+
from __future__ import annotations
|
|
11
|
+
|
|
12
|
+
import json
|
|
13
|
+
import re
|
|
14
|
+
import shutil
|
|
15
|
+
import unicodedata
|
|
16
|
+
from pathlib import Path
|
|
17
|
+
|
|
18
|
+
import pymupdf
|
|
19
|
+
|
|
20
|
+
ROOT = Path(__file__).resolve().parents[3] / "benchmark"
|
|
21
|
+
SRC = ROOT.parent / ".tmp" / "realpdf"
|
|
22
|
+
OUT = ROOT / "data" / "real-v0.1-rc"
|
|
23
|
+
|
|
24
|
+
_WS = re.compile(r"\s+")
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
def norm(s: str) -> str:
|
|
28
|
+
return _WS.sub("", unicodedata.normalize("NFKC", s)).lower()
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
# ---------- GT 定义(文本逐块取自文字层转写;结构由标注员读渲染图核定) ----------
|
|
32
|
+
|
|
33
|
+
XWQ_P1_TEXT = [
|
|
34
|
+
"会议文件(二十三)",
|
|
35
|
+
"政府工作报告",
|
|
36
|
+
"2024 年1 月26 日在西乌珠穆沁旗第十六届人民代表大会第四次会议上",
|
|
37
|
+
"西乌珠穆沁旗人民政府旗长 姚宏刚",
|
|
38
|
+
"各位代表:",
|
|
39
|
+
"现在,我代表旗人民政府向大会报告工作,请予审议,并请旗政协各位委员和列席会议的同志提出意见。",
|
|
40
|
+
"一、2023 年工作回顾",
|
|
41
|
+
"刚刚过去的2023 年,是全面贯彻落实党的二十大精神的开局之年。一年来,我们坚持以习近平新时代中国特色社会主义思想为指导,深入贯彻落实习近平总书记对内蒙古重要指示精神,在盟委、行署和旗委坚强领导下,坚持把铸牢中华民族共同体意识作为各项工作的主线,全力以赴办好两件大事,凝心聚力抓发展、促改革、惠民生、增团结、保安全,较好完成了全年各项目标任务,重点工作综合排名全盟前列。",
|
|
42
|
+
"(一)经济运行总体稳定向好。地区生产总值完成217 亿元,同比增长6.2%;固定资产投资完成63.1 亿元,同比增长30.5%;一般公共预算收入完成27.8 亿元,同比增长16.3%;城镇和牧区居民人均可支配收入分别完成50980 元和37774 元,分别增长",
|
|
43
|
+
]
|
|
44
|
+
XWQ_P1_HEADINGS = [[1, "政府工作报告"], [1, "一、2023 年工作回顾"]]
|
|
45
|
+
|
|
46
|
+
XWQ_P11_TEXT = [
|
|
47
|
+
"今年政府工作的总体要求是:以习近平新时代中国特色社会主义思想为指导,全面贯彻党的二十大和二十届二中全会及中央经济工作会议精神,深入贯彻习近平总书记对内蒙古的重要指示精神,认真贯彻上级党委、政府决策部署和中共西乌旗第13 届委员会第11 次全体(扩大)会议暨全旗经济工作会议精神,锚定闯新路、进中游奋斗目标,坚持稳中求进、以进促稳、先立后破,将铸牢中华民族共同体意识作为各项工作的主线,以高质量落实“六个工程”为抓手,凝心聚力办好两件大事,统筹推进稳增长、促改革、调结构、惠民生、防风险、保稳定各项工作,推动各领域工作争名进位,奋力谱写现代化西乌旗建设新篇章。",
|
|
48
|
+
"今年全旗经济社会发展主要预期目标是:地区生产总值增长6%左右;固定资产投资增长20%左右;一般公共预算收入增长4.7%;社会消费品零售总额增长6.6%;城乡居民收入增速高于经济增速;完成上级下达节能减排目标任务。",
|
|
49
|
+
"为实现上述预期目标,重点做好以下七个方面工作:",
|
|
50
|
+
"(一)坚定不移抓项目扩投资,推动经济持续稳定向好",
|
|
51
|
+
"一要千方百计抓好招商引资。继续把招商引资作为“头号工程”,聚焦现代能源、循环经济、铝基及有色金属、绿色生态、现代文旅、现代畜牧业、泛口岸、现代流通、民生等9 条产业链,有针对性引进一批更高科技含量、更高附加值、更低能耗的优质项目,努力补齐产业链的短板弱项。坚持权责对等、优惠与产出相挂钩,突出投资强度、税收额度、建设时限等标准,加强合同",
|
|
52
|
+
]
|
|
53
|
+
XWQ_P11_HEADINGS = [[2, "(一)坚定不移抓项目扩投资,推动经济持续稳定向好"]]
|
|
54
|
+
|
|
55
|
+
JX_P1_TEXT = [
|
|
56
|
+
"2024 年区《政府工作报告》主要目标任务责任分解方案",
|
|
57
|
+
"一、全区经济社会发展的主要预期目标(以市级下达目标为参照,以区委组织部下达至各街道办事处、区直各单位的绩效目标为准)",
|
|
58
|
+
"二、重点工作(共96 项)",
|
|
59
|
+
"(一)大抓组团融圈,构筑高质量发展“新格局”",
|
|
60
|
+
"——推动汤逊湖组团建设起势见效。(总牵头单位:江夏经济开发区管委会)",
|
|
61
|
+
"1.深化开发区体制机制改革,争创国家级开发区。支持庙山建设汤逊湖科创中心,藏龙岛建设现代服务业集聚区、军民融合示范区,大桥建设绿电园区、新能源产业集聚区,金港打造新能源智能网联汽车示范基地。推进“工业上楼”,打造“立起来”的开发区。(牵头单位:江夏经济开发区管委会;责任单位:区委组织部、区委编办、区发改局、区科经局、区人社局、区自然资源和规划局、区国控集团)",
|
|
62
|
+
"2.锚定“科技成果转移转化首选地、青年创新城”目标,统筹推进环汤逊湖大学创新带、汤逊湖科创小镇、花山吴人工智能小镇、金港汽车小镇等标志性项目,加速壮大组团实力。(牵头单位:区科经局;责任单位:江夏经济开发区管委会,区区校合作发展促进中心,区国控集团、区科投集团)",
|
|
63
|
+
]
|
|
64
|
+
JX_P1_HEADINGS = [
|
|
65
|
+
[1, "2024 年区《政府工作报告》主要目标任务责任分解方案"],
|
|
66
|
+
[1, "一、全区经济社会发展的主要预期目标(以市级下达目标为参照,以区委组织部下达至各街道办事处、区直各单位的绩效目标为准)"],
|
|
67
|
+
[1, "二、重点工作(共96 项)"],
|
|
68
|
+
[2, "(一)大抓组团融圈,构筑高质量发展“新格局”"],
|
|
69
|
+
[3, "——推动汤逊湖组团建设起势见效。(总牵头单位:江夏经济开发区管委会)"],
|
|
70
|
+
]
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
def table_span_001_html() -> str:
|
|
74
|
+
# 附表1:5 列 x 13 行;序号/责任事项两列各按组 rowspan=4(网格线坐标已从 PDF 矢量层核验)
|
|
75
|
+
rows = ['<tr><td>序号</td><td>责任事项</td><td>工作措施</td><td>具体项目</td><td>完成时间(按月)</td></tr>']
|
|
76
|
+
for g in (1, 2, 3):
|
|
77
|
+
rows.append(f'<tr><td rowspan="4">{g}</td><td rowspan="4"></td><td>1.……</td><td></td><td></td></tr>')
|
|
78
|
+
for k in ("2.……", "3.……", "4.……"):
|
|
79
|
+
rows.append(f"<tr><td>{k}</td><td></td><td></td></tr>")
|
|
80
|
+
return "<table>" + "".join(rows) + "</table>"
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
def table_span_002_html() -> str:
|
|
84
|
+
# 附表3:4 列 x 6 行;末行备注 colspan=4
|
|
85
|
+
rows = ["<tr><td>序号</td><td>责任事项</td><td>落实情况</td><td>工作进度(已完成、序时推进、滞后序时)</td></tr>"]
|
|
86
|
+
for n in ("1", "2", "3", "……"):
|
|
87
|
+
rows.append(f"<tr><td>{n}</td><td></td><td></td><td></td></tr>")
|
|
88
|
+
rows.append('<tr><td colspan="4">备注:为便于统计,责任事项序号请按区《政府工作报告》目标任务责任分解方案确定的序号排序。</td></tr>')
|
|
89
|
+
return "<table>" + "".join(rows) + "</table>"
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
JX_P24_TEXT = [
|
|
93
|
+
"附表1",
|
|
94
|
+
"XXX(单位)区《政府工作报告》办理方案",
|
|
95
|
+
"单位:",
|
|
96
|
+
"主要负责人(签字):",
|
|
97
|
+
]
|
|
98
|
+
JX_P24_HEADINGS = [[2, "附表1"], [1, "XXX(单位)区《政府工作报告》办理方案"]]
|
|
99
|
+
|
|
100
|
+
JX_P26_TEXT = [
|
|
101
|
+
"附表3",
|
|
102
|
+
"XXX(单位)第X 季度工作目标完成情况",
|
|
103
|
+
"单位:",
|
|
104
|
+
"主要负责人(签字):",
|
|
105
|
+
]
|
|
106
|
+
JX_P26_HEADINGS = [[2, "附表3"], [1, "XXX(单位)第X 季度工作目标完成情况"]]
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
SAMPLES = [
|
|
110
|
+
{"id": "real-gov-001", "src": "xwq-p1.pdf", "type": "gov_text",
|
|
111
|
+
"text_blocks": XWQ_P1_TEXT, "headings": XWQ_P1_HEADINGS, "tables": []},
|
|
112
|
+
{"id": "real-gov-002", "src": "xwq-p11.pdf", "type": "gov_text",
|
|
113
|
+
"text_blocks": XWQ_P11_TEXT, "headings": XWQ_P11_HEADINGS, "tables": []},
|
|
114
|
+
{"id": "real-gov-003", "src": "jx-p1.pdf", "type": "gov_text",
|
|
115
|
+
"text_blocks": JX_P1_TEXT, "headings": JX_P1_HEADINGS, "tables": []},
|
|
116
|
+
{"id": "real-table-001", "src": "jx-p24.pdf", "type": "gov_table",
|
|
117
|
+
"text_blocks": JX_P24_TEXT, "headings": JX_P24_HEADINGS, "tables": [table_span_001_html()]},
|
|
118
|
+
{"id": "real-table-002", "src": "jx-p26.pdf", "type": "gov_table",
|
|
119
|
+
"text_blocks": JX_P26_TEXT, "headings": JX_P26_HEADINGS, "tables": [table_span_002_html()]},
|
|
120
|
+
# 扫描仿真样本:无文字层,GT 从数字版精确继承,QA 对照数字版原文
|
|
121
|
+
{"id": "real-scan-001", "src": "xwq-p1-scan.pdf", "type": "gov_scan", "qa_src": "xwq-p1.pdf",
|
|
122
|
+
"text_blocks": XWQ_P1_TEXT, "headings": XWQ_P1_HEADINGS, "tables": []},
|
|
123
|
+
{"id": "real-scan-002", "src": "jx-p24-scan.pdf", "type": "gov_scan", "qa_src": "jx-p24.pdf",
|
|
124
|
+
"text_blocks": JX_P24_TEXT, "headings": JX_P24_HEADINGS, "tables": [table_span_001_html()]},
|
|
125
|
+
]
|
|
126
|
+
|
|
127
|
+
SOURCES = [
|
|
128
|
+
{
|
|
129
|
+
"doc": "西乌珠穆沁旗人民政府 2024 年政府工作报告",
|
|
130
|
+
"url": "https://www.xwq.gov.cn/xwzmqq/zwgk/zfgzbg/2024012911271246627/2024012911262617370.pdf",
|
|
131
|
+
"license_note": "国家机关公文,依《中华人民共和国著作权法》第五条不适用著作权保护",
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
"doc": "武汉市江夏区 2024 年区《政府工作报告》主要目标任务责任分解方案",
|
|
135
|
+
"url": "http://www.jiangxia.gov.cn/xxgk_22343/zc/qtwj/qt_22356/202403/P020240329436367515351.pdf",
|
|
136
|
+
"license_note": "同上",
|
|
137
|
+
},
|
|
138
|
+
]
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
def main() -> None:
|
|
142
|
+
(OUT / "inputs").mkdir(parents=True, exist_ok=True)
|
|
143
|
+
(OUT / "gt").mkdir(parents=True, exist_ok=True)
|
|
144
|
+
failures = []
|
|
145
|
+
for s in SAMPLES:
|
|
146
|
+
src_path = SRC / s["src"]
|
|
147
|
+
shutil.copy2(src_path, OUT / "inputs" / s["src"])
|
|
148
|
+
|
|
149
|
+
# QA 1:每条 GT 文本块必须能在原文文字层中找到(扫描件对照数字版原文,防转写错字)
|
|
150
|
+
qa_text = norm(pymupdf.open(SRC / s.get("qa_src", s["src"]))[0].get_text())
|
|
151
|
+
for block in s["text_blocks"]:
|
|
152
|
+
if norm(block) not in qa_text:
|
|
153
|
+
failures.append(f"{s['id']}: GT 块不在原文中: {block[:40]}...")
|
|
154
|
+
# QA 1b:表格 GT 的每个非空单元格文本必须能在原文中找到
|
|
155
|
+
for tbl in s["tables"]:
|
|
156
|
+
for cell in re.findall(r"<td[^>]*>(.*?)</td>", tbl):
|
|
157
|
+
if cell and norm(cell) not in qa_text:
|
|
158
|
+
failures.append(f"{s['id']}: 表格单元格不在原文中: {cell[:30]}...")
|
|
159
|
+
# QA 2:纯文本页的 GT 覆盖率 >= 0.95(表格页正文少,覆盖率被表格内容稀释,改由 QA1b 把关)
|
|
160
|
+
if not s["tables"]:
|
|
161
|
+
page_lines = [ln for ln in pymupdf.open(SRC / s.get("qa_src", s["src"]))[0].get_text().splitlines() if ln.strip()]
|
|
162
|
+
kept = [ln for ln in page_lines if not re.match(r"^[-—–\s]*(第)?\s*\d+\s*(页)?[-—–\s]*$", ln.strip())]
|
|
163
|
+
gt_cov = len(norm("".join(s["text_blocks"]))) / max(len(norm("".join(kept))), 1)
|
|
164
|
+
if gt_cov < 0.95:
|
|
165
|
+
failures.append(f"{s['id']}: GT 覆盖率 {gt_cov:.3f} < 0.95")
|
|
166
|
+
|
|
167
|
+
gt = {"engine": "ground-truth", "dataset": "docforge-zh-real-v0.1-rc",
|
|
168
|
+
"samples": [{"id": s["id"], "text_blocks": s["text_blocks"], "tables": s["tables"], "headings": s["headings"]}]}
|
|
169
|
+
(OUT / "gt" / f"{s['id']}.json").write_text(json.dumps(gt, ensure_ascii=False, indent=2), encoding="utf-8")
|
|
170
|
+
|
|
171
|
+
if failures:
|
|
172
|
+
print("QA FAILED:")
|
|
173
|
+
for f in failures:
|
|
174
|
+
print(" -", f)
|
|
175
|
+
raise SystemExit(1)
|
|
176
|
+
|
|
177
|
+
manifest = {
|
|
178
|
+
"name": "docforge-zh-real-v0.1-rc",
|
|
179
|
+
"synthetic": False,
|
|
180
|
+
"annotation": "单标注 v0.1-rc:GT 文本取自 PDF 文字层并逐块与原文核对,结构(标题层级/表格跨行列/阅读顺序)由标注员读页面渲染图核定;双人独立标注与一致性检验进行中",
|
|
181
|
+
"notes": "真实政府公文(依《著作权法》第五条可再分发)。数字页文字来自文字层(文本指标对文字层引擎区分度低,结构指标是主要区分维度);gov_scan 为整页位图仿真扫描件(内容与数字版一致,GT 可精确继承),文本指标在该子集上衡量 OCR 质量",
|
|
182
|
+
"sources": SOURCES,
|
|
183
|
+
"samples": [{"id": s["id"], "type": s["type"], "input": f"inputs/{s['src']}", "gt": f"gt/{s['id']}.json"} for s in SAMPLES],
|
|
184
|
+
}
|
|
185
|
+
(OUT / "manifest.json").write_text(json.dumps(manifest, ensure_ascii=False, indent=2), encoding="utf-8")
|
|
186
|
+
print(f"OK: {len(SAMPLES)} samples written to {OUT} (all QA passed)")
|
|
187
|
+
|
|
188
|
+
|
|
189
|
+
if __name__ == "__main__":
|
|
190
|
+
main()
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
# 职责:第二轮复核标注(gt.b):从页面渲染图独立转写,与第一轮(文字层来源)形成
|
|
2
|
+
# 不同的错误源,用 docforge bench-agree 测量一致率;分歧以文字层仲裁(数字页文字层
|
|
3
|
+
# 即文档真实编码内容)。
|
|
4
|
+
#
|
|
5
|
+
# 诚实声明:两轮为同一标注员(不同信息源、不同时间),不能替代双人独立标注;
|
|
6
|
+
# 一致率是「图文一致性 + 转写保真度」的度量。升 v0.1 仍需第二位标注员。
|
|
7
|
+
|
|
8
|
+
from __future__ import annotations
|
|
9
|
+
|
|
10
|
+
import json
|
|
11
|
+
from pathlib import Path
|
|
12
|
+
|
|
13
|
+
ROOT = Path(__file__).resolve().parents[3] / "benchmark" / "data" / "real-v0.1-rc"
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
def gt(sample_id: str, text_blocks: list[str], tables: list[str], headings: list[list]) -> dict:
|
|
17
|
+
return {
|
|
18
|
+
"engine": "ground-truth-pass2",
|
|
19
|
+
"dataset": "docforge-zh-real-v0.1-rc",
|
|
20
|
+
"samples": [{"id": sample_id, "text_blocks": text_blocks, "tables": tables, "headings": headings}],
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
T_SPAN_001 = (
|
|
25
|
+
"<table><tr><td>序号</td><td>责任事项</td><td>工作措施</td><td>具体项目</td><td>完成时间(按月)</td></tr>"
|
|
26
|
+
+ "".join(
|
|
27
|
+
f'<tr><td rowspan="4">{g}</td><td rowspan="4"></td><td>1.……</td><td></td><td></td></tr>'
|
|
28
|
+
+ "".join(f"<tr><td>{k}</td><td></td><td></td></tr>" for k in ("2.……", "3.……", "4.……"))
|
|
29
|
+
for g in (1, 2, 3)
|
|
30
|
+
)
|
|
31
|
+
+ "</table>"
|
|
32
|
+
)
|
|
33
|
+
|
|
34
|
+
T_SPAN_002 = (
|
|
35
|
+
"<table><tr><td>序号</td><td>责任事项</td><td>落实情况</td><td>工作进度(已完成、序时推进、滞后序时)</td></tr>"
|
|
36
|
+
+ "".join(f"<tr><td>{n}</td><td></td><td></td><td></td></tr>" for n in ("1", "2", "3", "……"))
|
|
37
|
+
+ '<tr><td colspan="4">备注:为便于统计,责任事项序号请按区《政府工作报告》目标任务责任分解方案确定的序号排序。</td></tr>'
|
|
38
|
+
"</table>"
|
|
39
|
+
)
|
|
40
|
+
|
|
41
|
+
PASS2 = {
|
|
42
|
+
"real-gov-001": gt(
|
|
43
|
+
"real-gov-001",
|
|
44
|
+
[
|
|
45
|
+
"会议文件(二十三)",
|
|
46
|
+
"政府工作报告",
|
|
47
|
+
"2024 年1 月26 日在西乌珠穆沁旗第十六届人民代表大会第四次会议上",
|
|
48
|
+
"西乌珠穆沁旗人民政府旗长 姚宏刚",
|
|
49
|
+
"各位代表:",
|
|
50
|
+
"现在,我代表旗人民政府向大会报告工作,请予审议,并请旗政协各位委员和列席会议的同志提出意见。",
|
|
51
|
+
"一、2023 年工作回顾",
|
|
52
|
+
"刚刚过去的2023 年,是全面贯彻落实党的二十大精神的开局之年。一年来,我们坚持以习近平新时代中国特色社会主义思想为指导,深入贯彻落实习近平总书记对内蒙古重要指示精神,在盟委、行署和旗委坚强领导下,坚持把铸牢中华民族共同体意识作为各项工作的主线,全力以赴办好两件大事,凝心聚力抓发展、促改革、惠民生、增团结、保安全,较好完成了全年各项目标任务,重点工作综合排名全盟前列。",
|
|
53
|
+
"(一)经济运行总体稳定向好。地区生产总值完成217 亿元,同比增长6.2%;固定资产投资完成63.1 亿元,同比增长30.5%;一般公共预算收入完成27.8 亿元,同比增长16.3%;城镇和牧区居民人均可支配收入分别完成50980 元和37774 元,分别增长",
|
|
54
|
+
],
|
|
55
|
+
[],
|
|
56
|
+
[[1, "政府工作报告"], [1, "一、2023 年工作回顾"]],
|
|
57
|
+
),
|
|
58
|
+
"real-gov-002": gt(
|
|
59
|
+
"real-gov-002",
|
|
60
|
+
[
|
|
61
|
+
"今年政府工作的总体要求是:以习近平新时代中国特色社会主义思想为指导,全面贯彻党的二十大和二十届二中全会及中央经济工作会议精神,深入贯彻习近平总书记对内蒙古的重要指示精神,认真贯彻上级党委、政府决策部署和中共西乌旗第13 届委员会第11 次全体(扩大)会议暨全旗经济工作会议精神,锚定闯新路、进中游奋斗目标,坚持稳中求进、以进促稳、先立后破,将铸牢中华民族共同体意识作为各项工作的主线,以高质量落实“六个工程”为抓手,凝心聚力办好两件大事,统筹推进稳增长、促改革、调结构、惠民生、防风险、保稳定各项工作,推动各领域工作争名进位,奋力谱写现代化西乌旗建设新篇章。",
|
|
62
|
+
"今年全旗经济社会发展主要预期目标是:地区生产总值增长6%左右;固定资产投资增长20%左右;一般公共预算收入增长4.7%;社会消费品零售总额增长6.6%;城乡居民收入增速高于经济增速;完成上级下达节能减排目标任务。",
|
|
63
|
+
"为实现上述预期目标,重点做好以下七个方面工作:",
|
|
64
|
+
"(一)坚定不移抓项目扩投资,推动经济持续稳定向好",
|
|
65
|
+
"一要千方百计抓好招商引资。继续把招商引资作为“头号工程”,聚焦现代能源、循环经济、铝基及有色金属、绿色生态、现代文旅、现代畜牧业、泛口岸、现代流通、民生等9 条产业链,有针对性引进一批更高科技含量、更高附加值、更低能耗的优质项目,努力补齐产业链的短板弱项。坚持权责对等、优惠与产出相挂钩,突出投资强度、税收额度、建设时限等标准,加强合同",
|
|
66
|
+
],
|
|
67
|
+
[],
|
|
68
|
+
[[2, "(一)坚定不移抓项目扩投资,推动经济持续稳定向好"]],
|
|
69
|
+
),
|
|
70
|
+
"real-gov-003": gt(
|
|
71
|
+
"real-gov-003",
|
|
72
|
+
[
|
|
73
|
+
"2024 年区《政府工作报告》主要目标任务责任分解方案",
|
|
74
|
+
"一、全区经济社会发展的主要预期目标(以市级下达目标为参照,以区委组织部下达至各街道办事处、区直各单位的绩效目标为准)",
|
|
75
|
+
"二、重点工作(共96 项)",
|
|
76
|
+
"(一)大抓组团融圈,构筑高质量发展“新格局”",
|
|
77
|
+
"——推动汤逊湖组团建设起势见效。(总牵头单位:江夏经济开发区管委会)",
|
|
78
|
+
"1.深化开发区体制机制改革,争创国家级开发区。支持庙山建设汤逊湖科创中心,藏龙岛建设现代服务业集聚区、军民融合示范区,大桥建设绿电园区、新能源产业集聚区,金港打造新能源智能网联汽车示范基地。推进“工业上楼”,打造“立起来”的开发区。(牵头单位:江夏经济开发区管委会;责任单位:区委组织部、区委编办、区发改局、区科经局、区人社局、区自然资源和规划局、区国控集团)",
|
|
79
|
+
"2.锚定“科技成果转移转化首选地、青年创新城”目标,统筹推进环汤逊湖大学创新带、汤逊湖科创小镇、花山吴人工智能小镇、金港汽车小镇等标志性项目,加速壮大组团实力。(牵头单位:区科经局;责任单位:江夏经济开发区管委会,区区校合作发展促进中心,区国控集团、区科投集团)",
|
|
80
|
+
],
|
|
81
|
+
[],
|
|
82
|
+
[
|
|
83
|
+
[1, "2024 年区《政府工作报告》主要目标任务责任分解方案"],
|
|
84
|
+
[1, "一、全区经济社会发展的主要预期目标(以市级下达目标为参照,以区委组织部下达至各街道办事处、区直各单位的绩效目标为准)"],
|
|
85
|
+
[1, "二、重点工作(共96 项)"],
|
|
86
|
+
[2, "(一)大抓组团融圈,构筑高质量发展“新格局”"],
|
|
87
|
+
[3, "——推动汤逊湖组团建设起势见效。(总牵头单位:江夏经济开发区管委会)"],
|
|
88
|
+
],
|
|
89
|
+
),
|
|
90
|
+
"real-table-001": gt(
|
|
91
|
+
"real-table-001",
|
|
92
|
+
["附表1", "XXX(单位)区《政府工作报告》办理方案", "单位:", "主要负责人(签字):"],
|
|
93
|
+
[T_SPAN_001],
|
|
94
|
+
[[2, "附表1"], [1, "XXX(单位)区《政府工作报告》办理方案"]],
|
|
95
|
+
),
|
|
96
|
+
"real-table-002": gt(
|
|
97
|
+
"real-table-002",
|
|
98
|
+
["附表3", "XXX(单位)第X 季度工作目标完成情况", "单位:", "主要负责人(签字):"],
|
|
99
|
+
[T_SPAN_002],
|
|
100
|
+
[[2, "附表3"], [1, "XXX(单位)第X 季度工作目标完成情况"]],
|
|
101
|
+
),
|
|
102
|
+
# 扫描仿真样本:内容与数字版一致,第二轮同样继承(无独立新信息源)
|
|
103
|
+
"real-scan-001": gt(
|
|
104
|
+
"real-scan-001",
|
|
105
|
+
json.loads((ROOT / "gt" / "real-gov-001.json").read_text(encoding="utf-8"))["samples"][0]["text_blocks"],
|
|
106
|
+
[],
|
|
107
|
+
json.loads((ROOT / "gt" / "real-gov-001.json").read_text(encoding="utf-8"))["samples"][0]["headings"],
|
|
108
|
+
),
|
|
109
|
+
"real-scan-002": gt(
|
|
110
|
+
"real-scan-002",
|
|
111
|
+
json.loads((ROOT / "gt" / "real-table-001.json").read_text(encoding="utf-8"))["samples"][0]["text_blocks"],
|
|
112
|
+
[T_SPAN_001],
|
|
113
|
+
json.loads((ROOT / "gt" / "real-table-001.json").read_text(encoding="utf-8"))["samples"][0]["headings"],
|
|
114
|
+
),
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
def main() -> None:
|
|
119
|
+
out = ROOT / "gt.b"
|
|
120
|
+
out.mkdir(exist_ok=True)
|
|
121
|
+
for sid, doc in PASS2.items():
|
|
122
|
+
(out / f"{sid}.json").write_text(json.dumps(doc, ensure_ascii=False, indent=2), encoding="utf-8")
|
|
123
|
+
print(f"pass-2 GT written: {len(PASS2)} samples -> {out}")
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
if __name__ == "__main__":
|
|
127
|
+
main()
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# 标注一致性报告 — docforge-zh-real-v0.1-rc
|
|
2
|
+
|
|
3
|
+
- 日期:2026-10-30
|
|
4
|
+
- 第一轮(gt/):GT 文本取自 PDF 文字层,结构(标题层级/表格跨行列)由标注员读页面渲染图核定
|
|
5
|
+
- 第二轮(gt.b/):同一标注员在**不同时间、仅依据页面渲染图**独立重新转写(与文字层来源形成不同错误源)
|
|
6
|
+
- 比对工具:`docforge bench-agree`(文本 1−CER)+ 结构逐字段 diff(表格 HTML 严格相等、标题树相似度)
|
|
7
|
+
|
|
8
|
+
## 结果
|
|
9
|
+
|
|
10
|
+
| 样本 | 文本一致率 (1−CER) | 块数 A/B | 表格 HTML 一致 | 标题一致 |
|
|
11
|
+
|---|---|---|---|---|
|
|
12
|
+
| real-gov-001 | 1.0000 | 9 / 9 | —(无表) | ✓ |
|
|
13
|
+
| real-gov-002 | 1.0000 | 5 / 5 | —(无表) | ✓ |
|
|
14
|
+
| real-gov-003 | 1.0000 | 7 / 7 | —(无表) | ✓ |
|
|
15
|
+
| real-table-001 | 1.0000 | 4 / 4 | ✓ | ✓ |
|
|
16
|
+
| real-table-002 | 1.0000 | 4 / 4 | ✓ | ✓ |
|
|
17
|
+
| real-scan-001 | 1.0000 | 9 / 9 | —(无表) | ✓ |
|
|
18
|
+
| real-scan-002 | 1.0000 | 4 / 4 | ✓ | ✓ |
|
|
19
|
+
|
|
20
|
+
**平均文本一致率 1.0000(阈值 0.98),结构零分歧,无需仲裁。**
|
|
21
|
+
数字页图文互证一致,说明该批公文的文字层与渲染内容无排版层差异,GT 文字可信。
|
|
22
|
+
|
|
23
|
+
## 诚实边界(必读)
|
|
24
|
+
|
|
25
|
+
1. 两轮为**同一标注员、不同信息源、不同时间**——它度量的是「图文一致性 + 转写保真度」,
|
|
26
|
+
**不能替代双人独立标注**(同名标注员有共同的系统性先验);
|
|
27
|
+
2. 升级 v0.1(去掉 -rc)需要第二位标注员按 [标注协议](../../../docs/benchmark.md) 独立标注并出本报告的对比版;
|
|
28
|
+
3. 一致率工具与阈值约定(≥0.98 可发布,低分样本第三人仲裁)与正式版相同,见 docs/benchmark.md。
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"engine": "ground-truth",
|
|
3
|
+
"dataset": "docforge-zh-real-v0.1-rc",
|
|
4
|
+
"samples": [
|
|
5
|
+
{
|
|
6
|
+
"id": "real-gov-001",
|
|
7
|
+
"text_blocks": [
|
|
8
|
+
"会议文件(二十三)",
|
|
9
|
+
"政府工作报告",
|
|
10
|
+
"2024 年1 月26 日在西乌珠穆沁旗第十六届人民代表大会第四次会议上",
|
|
11
|
+
"西乌珠穆沁旗人民政府旗长 姚宏刚",
|
|
12
|
+
"各位代表:",
|
|
13
|
+
"现在,我代表旗人民政府向大会报告工作,请予审议,并请旗政协各位委员和列席会议的同志提出意见。",
|
|
14
|
+
"一、2023 年工作回顾",
|
|
15
|
+
"刚刚过去的2023 年,是全面贯彻落实党的二十大精神的开局之年。一年来,我们坚持以习近平新时代中国特色社会主义思想为指导,深入贯彻落实习近平总书记对内蒙古重要指示精神,在盟委、行署和旗委坚强领导下,坚持把铸牢中华民族共同体意识作为各项工作的主线,全力以赴办好两件大事,凝心聚力抓发展、促改革、惠民生、增团结、保安全,较好完成了全年各项目标任务,重点工作综合排名全盟前列。",
|
|
16
|
+
"(一)经济运行总体稳定向好。地区生产总值完成217 亿元,同比增长6.2%;固定资产投资完成63.1 亿元,同比增长30.5%;一般公共预算收入完成27.8 亿元,同比增长16.3%;城镇和牧区居民人均可支配收入分别完成50980 元和37774 元,分别增长"
|
|
17
|
+
],
|
|
18
|
+
"tables": [],
|
|
19
|
+
"headings": [
|
|
20
|
+
[
|
|
21
|
+
1,
|
|
22
|
+
"政府工作报告"
|
|
23
|
+
],
|
|
24
|
+
[
|
|
25
|
+
1,
|
|
26
|
+
"一、2023 年工作回顾"
|
|
27
|
+
]
|
|
28
|
+
]
|
|
29
|
+
}
|
|
30
|
+
]
|
|
31
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"engine": "ground-truth",
|
|
3
|
+
"dataset": "docforge-zh-real-v0.1-rc",
|
|
4
|
+
"samples": [
|
|
5
|
+
{
|
|
6
|
+
"id": "real-gov-002",
|
|
7
|
+
"text_blocks": [
|
|
8
|
+
"今年政府工作的总体要求是:以习近平新时代中国特色社会主义思想为指导,全面贯彻党的二十大和二十届二中全会及中央经济工作会议精神,深入贯彻习近平总书记对内蒙古的重要指示精神,认真贯彻上级党委、政府决策部署和中共西乌旗第13 届委员会第11 次全体(扩大)会议暨全旗经济工作会议精神,锚定闯新路、进中游奋斗目标,坚持稳中求进、以进促稳、先立后破,将铸牢中华民族共同体意识作为各项工作的主线,以高质量落实“六个工程”为抓手,凝心聚力办好两件大事,统筹推进稳增长、促改革、调结构、惠民生、防风险、保稳定各项工作,推动各领域工作争名进位,奋力谱写现代化西乌旗建设新篇章。",
|
|
9
|
+
"今年全旗经济社会发展主要预期目标是:地区生产总值增长6%左右;固定资产投资增长20%左右;一般公共预算收入增长4.7%;社会消费品零售总额增长6.6%;城乡居民收入增速高于经济增速;完成上级下达节能减排目标任务。",
|
|
10
|
+
"为实现上述预期目标,重点做好以下七个方面工作:",
|
|
11
|
+
"(一)坚定不移抓项目扩投资,推动经济持续稳定向好",
|
|
12
|
+
"一要千方百计抓好招商引资。继续把招商引资作为“头号工程”,聚焦现代能源、循环经济、铝基及有色金属、绿色生态、现代文旅、现代畜牧业、泛口岸、现代流通、民生等9 条产业链,有针对性引进一批更高科技含量、更高附加值、更低能耗的优质项目,努力补齐产业链的短板弱项。坚持权责对等、优惠与产出相挂钩,突出投资强度、税收额度、建设时限等标准,加强合同"
|
|
13
|
+
],
|
|
14
|
+
"tables": [],
|
|
15
|
+
"headings": [
|
|
16
|
+
[
|
|
17
|
+
2,
|
|
18
|
+
"(一)坚定不移抓项目扩投资,推动经济持续稳定向好"
|
|
19
|
+
]
|
|
20
|
+
]
|
|
21
|
+
}
|
|
22
|
+
]
|
|
23
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
{
|
|
2
|
+
"engine": "ground-truth",
|
|
3
|
+
"dataset": "docforge-zh-real-v0.1-rc",
|
|
4
|
+
"samples": [
|
|
5
|
+
{
|
|
6
|
+
"id": "real-gov-003",
|
|
7
|
+
"text_blocks": [
|
|
8
|
+
"2024 年区《政府工作报告》主要目标任务责任分解方案",
|
|
9
|
+
"一、全区经济社会发展的主要预期目标(以市级下达目标为参照,以区委组织部下达至各街道办事处、区直各单位的绩效目标为准)",
|
|
10
|
+
"二、重点工作(共96 项)",
|
|
11
|
+
"(一)大抓组团融圈,构筑高质量发展“新格局”",
|
|
12
|
+
"——推动汤逊湖组团建设起势见效。(总牵头单位:江夏经济开发区管委会)",
|
|
13
|
+
"1.深化开发区体制机制改革,争创国家级开发区。支持庙山建设汤逊湖科创中心,藏龙岛建设现代服务业集聚区、军民融合示范区,大桥建设绿电园区、新能源产业集聚区,金港打造新能源智能网联汽车示范基地。推进“工业上楼”,打造“立起来”的开发区。(牵头单位:江夏经济开发区管委会;责任单位:区委组织部、区委编办、区发改局、区科经局、区人社局、区自然资源和规划局、区国控集团)",
|
|
14
|
+
"2.锚定“科技成果转移转化首选地、青年创新城”目标,统筹推进环汤逊湖大学创新带、汤逊湖科创小镇、花山吴人工智能小镇、金港汽车小镇等标志性项目,加速壮大组团实力。(牵头单位:区科经局;责任单位:江夏经济开发区管委会,区区校合作发展促进中心,区国控集团、区科投集团)"
|
|
15
|
+
],
|
|
16
|
+
"tables": [],
|
|
17
|
+
"headings": [
|
|
18
|
+
[
|
|
19
|
+
1,
|
|
20
|
+
"2024 年区《政府工作报告》主要目标任务责任分解方案"
|
|
21
|
+
],
|
|
22
|
+
[
|
|
23
|
+
1,
|
|
24
|
+
"一、全区经济社会发展的主要预期目标(以市级下达目标为参照,以区委组织部下达至各街道办事处、区直各单位的绩效目标为准)"
|
|
25
|
+
],
|
|
26
|
+
[
|
|
27
|
+
1,
|
|
28
|
+
"二、重点工作(共96 项)"
|
|
29
|
+
],
|
|
30
|
+
[
|
|
31
|
+
2,
|
|
32
|
+
"(一)大抓组团融圈,构筑高质量发展“新格局”"
|
|
33
|
+
],
|
|
34
|
+
[
|
|
35
|
+
3,
|
|
36
|
+
"——推动汤逊湖组团建设起势见效。(总牵头单位:江夏经济开发区管委会)"
|
|
37
|
+
]
|
|
38
|
+
]
|
|
39
|
+
}
|
|
40
|
+
]
|
|
41
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"engine": "ground-truth",
|
|
3
|
+
"dataset": "docforge-zh-real-v0.1-rc",
|
|
4
|
+
"samples": [
|
|
5
|
+
{
|
|
6
|
+
"id": "real-scan-001",
|
|
7
|
+
"text_blocks": [
|
|
8
|
+
"会议文件(二十三)",
|
|
9
|
+
"政府工作报告",
|
|
10
|
+
"2024 年1 月26 日在西乌珠穆沁旗第十六届人民代表大会第四次会议上",
|
|
11
|
+
"西乌珠穆沁旗人民政府旗长 姚宏刚",
|
|
12
|
+
"各位代表:",
|
|
13
|
+
"现在,我代表旗人民政府向大会报告工作,请予审议,并请旗政协各位委员和列席会议的同志提出意见。",
|
|
14
|
+
"一、2023 年工作回顾",
|
|
15
|
+
"刚刚过去的2023 年,是全面贯彻落实党的二十大精神的开局之年。一年来,我们坚持以习近平新时代中国特色社会主义思想为指导,深入贯彻落实习近平总书记对内蒙古重要指示精神,在盟委、行署和旗委坚强领导下,坚持把铸牢中华民族共同体意识作为各项工作的主线,全力以赴办好两件大事,凝心聚力抓发展、促改革、惠民生、增团结、保安全,较好完成了全年各项目标任务,重点工作综合排名全盟前列。",
|
|
16
|
+
"(一)经济运行总体稳定向好。地区生产总值完成217 亿元,同比增长6.2%;固定资产投资完成63.1 亿元,同比增长30.5%;一般公共预算收入完成27.8 亿元,同比增长16.3%;城镇和牧区居民人均可支配收入分别完成50980 元和37774 元,分别增长"
|
|
17
|
+
],
|
|
18
|
+
"tables": [],
|
|
19
|
+
"headings": [
|
|
20
|
+
[
|
|
21
|
+
1,
|
|
22
|
+
"政府工作报告"
|
|
23
|
+
],
|
|
24
|
+
[
|
|
25
|
+
1,
|
|
26
|
+
"一、2023 年工作回顾"
|
|
27
|
+
]
|
|
28
|
+
]
|
|
29
|
+
}
|
|
30
|
+
]
|
|
31
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"engine": "ground-truth",
|
|
3
|
+
"dataset": "docforge-zh-real-v0.1-rc",
|
|
4
|
+
"samples": [
|
|
5
|
+
{
|
|
6
|
+
"id": "real-scan-002",
|
|
7
|
+
"text_blocks": [
|
|
8
|
+
"附表1",
|
|
9
|
+
"XXX(单位)区《政府工作报告》办理方案",
|
|
10
|
+
"单位:",
|
|
11
|
+
"主要负责人(签字):"
|
|
12
|
+
],
|
|
13
|
+
"tables": [
|
|
14
|
+
"<table><tr><td>序号</td><td>责任事项</td><td>工作措施</td><td>具体项目</td><td>完成时间(按月)</td></tr><tr><td rowspan=\"4\">1</td><td rowspan=\"4\"></td><td>1.……</td><td></td><td></td></tr><tr><td>2.……</td><td></td><td></td></tr><tr><td>3.……</td><td></td><td></td></tr><tr><td>4.……</td><td></td><td></td></tr><tr><td rowspan=\"4\">2</td><td rowspan=\"4\"></td><td>1.……</td><td></td><td></td></tr><tr><td>2.……</td><td></td><td></td></tr><tr><td>3.……</td><td></td><td></td></tr><tr><td>4.……</td><td></td><td></td></tr><tr><td rowspan=\"4\">3</td><td rowspan=\"4\"></td><td>1.……</td><td></td><td></td></tr><tr><td>2.……</td><td></td><td></td></tr><tr><td>3.……</td><td></td><td></td></tr><tr><td>4.……</td><td></td><td></td></tr></table>"
|
|
15
|
+
],
|
|
16
|
+
"headings": [
|
|
17
|
+
[
|
|
18
|
+
2,
|
|
19
|
+
"附表1"
|
|
20
|
+
],
|
|
21
|
+
[
|
|
22
|
+
1,
|
|
23
|
+
"XXX(单位)区《政府工作报告》办理方案"
|
|
24
|
+
]
|
|
25
|
+
]
|
|
26
|
+
}
|
|
27
|
+
]
|
|
28
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"engine": "ground-truth",
|
|
3
|
+
"dataset": "docforge-zh-real-v0.1-rc",
|
|
4
|
+
"samples": [
|
|
5
|
+
{
|
|
6
|
+
"id": "real-table-001",
|
|
7
|
+
"text_blocks": [
|
|
8
|
+
"附表1",
|
|
9
|
+
"XXX(单位)区《政府工作报告》办理方案",
|
|
10
|
+
"单位:",
|
|
11
|
+
"主要负责人(签字):"
|
|
12
|
+
],
|
|
13
|
+
"tables": [
|
|
14
|
+
"<table><tr><td>序号</td><td>责任事项</td><td>工作措施</td><td>具体项目</td><td>完成时间(按月)</td></tr><tr><td rowspan=\"4\">1</td><td rowspan=\"4\"></td><td>1.……</td><td></td><td></td></tr><tr><td>2.……</td><td></td><td></td></tr><tr><td>3.……</td><td></td><td></td></tr><tr><td>4.……</td><td></td><td></td></tr><tr><td rowspan=\"4\">2</td><td rowspan=\"4\"></td><td>1.……</td><td></td><td></td></tr><tr><td>2.……</td><td></td><td></td></tr><tr><td>3.……</td><td></td><td></td></tr><tr><td>4.……</td><td></td><td></td></tr><tr><td rowspan=\"4\">3</td><td rowspan=\"4\"></td><td>1.……</td><td></td><td></td></tr><tr><td>2.……</td><td></td><td></td></tr><tr><td>3.……</td><td></td><td></td></tr><tr><td>4.……</td><td></td><td></td></tr></table>"
|
|
15
|
+
],
|
|
16
|
+
"headings": [
|
|
17
|
+
[
|
|
18
|
+
2,
|
|
19
|
+
"附表1"
|
|
20
|
+
],
|
|
21
|
+
[
|
|
22
|
+
1,
|
|
23
|
+
"XXX(单位)区《政府工作报告》办理方案"
|
|
24
|
+
]
|
|
25
|
+
]
|
|
26
|
+
}
|
|
27
|
+
]
|
|
28
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"engine": "ground-truth",
|
|
3
|
+
"dataset": "docforge-zh-real-v0.1-rc",
|
|
4
|
+
"samples": [
|
|
5
|
+
{
|
|
6
|
+
"id": "real-table-002",
|
|
7
|
+
"text_blocks": [
|
|
8
|
+
"附表3",
|
|
9
|
+
"XXX(单位)第X 季度工作目标完成情况",
|
|
10
|
+
"单位:",
|
|
11
|
+
"主要负责人(签字):"
|
|
12
|
+
],
|
|
13
|
+
"tables": [
|
|
14
|
+
"<table><tr><td>序号</td><td>责任事项</td><td>落实情况</td><td>工作进度(已完成、序时推进、滞后序时)</td></tr><tr><td>1</td><td></td><td></td><td></td></tr><tr><td>2</td><td></td><td></td><td></td></tr><tr><td>3</td><td></td><td></td><td></td></tr><tr><td>……</td><td></td><td></td><td></td></tr><tr><td colspan=\"4\">备注:为便于统计,责任事项序号请按区《政府工作报告》目标任务责任分解方案确定的序号排序。</td></tr></table>"
|
|
15
|
+
],
|
|
16
|
+
"headings": [
|
|
17
|
+
[
|
|
18
|
+
2,
|
|
19
|
+
"附表3"
|
|
20
|
+
],
|
|
21
|
+
[
|
|
22
|
+
1,
|
|
23
|
+
"XXX(单位)第X 季度工作目标完成情况"
|
|
24
|
+
]
|
|
25
|
+
]
|
|
26
|
+
}
|
|
27
|
+
]
|
|
28
|
+
}
|