一句话定义:指代消解(Coreference Resolution)是让机器判断一段文字里不同位置出现的“他”“它”“该公司”“前者”等说法,究竟指向同一个对象,还是不同的对象。
人读文章时,大脑会自动给每个角色发一个“号牌”。看到“张伟……他……小张”,会自动把这几处归到同一张号牌上。机器看到的只是一串词,没有号牌,也没有“这个人前面出现过”的直觉,所以需要专门做一遍归拢。
看两个例子:
> 张伟把项目移交给李娜,因为她要休假了,他只好接手。
这里“她”指李娜,“他”指张伟。两个代词都紧跟在两个人名后面,靠得近不等于指得对。
> 苹果发布了新手机。该公司股价随后上涨。分析师看好它。
“苹果”“该公司”“它”是三种不同写法,指向同一个对象。这种跨句、跨段落的接力,才是指代消解真正要处理的部分。
一个生活化的比方:整理会议纪要时,你在心里默默把“张总”“老张”“甲方负责人”“他”都记成同一个人。人做这件事几乎不费力,但如果要写成规则让程序执行,就得逐条判断:性别对不对、单数还是复数、距离多远、语义上搭不搭(“它”通常指物,“他”通常指人)、句子结构里谁是主语。
技术上一般分两步走:先把文中所有可能充当指代的“提及”(mention)找出来,再判断哪些提及应该合并进同一个实体簇(cluster)。难的地方在于,这两步互相依赖——不知道谁是实体,就不好判断代词;不判断代词,实体的边界又拼不完整。
它和几个相邻概念容易混:
| 概念 | 解决什么问题 | 例子 |
|---|---|---|
| 命名实体识别(NER) | 认出哪些词是实体、属于什么类型 | 圈出“张伟”是人名 |
| 指代消解 | 判断多个说法是否指同一个对象 | “张伟……他”是同一个人 |
| 实体链接(Entity Linking) | 把这个对象对应到知识库里的具体条目 | “苹果”是苹果公司,不是水果 |
一句话区分:NER 负责“认出”,指代消解负责“串起来”,实体链接负责“对上号”。
对从业者和普通职场人来说,它的意义很实在。搜索和问答里,如果“它”指错了,系统就会去检索错误的对象;做摘要和舆情分析时,同一个公司的不同叫法没被合并,统计口径就会重复或漏掉;在合同、病历、客服日志这类文本中,代词指错可能导致完全相反的结论。多轮对话里更明显——用户说“它太贵了”,这个“它”指的是上一条消息里的哪个产品,直接决定系统接下来怎么回答。
最后提一句:单句内、代词紧挨着先行词的情况相对好办,跨段落、多角色、中文里大量省略主语的情况才是真正的硬骨头。实际系统的效果差异很大,具体能力以官方页面为准。
