文档解析与切分:保留规则的上下文
- 识别解析阶段的信息丢失
- 设计含标题、版本与来源的片段
文件不等于可检索知识
星桥手作社把手册导出为一份带表格的文件。人看到第一行是纸艺体验,第二列是六人,但系统如果把表格按错误顺序展开,可能读成陶土体验六人。文档解析是把文件中的文字、标题、表格和位置变成便于处理的内容。扫描页还可能需要文字识别。解析并不是随便复制一遍文字,必须检查结构有没有变形。对小白而言,先用人工阅读和复制检查,比立刻研究复杂模型更有效。
切分为什么要考虑语义
切分是把长资料拆成可检索的片段。片段过大,检索时会带入大量无关内容;片段过小,一条规则的条件和结论可能被拆开。例如手册写:普通纸艺每桌最多六人;大型合作拼贴经指导员安排可使用独立长桌。只取前半句会把例外遗漏,只取后半句又会丢掉默认规则。按标题、段落和条款边界切分,通常比机械每隔固定字数切一刀更容易保留意义,但也要检查超长段落。
把元数据当成资料标签
元数据就是描述资料的附加标签,例如文件名、章节、版本、生效日期、片段编号、访问范围与原文位置。这些标签不必全部展示给用户,却能帮助过滤和追溯。假设旧版手册每桌八人,新版改成六人,没有版本标签时,系统可能把两段混在一起。文档标题和章节标题可以加入片段文本,让单独检索到的条款仍能知道自己讨论的是纸艺还是陶土。日期应来自资料维护流程,不能让模型凭空补全。
一个具体切分示范
原文有三个标题:活动安排、座位规则、工具归还。我们先按标题分段,再将座位规则的默认上限与例外说明保留在同一个片段,编号为座位二。片段附带手册第二版、公开可读、座位规则章节等标签。工具归还单独编号为工具三。遇到表格时,给每行补上表头含义,例如活动类型为纸艺,人数上限为六人。这样即使只取到一行,读者也知道六人描述的是哪一个属性,而不是把数字当作任意备注。
重叠、重复与验收
相邻片段可以少量重叠,用来保留跨边界的连接,但重叠不是越多越好。重复过多会让搜索结果挤满同一句话,减少证据多样性,也增加上下文成本。实际操作时先挑三段代表性内容:普通段落、带例外的规则和表格,人工对照解析结果。检查数字、否定词、单位和例外是否保留,再测试几个问题能否直接从片段找到答案。不要把切分长度当成唯一优化目标,最终目标是让检索到的片段仍足以支持正确判断。
本节要点
- 先检查解析质量,再调整检索方法
- 条件、结论与例外应尽量一起保留
- 来源、版本、权限和位置是重要元数据
动手练习:把一条带例外的规则做成片段
- 写原文:普通纸艺每桌最多六人;合作拼贴可经指导员安排使用独立长桌
- 创建一个保留默认规则与例外的片段并加章节标题
- 补充来源编号、第二版、公开范围三个标签,并设计一个核对问题
自查清单
- 默认规则和例外同时保留
- 标签可追溯原文且不凭空增加规则
先自己做,再查看参考答案
示范片段为:座位规则——普通纸艺每桌最多六人;合作拼贴可以经指导员安排使用独立长桌。标签记录来源为手册座位二,版本为第二版,范围为公开。默认上限与例外没有拆开,因此用户问普通纸艺八人同桌时,可以回答不符合默认上限;问合作拼贴是否有特殊安排时,可以说明存在由指导员确认的例外,但不能据此断言任何八人活动都适用。验收问题可以写成合作拼贴是否自动不受人数限制,参考答案必须强调例外需要指导员安排,而不是自动开放。最后回看原文,确认六人、普通纸艺和经安排三个关键信息均未丢失。