J•JEV 学习站
首页/Jev 文档结构恢复:保留原文,重建段落与 Markdown

入门之后 · 实战攻略

Jev 文档结构恢复:保留原文,重建段落与 Markdown

从丢失格式的活动通知出发,学习行拼接、块分类、原文追踪与安全渲染。

资料核对 2026-10-0215 分钟
读完你能做什么

将内容恢复成可读结构,同时保留每一块对应的原始行与不确定项。

先修课 · Jev 的 state 怎么写?从原始消息到可判断的事实

一步步设计

01

先保留一份不可改写的原文

虚构通知有标题、断开的句子、费用说明和步骤。代码为每行保存 line_id、原文字符和空行信息;空白归一化也记录规则。结构恢复的目标是重新排版,不是润色改写,不能悄悄补上时间、价格或缺失句子。

02

规则能识别的标记先处理

显式 #、列表符号、代码围栏由确定性解析器识别。不要让语义模型重新推翻清晰标记。涉及命令或表格的行优先保留边界;一个句子里的数字不应只因为“看起来像步骤”就变成编号列表。

03

只判断不明确的行间关系

对可能被硬换行拆开的相邻行用 Noul 判断是否续接。问题限定为同一句的延续,不是笼统“是否相关”。两行都讲报名,仍可能分别是地点与退款条件。语义判断和拼接字符的规则分开,复核样本先不合并。

04

形成块后再分类

得到段落块后,用 Choice 判断标题、正文、列表或代码等。新块依赖上一阶段结果,因此不能在原始行阶段假设块已形成。代码添加 Markdown 标记,保留 block_id 到 line_id 的映射,撤销一次合并应可回到原文。

05

对内容完整性和展示分别检查

逐项验证数字、日期、链接及命令未改变,再检查标题层次与移动端阅读。渲染时转义 HTML,禁止来自原文的可执行脚本。虚构输出把标题加 #、将续行合成段落,但费用“120 元”仍逐字来自输入。

完整走查 · 本站虚构样本

观察到什么如何判断代码怎么处理
“请于”下一行“周五前报名”可能是同一句续行合并并记录两行来源
“费用120元”下一行“不可退款”相关但可能是独立条款保留块边界或复核
原文含 HTML 标签内容不是执行指令转义后展示

可复制的设计草案

以下为本站原创示例。JSON 展示请求或输入形状;Python 仅计算虚构分数,不调用 API。真实接入仍需核对官方接口及任务策略。

# Offline provenance and safe-display example.
from html import escape
lines = {"L1": "Workshop notice", "L2": "Register by Friday."}
block = {"id": "B1", "source_ids": ["L2"], "kind": "paragraph"}
text = " ".join(lines[line_id] for line_id in block["source_ids"])
print(escape(text))  # Register by Friday.
# Joining and classification judgments are not performed here.
设计我的任务

容易踩的坑

  1. 把“相关”当“应该拼接”。
  2. 模型生成新句子替换原文。
  3. 恢复 Markdown 后直接执行其中的 HTML。

TRY / THINK / COMPARE

先想一想,再看解析

两行都说活动,但第二行是退款条款,应自动合并吗?

展开解析

不能仅靠主题相同合并。判断是否同一句续接,并保留条款边界;不确定时保留原样供复核。

交付前检查

  • 原文快照与行 ID 保留。
  • 拼接规则、块类型和展示逻辑分开。
  • 数字与链接逐项比对。
  • 渲染输出已转义。

常见问题

可以承诺逐字不变吗?

须说明空白与换行处理规则,逐项验证内容;本页没有跑模型实测。

OCR 错字能顺手改吗?

应成为独立校对任务,不与结构恢复混在一起。

资料与延伸阅读

参考官方架构模式与 Datawhale 实战主题,本站独立编写讲解、案例与练习。示例为教学设计,未调用 API,不代表性能测试。