省略主语的短句需从上一轮补全
别名: 零回指 · 省略句补全 · fragment as follow-up
概念解释
系统问「红茶还是绿茶」,用户说「绿茶」。下一句只有两个字:「热的。」动词没有,宾语没有,主语也没有。这不是一个叫「热的」的新技能,是把上一轮的点单补上温度。省略补全(ellipsis completion)把缺成分的短句接到上一轮的谓词上,恢复成完整命题。中文尤其常零回指(zero anaphora):成分不说出来,靠上一轮的框架长回来。它处理的是句法上残缺的跟句,不是给「它」找到一个名词。
机制
会话里的省略会留下可从上一轮谓词恢复的空位。表面字符串单独拿去跑意图,往往变成另一条技能:「热的」去调空调,「两个」去设闹钟,「不要糖」变成未知领域。补全操作是:复制上一用户或系统话轮的框架,把残片贴到匹配的槽上(温度=热),再执行那个框架。残片在槽填充的跟句里是多数,不是例外。
和代词消解的差别在于,这里经常连代词都没有。没有「它」可绑,只有一个修饰语或一个选项标签。系统若要求完整句子才承认是跟句,会把最常见的口语形态当成新开会话。补全必须在意图分类之前或与之并行:先问「这像不像上一框架的残片」,再问「这是不是新意图」。
怎么研究
收集跟句残片,人工分成:对选择问句的省略回答、对上一订单的修饰、纠正、以及真正的新意图。分别在「只把残片送进 NLU」和「残片与上一轮拼接后再送」两种条件下看意图错误率和槽错误率。中文、日语等主语可省略的语言应单独报告残片占比,不要用英语完整小句的语料来估这个比例。
自变量还可包括残片与上一轮的间隔话轮数——这里只用来看补全还能不能做,不要写成上下文存活多久的专题。朗读脚本几乎写不出真省略,要用对话式诱发。
边界
用户已经把话题拧到别处(「绿茶」之后立刻「放首歌」),残片规则会把新意图强行接回茶。对选择问句的完整重复(「我要热的绿茶」)不需要补全,硬补会叠床架屋。 看起来像技能名的词(「暂停」「关掉」)即使出现在跟句位置,也可能是新的设备控制,不能一律贴回上一框架。无屏、无上文的第一句不可能是省略。
怎么落地
- 句法上没有动词、或整句只是一个槽值时,先当作上一框架的残片做一次叠加,再跑新意图;两条都高才问。
- 回应里把补全说出来(「热的绿茶」),让绑错可以被听见、被改。
- 记录「残片被当成新意图」的次数。这是这条规则的主故障,不是词错误。
- 用真实点餐或购物跟句做回归:上一轮「绿茶」、本轮「热的 / 大杯 / 少糖」,必须仍停在同一张订单上。