SEO排名方法:把人工经验写成脚本需求时怎样描述例外情况

📍 WDQWDWQD987AAAAA:216.73.216.7
📱 Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
🔗 /36c90d3ea494.html
📄

SEO排名方法:把人工经验写成脚本需求时怎样描述例外情况

例外情况不能写成一句“特殊情况特殊处理”,而要写成可判定的条件分支:先说明什么信号出现时脚本必须停下来,再说明停下来之后把判断交给谁。否则脚本会把例外当成正常样本继续跑,人工经验里最值钱的那部分就被抹掉了。

一个矛盾现象:规则越细,脚本反而越容易做错

把人工经验转成脚本需求时,常见做法是把每个判断都拆成规则。但规则越细,例外就越容易被误伤。比如人工判断“这个页面标题和正文主题不一致”,脚本可能简化成“标题长度超出阈值就标记”。结果是真正需要人工看的页面被漏掉,而只是标题偏长的页面被大量误报。矛盾在于:规则细化本意是减少歧义,实际却把例外压缩成了新的正常样本。

两种解释:是例外没被描述,还是例外被过度描述

第一种解释是例外没被描述。人工经验里存在大量“看情况”的判断,写需求时被省略,脚本只能按主路径执行,遇到边界就默认继续。第二种解释是例外被过度描述。需求里塞进太多“如果……则……否则……”,脚本对每个分支都要求明确输入,反而把原本可以合并处理的正常情况拆成互相冲突的例外。

区分这两种解释,可以看误报和漏报的分布。如果漏报集中在少数几类页面,且这些页面在人工复核时被反复标记为“需要单独看”,那更可能是例外没被描述。如果误报分散在很多正常页面上,且每类误报都能在需求文档里找到一条对应规则,那更可能是例外被过度描述。

能区分解释的证据:用一批已知结果的页面做回放

取一批已经有人工判断结论的页面,让脚本按当前需求跑一遍,再对比脚本输出和人工结论。重点不是看准确率高低,而是看差异落在哪里。

这个回放只用于定位差异类型,不用于证明脚本整体有效。回放样本本身可能不具代表性,页面模板改版、内容来源变化都会让同一批样本的结论漂移。

描述例外时先写停止条件,再写转交动作

一个可执行的写法是:每条例外都包含停止条件和转交动作。停止条件回答“脚本在什么信号出现时不再继续判断”,转交动作回答“停下来之后由谁、依据什么继续处理”。

假设有一批页面需要判断“正文是否覆盖了标题承诺的主题”。主路径可以写成:抓取标题和正文,按预设词组匹配。例外可以写成:当正文中同时出现多个互斥主题词,且标题只指向其中一个时,脚本不输出结论,转人工复核。这里的停止条件是“互斥主题词同时出现”,转交动作是“人工复核”。脚本不需要理解为什么互斥,只需要知道遇到这种组合就停。

动作的结果会影响下一步:如果转人工的页面数量很少且集中在特定栏目,说明停止条件抓得准,可以保留;如果转人工的页面数量很多且分散,说明停止条件太宽,应改为只在标题和正文来源不一致时才停。这个判断依赖对转人工页面分布的观察,而不是对脚本准确率的单次统计。

变化前后要采用不同决策的条件

当业务前提发生变化时,同一套例外描述可能不再适用。需要区分两种条件。

变化前:页面模板稳定、内容来源单一、人工判断标准一致。此时例外可以写得较窄,只覆盖少数已知边界,脚本按主路径批量执行,人工只处理转交页面。

变化后:模板改版、内容来源增多、人工判断标准出现分歧。此时应把例外范围放宽,优先保证“不确定就停”,而不是“尽量自动判断”。因为标准本身在变,脚本继续按旧例外执行,会把已经失效的判断当成正常结果输出。

判断是否进入变化后状态,可以看人工复核结论的一致性。如果同一类页面在两次复核中得到不同结论,且差异不能归因于样本本身,就说明判断标准在漂移,此时应收紧脚本的自动判断范围,增加转人工比例。转人工比例上升本身不是问题,问题是没有记录转人工的原因分布。

记录例外时要保留可复查的字段

脚本每次触发例外,至少应记录:触发时间、页面标识、触发的停止条件、当时的输入摘要、转交后的处理结论。这些字段不参与自动判断,只用于后续复查。复查时重点看两件事:同一停止条件是否反复触发同一类页面;转交后的处理结论是否逐渐收敛到少数几种。

如果同一停止条件反复触发但处理结论始终不同,说明这个例外本身定义不清,应回到需求里重新描述。如果处理结论逐渐收敛,说明例外条件有效,可以考虑在条件足够明确后把它合并回主路径。合并的前提是收敛已经稳定一段时间,且期间没有模板或来源的变化。

一次改动前后的比较要考虑季节、搜索需求变化和数据采集差异,不能把时间上的先后直接当成改动生效的证据。例外描述改得对不对,最终看的是转交页面是否落在预期范围内,以及复查字段能否支持下一次调整。

图1 图2

nginx