文本纠错智能体若返回位置和替换字串,不能直接按它报的偏移覆盖。偏移可能基于旧稿,多个修改也可能互相重叠。先校验所有补丁,全部合格后再构造候选文本。
开发结构化文本纠错流程的读者。本文使用 Python 3.11 或以上版本的标准库,先验证一组人工构造的小样本。AI 负责提出实现或解释差异,结果由本地检查决定;这里没有把模型回答当成真实运行结果。

校验纠错补丁区间与原字串前,先定规则
示例偏移按Python字符串字符位置计数,不是UTF-8字节或JavaScript UTF-16位置;系统两端必须使用同一计数规则。
每条补丁含start、end、old、new,old应精确等于原文对应切片。所有补丁都相对于同一原稿。
校验完成后按原文顺序拼接一次,避免前一个修改长度变化让后一个偏移失效。
给 AI 的输入要包含什么
把下面这份输入说明和你的实际样本一起交给可用的 AI 编程助手。示例只含虚构数据;对真实材料先去除账号凭据和个人信息。
对原文“以经完成”应用start0/end2/old以经/new已经。先验证严格整数边界、old精确匹配、区间不重叠。坏old与重叠补丁拒绝,原字符串不变。不声称补丁语义一定正确。
要求模型保留检查条件,并把它认为缺少的业务定义列出来。若回答改变了输入字段、忽略异常分支或直接删除原材料,先要求修正,再运行。提示词的作用是缩小任务范围,验收仍以代码和数据为准。
保存并运行最小验证程序
下方程序把关键规则和验证用例放在同一个可复跑示例中,便于先理解输入如何变成输出,再用它检查 AI 给出的实现。
新建一个空目录,把下面代码保存为 check.py,在该目录打开终端,运行 python -X utf8 check.py。代码自带示例输入,不需要安装第三方库。
def apply(text,patches):
ordered=sorted(patches,key=lambda p:p['start']);previous=0
for p in ordered:
start,end=p['start'],p['end']
if type(start) is not int or type(end) is not int or not 0<=start<end<=len(text): raise ValueError('区间无效')
if start<previous or text[start:end]!=p['old']: raise ValueError('重叠或原字串不符')
if not isinstance(p['new'],str): raise ValueError('替换值不是字符串')
previous=end
parts=[];cursor=0
for p in ordered:
parts.extend([text[cursor:p['start']],p['new']]);cursor=p['end']
parts.append(text[cursor:]);return ''.join(parts)
original='以经完成'
good={'start':0,'end':2,'old':'以经','new':'已经'}
assert apply(original,[good])=='已经完成'
bad_sets=[[dict(good,old='已经')],[good,{'start':1,'end':3,'old':'经完','new':'已完'}]]
for bad in bad_sets:
try: apply(original,bad)
except ValueError: pass
else: raise AssertionError('错误补丁必须拒绝')
assert original=='以经完成'
print('candidate',apply(original,[good]))
print('bad_sets_rejected',len(bad_sets),'original_preserved',original)
怎样判断结果符合要求
合法候选是已经完成;两个坏补丁组被拒绝,原文仍以经完成。此检查验证位置与一致性,不决定编辑是否正确。
下方是这份最小示例在本地执行得到的输出。它验证示例程序与断言的关系,不代表任何 AI 模型一次就能生成同样代码,也不构成性能或生产可靠性结论。
candidate 已经完成
bad_sets_rejected 2 original_preserved 以经完成
数字、专名、否定词和事实关系还需编辑审校,位置合法不等于事实未改变。
本例拒绝零长度插入,若系统支持插入需明确同位置顺序与重复规则。
哪些失败必须停下来处理
不同平台偏移计数不一致会错位,尤其含Emoji时不能直接照搬坐标。
补丁原稿必须有版本指纹;不能对用户已更新的稿件继续套旧偏移。
接入自己的任务前再核对一次
先展示可审候选与修改清单,人工确认语义后再保存到真实文档。
让AI给无法确定的词标注待确认,机器层只负责校验与拒绝,不替编辑猜事实。
资料与适用范围
字符串切片采用左闭右开区间;不可变字符串可先构造候选结果,校验失败不改变原值。以下链接核对于 2026-10-03;运行环境及额外依赖按本文前述说明。
相关基础可阅读 用 ChatGPT 纠错怎么防止改错事实?逐项核对数字和专有名词。本文的重点是校验纠错补丁区间与原字串,可以把两项检查作为不同步骤保留。
Ai菜鸟网。发布者:AI小管家,转载请注明出处:https://www.alyyhw.com/33481.html