指代需要绑定到前文对象
别名: 把「那个」钉死 · 话语指称对象 · bind "it" to a prior object
概念解释
刚确认过航班 UA128,用户说「取消它」。它必须落到刚才那次被引入、双方都当作还在场的那架航班上,而不是落到「航班」这个类、上一轮提过的机场、或系统默认的下一班。这个过程叫把回指绑到话语指称对象上(anaphora binding to discourse referents)。绑定失败时,短词并没有变含糊——含糊的是系统没有把前文对象做成可寻址的实体。省略主语、屏幕上的指点、环境里的物体,是另一层候选从哪来的问题;这里只管:对话里已经提起的那个东西,后文的「它 / 那个 / 刚才那个」能不能钉死。
机制
每引入一个可被谈论的对象,对话里就多一个话语指称对象,进入共同基础。回指是廉价的指针:人用它,是因为假定指针还有效。系统若只保存上一句话的字符串、不保存对象身份,指针会飘到最近的名词、或飘到意图分类里最热的槽。竞争对象会让绑定显出原形:先提了 UA128,又提了改签政策,「那个」可能指航班也可能指政策。人类靠显著性、近因和句法角色解竞争;系统若只用「最近一个名词」,会把政策当成航班去取消。绑定还要求对象在状态里仍然可操作:航班已经变成「已取消」的历史项,指针应落到历史项,而不是再搜一班同号航班。
怎么研究
做回指消解实验:先用一两轮引入一个或两个对象(具体航班、具体会议室),再在控制距离处发出「取消它 / 改到那个」。自变量:先行词距离(隔 0 轮、隔 1 轮插入无关问答)、竞争对象是否在场、两个对象的类型是否同类。因变量:绑定到正确对象的比例、问清「哪一个」的比例、绑到竞争对象并执行的危险比例。
语料上把含代词的用户话轮单独抽出来,人工标话语指称对象,再看系统实际改了哪个槽。不要只看意图是否「取消」——意图对、对象错,仍是绑定失败。Wizard-of-Oz 可以在没有完整实体链接时先测:人在什么时候愿意只说「它」。
边界
当轮没有引入过任何可操作对象,「它」本来就无先行词,应拒绝绑定而不是猜一个热门槽。对象只有一个、且刚被系统自己回述过(「UA128 已订好。需要改吗?」),绑定几乎是强制的,再问「取消哪一班」是假聪明。跨技能的对象身份若根本没打通(日历里的「它」和邮件里的「它」),绑定在工程上做不到,应显式说做不到,而不是绑到另一技能的最近项。把绑定理解成「多记住一句话」不够:记住的是对象,不是词。
怎么落地
- 每个可被后续回指的成功动作,在状态里留下带身份的对象(哪一班、哪一场、哪张单),不要只留下意图标签。
- 出现代词或「那个」时,先在当前共同基础里解对象;候选多于一个就问区分性属性(时间、目的地),不要执行最近名词。
- 回述绑定结果里的关键身份(「取消 UA128」),让错误绑定有机会在执行前被听见。
- 验证:准备两对象竞争脚本(先订 A 再问 B 的政策,然后说「取消它」)。系统若动了 B 或新搜了一班 A 的同号航班,绑定没有钉死。