当输入对象从纯词表变成页面清单,不能直接沿用“一行一个词、逗号分隔”的旧规范。更稳妥的做法是先把输入拆成“对象类型”和“查询意图”两层:页面清单负责提供上下文,词表负责提供待扩展的种子;工具若只接受一种,就要在导入前做一次转换,而不是把两种内容混在同一列里。
很多人在测试阶段只放十几行数据,工具返回正常,于是认为规范没问题。等到把页面清单、标题、栏目路径一起贴进去,才发现部分行被跳过、部分行被合并,或者长尾扩展结果明显偏离预期。这里的关键不是工具变差了,而是输入对象的格式边界在样本量小时被掩盖了。
一种常见误判是:只要每行都有内容,工具就应该逐行处理。另一种误判是:既然工具支持批量,就应该支持任意混合格式。两者都把“可读”当成了“可解析”。
第一种解释是编码与分隔符问题。页面清单里常出现全角逗号、制表符、换行符和不可见空格,工具按半角逗号切分时,字段数量就会错位。第二种解释是字段语义问题。词表默认“一行一个查询对象”,而页面清单默认“一行一个页面及其上下文”,两者对同一列的含义不同。即使编码正确,工具也可能把页面标题当成关键词,把路径当成修饰词。
区分这两种解释,可以做一个最小对照:把同一批数据复制两份,一份只保留纯词,一份保留页面标题加路径,分别导入。如果纯词那份正常、页面那份异常,问题更可能在字段语义;如果两份都在同一位置截断,问题更可能在编码或分隔符。这个对照不依赖工具品牌,也不假设工具一定提供预览功能。
无论工具界面如何,导入前都应明确三个角色:对象标识、查询种子、上下文。对象标识是页面 URL 或栏目名,查询种子是准备扩展的长尾词根,上下文是标题、分类或地区限定。三者不能混在同一列,否则后续无法判断一行代表什么。
一个实际动作是:先取二十行做一次导入,检查返回结果里是否出现“页面标题被当成词根”或“路径被拆成多个词”。如果出现,就回到字段角色重新分列;如果没有出现,再扩大到全量。这个动作的结果直接决定下一步是修编码,还是修字段语义,而不是盲目替换工具。
页面清单规模大、层级深时,不能照搬词表的“一行一个对象”规范。词表可以容忍重复和近义,页面清单一旦重复,工具可能把同一页面的多个标题合并成一条,导致长尾覆盖判断失真。反过来,词表也不能直接套用页面清单的“标题即上下文”规范,因为词根本身没有页面归属,强行加路径只会制造伪长尾。
假设一个场景:某栏目有三十个页面,每个页面准备扩展二十个词根。若把页面标题和词根写在同一行,工具可能只返回三十条结果;若拆成两列,则可能返回六百条。这里的数字只用于说明字段拆分对结果数量的影响,不代表任何工具的真实处理能力。具体工具是否支持多列、是否保留分组,需要以实际导入后的返回为准。
如果导入后请求量或返回条数出现明显变化,不能单独用它证明规范正确。返回变少可能是工具去重,也可能是字段被跳过;返回变多可能是拆分过度,也可能是上下文被误当种子。需要结合样本对照和字段映射一起判断。
当输入对象变化时,改规范的核心不是找一套通用格式,而是让每一行只表达一种角色。页面清单提供归属,词表提供扩展起点,两者分开后,工具返回的结果才能被追溯到具体页面,下一步的筛选和人工复核才有依据。