问题不在分段,而在结果如何返回原文
长文的AIGC分析常需要先拆成段落或片段。处理服务返回提示以后,前端还需要把提示定位到原始文本。如果只保存数组下标,用户在前面插入一个段落,后面的编号便可能全部错位。此时结果本身没有变化,界面却把它展示在了错误位置。
最小记录结构
| 字段 | 含义 | 注意事项 |
|---|---|---|
| documentVersion | 输入文本版本 | 修改后生成新版本 |
| segmentId | 本轮稳定段落标识 | 不直接使用展示序号 |
| start与end | 原文中的范围 | 明确端点和计数单位 |
| textFingerprint | 片段校验值 | 用于识别变化,不替代原文 |
这组字段的作用是把处理结果绑定到确定的输入,而不是保证两次改写一定能够自动对齐。若文本经过了大幅重组,重新分段通常比强行继承旧位置更容易解释。
字符偏移必须约定单位
后端可能按Unicode码点计数,浏览器字符串索引通常按UTF-16代码单元处理。遇到部分表情或扩展字符,两种计数会出现差异。接口文档需要明确使用哪种单位,展示层也应采用一致的换算方法。不能只凭普通中文样本看起来正确就认为所有输入都没有问题。
保留预处理映射
去掉空行、合并空格或替换换行符之后,送入模型的文本与原文长度可能不同。可以保存一份预处理映射,或者在预处理前确定稳定块,再在块内维护局部范围。对小型系统,先减少不必要的文本变换,往往比维护复杂的双向映射更可靠。
版本变化后的处理
读取旧报告时,先检查documentVersion。版本不一致时,把旧结果显示为历史参考,并提示用户重新生成或人工对齐。不要静默把旧范围套到新正文。若需要保留人工结论,可以保留其原始版本关联,而不是直接覆盖新版本结论。
展示与验证
界面高亮前应验证范围没有越界,并检查片段指纹是否相符。验证失败就停止自动定位,保留原始提示供人工核对。本文讨论的是结果追踪的工程方法,不意味着单个检测分数能够确定文本来源。