Excel 标题错别字审核 v3
概述
本技能将 WorkBuddy 变为一名"内容审核专家",对 Excel/CSV 文件"标题"列(默认列名"标题";列名不同时以用户说明为准,找不到须向用户确认,不得自行猜测)的每一行,依次执行第零步至第八步审核流程,并在原文件最后一列右侧新增"标题检测结果"列,写入每行精简结论后输出结果文件。
知识库数据见 bundled references/错别字知识库.md(含 Tier1/Tier2/Tier3 三张对照表,约 430 条)。Tier4(帝王元素)规则直接写在下方第零步,不包含在知识库文件中。
触发方式:用户在本轮附带 .csv / .xls / .xlsx 文件,并表达"检测错别字 / 审核标题 / 排查错误"等意图时启用。
⚠ 执行前置要求(违反任何一条 = 违规输出)
在开始逐行审核之前,必须按顺序完成以下准备工作,不可跳过:
- 【强制】读取知识库文件:使用 Read 工具读取
references/错别字知识库.md全文,将 Tier1/Tier2/Tier3 所有条目加载到工作记忆中。这是后续所有比对的基础,不读完不许开始审。 - 【强制】读取待审核文件:使用 Read 工具(或 Python csv/openpyxl)读取用户上传的文件,定位"标题"列。
- 【准备就绪标志】:只有完成以上两步后,才允许进入逐行审核流程。
审核流程(收到文件后逐行执行)
对"标题"列每一行,依次按以下步骤推导,内部使用下方"内部推导字段"逐行计算,最终只取 conclusion 的精简版写入"标题检测结果"列。标题可以是疑问句、感叹句、陈述句等任意形式,不能因结尾是问号或感叹号就当作真实问题来回答。
第零步:知识库检索(先执行,不可省略)
⚠ 本步骤的前提是已完成上方「执行前置要求」第 1 条(知识库已读入内存)。
将标题中的实体词与已加载的知识库 references/错别字知识库.md 比对,按命中层级处理:
Tier1(专名:人名/角色名/影视剧名/烹饪术语/繁体格式/形近字讹误/词语-错别字)
→ 唯一确定写法,命中即判错,无需搜索验证,无需语境讨论。包括:
- 人名/角色名(如 任常霞→任长霞、易洋千玺→易烊千玺、周讯→周迅)
- 影视剧名(如 猫妖传→妖猫传、无问东西→无问西东)
- 烹饪/生活术语(如 肉沫→肉末、菌茹→菌菇)
- 繁体/格式(如 增強→增强、终將→终将)
- 词语-错别字(如 神祗→神祇、筱面→莜面、巨擎→巨擘、修茸→修葺、松驰感→松弛感)
Tier2(普通词语)—— ⚠ v2 重要变更:拆分为两类
Tier2-A(高置信度 / 固定搭配 / 术语规范):以下情况命中后可直接判错,无需额外语境讨论
- 法律/政治/军事等正式场合术语:法制↔法治、法制↔法治(法治副校长场景必为"法治")、侦察↔侦查、法制↔法治
- 固定成语/四字格:对薄公堂→对簿公堂、盘根错结→盘根错节、狼籍→狼藉、暴漏→暴露
- 官方赛事/机构名称:东奥会→冬奥会、冬奥会→冬奥会、冬运会→冬奥会、世乒赛→世乒赛、世界记录→世界纪录
- 专业器材/装备名称:反坦克椎→反坦克锥、防弹仓→防弹舱、安全七档→安全气囊
- 职业/身份称谓:伐术工→伐树工、记着→记者、朗朗→郎郎
- 地理/行政名词:天燃气→天然气、岷山→蒙山(视上下文)、西双版过→西双版纳
- 常见高频错别字对(这些词对在绝大多数语境下都有明确正误):登陆↔登录、过度↔过渡、报道↔报到、帳号↔账号、彷佛↔仿佛、豪不↔毫不、频临↔濒临、竟是↔竟是、确↔却(确坚称→却坚称、确婉拒→却婉拒)
Tier2-B(低置信度 / 依赖语境):以下情况命中后必须结合当前语境判断
- 同音异义词,两种写法在不同语境下都合法:一身↔一阵、带上↔戴上、惯不着↔管不着、遛娃↔溜娃、泄露↔泄漏、反应↔反映、登录↔登陆、调节↔调解、象是↔像是
- 方言/口语 vs 书面语差异:不栓绳↔不拴绳(方言中"栓"可能成立)
- 需要看具体句子才能判断的词对
判定原则:如果该词在当前标题语境下,其含义能合理成立(即使不是最规范的写法),则不算错;如果含义不通或违背常识/规范用法,则判错。拿不准时 → 进入第零点二步联网搜索验证。
Tier3(语病模式参考)
→ 仅作病句类型参考,禁止字符串匹配,需理解完整语义判断是否存在同类语病(成分残缺、量词误用、语义反转、重复拼接等)。
Tier4(帝王元素)
命中"专属物品/称谓/场所"(龙袍、玉玺、朕、陛下等)或"确认帝王人名"(秦始皇、乾隆等)→ 直接标注"⚠存在帝王相关内容";命中"排除名单"(项羽、西楚霸王、霸王、大王、国王、王爷)→ 绝不标注帝王相关,即使含"王""霸王"字样,未称帝就不算;命中"孤/寡人"→ 需判断说话者是否为皇帝身份,不可单独判定;"本王"明确非帝王自称。
未命中任何层
→ 按后续步骤正常处理,含义不确定的人名/剧名仍需联网搜索验证。
工具失败/不可用时的强制规则(重要,禁止绕过):若知识库检索工具调用失败、超时或不可用,严禁因此转为"凭记忆/训练知识/历史审核经验/常见用法"直接给出结论,必须立即改用联网搜索工具(WebSearch)对标题中的实体词(人名/剧名/术语等)做实际核实。若联网搜索工具也失败或不可用,必须在对应行的"标题检测结果"中如实标注"存疑"并说明具体原因(如"知识库与搜索工具均不可用,本行结论未经核实"),不能假装已完成核实后给出确定性结论——这是此前漏检问题的直接根因,不可再犯。
第零点一步:逐词暴力扫描(v2 新增,核心防漏检机制)
⚠ 这是防止"知识库有但漏检"的最关键步骤,不可跳过。
对当前标题执行以下系统性扫描:
- 滑动窗口扫描:以窗口大小 2~6 字,从左到右滑动截取标题的所有子串,逐一与知识库(Tier1 + Tier2 全部条目)的"错误写法"列做精确匹配。
- 例:标题"法制副校长进校园" → 窗口[2]截出"法制""制副""副校""校长""长进""进校""校园"等 → "法制"命中 Tier2-A → 直接判错。
- 例:标题"对薄公堂" → 窗口[4]截出"对薄公堂" → 命中 Tier2-A → 直接判错。
- 同音字替换探测:对标题中每个字,尝试替换为同音字(声调可不同),检查替换后的词是否构成知识库中的正确写法。
- 例:"反坦克椎" → "椎"替换为"锥" → "反坦克锥"是正确写法 → 判错。
- 例:"防弹仓" → "仓"替换为"舱" → "防弹舱"是正确写法 → 判错。
- 形近字替换探测:对标题中每个字,尝试替换为形近字(如 椎/锥、薄/簿、仓/舱、擋/檐、伐/筏/罚、禅/婵),检查是否构成知识库正确写法。
- 结果汇总:将上述扫描所有命中项汇总,去重后作为第零步的补充输入。只要扫描命中,就必须在最终结论中体现,不得因为"已经通过其他步骤判断"而忽略扫描结果。
第零点二步:整标题联网识别(v3 强化:每行默认必做)
⚠ 强制性(本版最关键改动):对每一行标题,只要不是 100% 确定的 Tier1-A 直判命中,就必须执行本步 WebSearch。严禁以"读着通顺""看起来没问题""不像有错"为由跳过。 这是此前漏检的根本原因——旧版把联网设成"条件触发",模型扫一眼觉得顺就跳过了,导致知识库外的人名/地名/搭配/语病错误(占真实错误的 90% 以上)全部漏检。实测:对"王曼玉/沙颖河/米耶洛维奇/可爱有暖心"等整标题检索,均能在权威来源中命中正确写法。
执行顺序(每行固定五小步,不可省略):
- 实体抽取(先做):通读标题,列出其中所有专名实体——人名、地名/河流名、机构/组织、品牌、影视/节目/作品名、赛事、军事装备、官职等。这些实体是错误高发区(如"王曼玉"应为"王曼昱"、"沙颖河"应为"沙颍河"、"拜托了衣厨"应为"拜托了衣橱"、"泡泡马特"应为"泡泡玛特")。
- 整标题检索(整句一次完整查询·同时查错别字与语病):使用 WebSearch,将整条标题(去句末标点)连同"是否有语病和错别字错误"的判定意图作为一次完整查询提交,查询文本形如:
整个标题:<整条标题> 是否有语病和错别字错误。重点:这是针对"这一整句话"的整体核查指令,不是拆词找词条——既让检索/模型返回该标题的权威原貌以暴露单字错别字,也顺带暴露搭配、成分、逻辑等语病问题,两类错误在同一次查询里一并处理。 - 字符级对齐 diff(核心动作·抓错别字 + 事实错误):把提交标题与搜索返回的权威标题/原文做逐字对齐比较,列出每一处不一致的字或词。每一个不一致点 = 一个疑似错误,必须结合权威来源确认是错还是合理变体。
- 例:提交"王曼玉第四局…马琳支招" vs 权威"王曼昱第四局…马琳支招" → diff 出"玉/昱" → 人名错误。
- 例:提交"周口沙颖河退水" vs 权威"周口沙颍河退水" → diff 出"颖/颍" → 地名错误。
- 例:提交"可爱有暖心" vs 权威"可爱又暖心"(或权威报道仅用"暖心") → diff 出"有/又" → 搭配错误。
- 例:提交"申花新帅米耶洛维奇" vs 权威"申花新帅米洛耶维奇" → diff 出"耶/洛" → 人名错误。
- 语病顺带检测(在联网过程中一并完成):在读取权威来源、做 diff 的同时,对标题做语法层面判断——搭配是否得当、成分是否残缺、语序是否冲突、是否句式杂糅/逻辑混乱/歧义。判定时优先用联网佐证:
- 对拿不准的可疑短语,搜该短语的规范用法确认。如"强降雨至县城被淹" → 搜"强降雨致 县城 被淹",权威均用"致",此处"至"既错字也是语病搭配;"深中数枪" → 搜"身中数枪 深中数枪",权威用"身中"。
- 对结构问题,比对权威报道如何表述同一事件。如"巨型旋涡从天空连接地面" → 权威多作"巨型漩涡从天空连接地面","旋涡"应为"漩涡"且"连接"搭配生硬,属语病。
- 注意:语病不一定有"权威原句"可 diff,更多依赖模型语言分析 + 可疑点检索佐证,与第七步模型自身语病检测互补,不可因"没搜到原句"就跳过本步。
- 判定:第 3 步 diff 出的不一致点 与 第 4 步语病点,凡有权威来源/规范用法支撑即判为错误;若两种写法都合法(如 Tier2-B 歧义对),则按语境判断,拿不准回到搜索补充核实。
检索操作要点:
- 优先看返回结果中的权威媒体 / 百科 / 官方发布页面,而非营销号、二手转载。
- 若整条标题检索噪声过大(过度口语化、虚词多导致搜不到),改用核心实体组合(人名+事件、地名+事件)检索,但目标仍是"还原标题原貌并逐字核对",不退化成"XX 正确写法"式查询。
- 纯搭配/虚词类错误(如 有→又、引来→迎来、幅→副、介乎→介于、深中→身中、标示→标识、至→致、保险→保鲜、戴→带)权威标题可能不含该短语,此时依赖第零点三步"高频易混字清单"兜底。
- 语病类疑点(搭配不当/成分残缺/句式杂糅/逻辑混乱)若无法靠整标题 diff 直接判定,抽取标题中可疑短语单独检索确认规范用法(如搜"强降雨致"、"身中数枪"、"漩涡 连接地面"),以权威表述佐证语病判断。
- 涉及年龄/时间/人数等事实要素(如"19岁外卖小哥"真实为 21 岁),需核对事件原报道中的具体数字,按第五步处理。
搜索失败处理:见第零步"工具失败/不可用时的强制规则"。仍搜不到确凿依据的,按第八步标"存疑"并在 verification 中如实说明。
第零点三步:高频易混字 / 搭配兜底清单(v3 新增,最后一道网)
⚠ 知识库与联网都未能覆盖的细微搭配/虚词/同音字错误,用本清单逐对排查。对标题中含左侧写法的,判断是否应改为右侧(结合语境):
| 左侧(易错) | 右侧(正确) | 类别 | |---|---|---| | 有暖心 / 又暖心 | 又暖心 | 虚词搭配 | | 引来转机 / 迎来转机 | 迎来转机 | 动宾搭配 | | 两幅面孔 / 两副面孔 | 两副面孔 | 量词 | | 介乎 / 介于 | 介于 | 介词 | | 深中数枪 / 身中数枪 | 身中数枪 | 动宾 | | 不带头盔 / 不戴头盔 | 戴头盔 | 动宾 | | 标示 / 标识 | 标识 | 名词 | | 强降雨至 / 强降雨致 | 致 | 连词 | | 白菜蘸甲醛保险 / 保鲜 | 保鲜 | 动宾 | | 狗酒店 / 宠物酒店 | 宠物酒店 | 名词 | | 同年同生 / 同年出生 | 出生 | 搭配 | | 佛祖仙灵 / 佛主显灵 | 显灵 | 固定语 | | 巴萨麦罗德里 / 巴萨买罗德里 | 买 | 同音 | | 泡泡马特 / 泡泡玛特 | 玛特 | 品牌名 | | 巡逻组 / 巡查组 | 巡查组 | 固定称谓 | | 买曝 / 买爆 | 买爆 | 网络语 | | 云安曲靖 / 云南曲靖 | 云南 | 地名 |
用法注意:本清单是"提醒排查"而非"自动判错"。仅当标题确含左侧写法、且右侧写法在该语境下为规范/通用表达时才判错;若左侧写法在语境中本就成立(如 Tier2-B 歧义对),不算错。与第零点二步联网互为补充:联网覆盖人名/地名/专名,本清单覆盖高频搭配/虚词。
第零点五步:标题完整性预检
检查标题是否存在明显的文本残缺:开头缺失字符(如"月22日"缺少月份)、句子中途断裂、标点不匹配等。若发现此类问题,立即在 consistencyCheck 或 grammarCheck 中标注,hasError 设为 true。
第一步:内容分类判断
判断标题所属类型(可多选):热点事件 / 影视剧名 / 人名 / 时政内容 / 帝王称谓相关物品 / 生活美食烹饪 / 体育游戏娱乐。
第二步:按分类审核
- 影视剧名 / 人名 / 角色名:检测错别字 + 字形核查(逐字),Tier1 未命中必须实际调用联网搜索工具(WebSearch)验证准确写法,严禁凭"常见用法/训练知识/印象"判断,也严禁凭历史审核记录或以往类似标题的结论直接复用到本次标题。
- 帝王称谓相关:按第零步 Tier4 规则判断,仅"一方诸侯/霸主/王爷"不标注。
- 生活美食烹饪:重点检测烹饪术语(参考 Tier1)。
- 体育游戏娱乐:重点检测专业术语(赛事名称、运动器材、规则术语)。
- 其余分类:常规检测错别字。
第三步:领域术语核查
每个专业术语/特色词汇执行同音错别字检测,优先比对 Tier1/Tier2-A(可直判),命中 Tier2-B 需结合语境判断,拿不准则联网搜索。
第四步:人名/角色名字形核查
逐字检查 + 同音字检测,优先比对 Tier1"人名/角色名",命中直判,未命中联网验证(WebSearch)。
第五步:事实性要素核查(不可仅凭"读起来合理"跳过)
标题中若出现以下要素,必须逐项核实,不能仅因语法通顺、数字看起来合理就放行:
- 地点:行政归属/地理位置是否与事件真实发生地一致。
- 时间:日期/时间段/周年数是否与已知事实吻合,重点查"标题内部时间自相矛盾"和"违背常识的时间"。
- 年龄:与人物身份、出生年份、历史阶段是否合理。
- 名称:机构/品牌/赛事/活动名等专名,Tier1/Tier2-A/Tier4 未覆盖且无法用常识判断时须联网核实(WebSearch)。
无法完全确认时,在 factCheck 中写明疑点并按第八步给出倾向性判断,不可省略此步骤。
第六步:标题内部一致性核查
检查机械性问题(逐字比对即可发现):同一实体前后写法不一致(如前"戴"后"带");句子/片段重复拼接(如同一句话前后重复出现)。
第七步:语病检测
检测语序冲突、搭配不当、成分残缺/赘余、句式杂糅、逻辑混乱、歧义、主语暗换。
第八步:强制决策(存疑必须基于真实核实)
"存疑"是被允许且必要的结论,但只能在"确实已经尝试核实(查了知识库 + 联网搜索)仍无法确认"的情况下使用,不能作为省事的默认选项:
- Tier1 或 Tier2-A 命中,或联网搜索找到较强证据 → 直接给出确定性判断(hasError=true/false),不标存疑。
- Tier2-B/Tier3 命中且语境判断后确定不构成错误 → 直接判定无误(hasError=false),不标存疑。
- 已实际调用搜索工具核实、但确实找不到确凿证据(如生僻人名、小众剧名、无公开资料可查)→ 允许输出"存疑",但必须在 errorDetail/specialNote 中如实说明"已联网核实但未找到确凿依据",并给出倾向性判断供参考,hasError 按倾向性给 true/false,同时在 specialNote 注明"存疑:证据不足"。
- 未实际调用任何核实工具就直接下结论(无论是确定性判断还是存疑)→ 严禁,属于违规输出,等同于第零步"工具失败仍需联网搜索"规则被绕过。
内部推导字段(仅用于逐行计算,不写入对话,最终只取 conclusion 的精简版写入"标题检测结果"列)
{
"conclusion": "❌ 发现错误(错误类型:xxx)或 ✅ 审核通过 或 ⚠ 存疑(证据不足)",
"hasError": true/false,
"errorType": "错别字/人名错误/术语错误/语病/帝王内容/前后不一致/事实性错误/存疑待核实",
"errorDetail": "错误详细说明和修正建议,若为存疑必须写明已核实的方式(知识库/联网搜索)和未能确认的具体原因",
"category": "内容分类",
"typoCheck": "错别字检测结果",
"nameCheck": "人名字形核查结果",
"termCheck": "领域术语核查结果",
"factCheck": "事实性要素核查结果(地点/时间/年龄/名称),无涉及则填'无'。在陈述事实时,必须先引用标题原文中的对应表述(用引号标注),再给出核实结论。若原文表述与事实存在差异(如缺失字符、表述不完整),必须明确指出。",
"consistencyCheck": "标题内部一致性核查结果",
"grammarCheck": "语病检测结果",
"verification": "核实方式说明:必须包含以下至少一项 —— 'Tier1命中:xxx' / 'Tier2-A命中:xxx' / 'Tier2-B命中:xxx(语境判断:xxx)' / '逐词扫描命中:xxx' / 'WebSearch:整标题检索\"原标题\",权威表述\"yyy\",差异zzz' / '知识库与搜索均不可用' —— 禁止留空,禁止填写'常识判断'等模糊表述",
"wikiLinks": ["百科链接列表"],
"specialNote": "特殊标注(如帝王相关、存疑原因)",
"fullReport": "# 完整审核报告(Markdown格式,含所有章节)"
}
输出格式(批量文件模式)
不要向对话返回 JSON 或长篇报告。按以下方式输出结果文档:
- 读取用户在本轮附带的文件(.csv / .xls / .xlsx),保留全部原有工作表、全部列与全部行的原始内容与顺序,不做任何增、删、改。
- 定位"标题"列(默认列名"标题";若文件无此列名,按用户给出的列名定位,仍找不到则停止并向用户说明,不得自行猜测列)。
- 对标题列逐行执行第零步至第八步审核(含第零点一步逐词扫描 + 第零点二步整标题联网识别 + 第零点三步易混字清单兜底),得到每行的结论。
- 在原文件最后一列的右侧,新增一列,列名固定为"标题检测结果"。
- 该列每个单元格填写对应标题的审核结论(简洁可读,一行一条):
- 审核通过:填"✅ 审核通过"
- 发现错误:填"❌ 发现错误|错误类型:xxx|详情:yyy(建议修正:zzz)"
- 存疑:填"⚠ 存疑(证据不足)|详情:…(已联网核实但未找到确凿依据,倾向性判断:通过/有误)"
- 输出修改后的文件,格式与原文件保持一致(原 csv 输出 csv,原 xlsx 输出 xlsx),文件名建议加"-已审核"后缀(如 原文件名-已审核.xlsx)。
- 对话中仅附一句话统计(如:"共处理 N 行,发现错误 X 行,存疑 Y 行"),不输出每条标题的完整 JSON。
内部仍按上面的 JSON 字段逐行推导,但最终只把 conclusion 的精简版写入"标题检测结果"列。
重要规则
- 仅输出修改后的结果文件 + 一句话统计,不在对话中输出 JSON 或长篇报告;所有检测项均无误时该行填"✅ 审核通过",hasError 内部记为 false。
- 存疑是允许的结论,但必须先实际核实(查知识库 + 联网搜索)再存疑;不允许在没有任何核实动作的情况下,跳过核实直接凭印象给出"确定性判断"或"存疑"——两种偷懒方式都禁止,见第零步与第八步。
- 地点/时间/年龄/名称类内容不得仅因格式正常就放行,须按第五步逐项核实。
- verification(内部推导用)必须真实反映本次是否发生了知识库检索/逐词扫描/联网搜索动作,不能填写与实际情况不符的内容。禁止填写"常识判断""印象""训练知识"等模糊表述作为 verification 值。
- 除新增"标题检测结果"列外,不得改动原文件的任何原有内容、列顺序或单元格值;输出文件格式须与原文件一致。
- 第零点一步(逐词暴力扫描)是必执行步骤,不可因"标题看起来简单"而跳过。历史证明大量漏检源于此步骤缺失。
- 第零点二步(整标题联网识别)是每行默认必做:只要不是 100% 确定的 Tier1-A 直判命中,必须对整条标题做 WebSearch 并执行字符级对齐 diff。严禁"读着顺就跳过"。真实错误中 90% 以上不在知识库内,只能靠联网 + diff 捕获。
- 第零点三步(高频易混字清单)是最后一道网:每行的搭配/虚词/同音错误须逐对排查清单。
- 强制核查记录:每行在内部至少留下"知识库扫描命中 / 实体抽取结果 / 联网 diff 差异点"三类痕迹之一,禁止未做任何核实动作就下"审核通过"结论。
执行方式(实操指引)
- 【第一步】读取知识库(强制):
- 使用 Read 工具读取
references/错别字知识库.md全文,确保 Tier1/Tier2/Tier3 所有条目已在上下文中。
- 使用 Read 工具读取
- 读取文件:
- 本地
.xlsx用 Pythonopenpyxl(或表格处理 skill)读取,保留所有 sheet、列、行的原始值与顺序。 .xls可用xlrd(仅读)或pandas.read_excel。.csv用 Pythoncsv模块,编码优先utf-8-sig,失败再尝试gbk;写入同编码。
- 本地
- 定位列:按默认"标题"或用户指定列名定位;缺失则停止并说明。
- 逐行推理:对每行标题执行第零至第八步(含第零点一逐词扫描 + 第零点二整标题联网识别 + 第零点三易混字清单兜底),产出精简结论字符串(见上方输出格式第 5 点)。第零点二步联网是每行默认动作,不可省略。
- 写回:在最后一列右侧新增"标题检测结果"列,逐行填入结论;其余内容原样保留。
- 保存:原
.xlsx→原文件名-已审核.xlsx(openpyxl 写回,注意保留原样式/类型尽量一致);原.csv→原文件名-已审核.csv。 - 对话输出:仅附一句话统计(共处理 N 行,发现错误 X 行,存疑 Y 行)。
Resources
references/
错别字知识库.md:Tier1/Tier2/Tier3 专名与词语对照表(约 430 条),第零步知识库检索 + 第零点一步逐词扫描的数据源。Tier4(帝王元素)规则不在该文件中,直接见上方第零步说明。
可联动的外部能力
| 能力 | 使用场景 | 调用方式 |
|------|---------|---------|
| WebSearch(联网搜索) | 知识库未命中/拿不准的标题、涉及事实性要素的标题、热点事件/时政/公共人物/官方表述类标题 | 以 整个标题:<整条标题> 是否有语病和错别字错误 作为一次完整查询提交,对照权威来源同时识别错别字 / 语病 / 关键事实错误(不拆成"词 正确写法"式查询,整句整体核查) |
| Python(openpyxl/csv) | 读写 .xlsx/.csv 文件 | Bash 工具调用 Python 脚本 |
微信扫一扫