前言
本科时候主要搞的是利用深度学习来做文本分类和情感分析,phd期间的老板貌似对deep learning和一些相关的应用不是太感兴趣,于是。。 我就跳进了coreference resolution这个坑 (此处省略1万字)
定义
相信很多人都没有听说过这个概念,所以先在这里简单的介绍一下基本的定义:
Coreference resolution (共指解析)是自然语言处理(nlp)中的一个基本任务,目的在于自动识别表示同一个实体的名词短语或代词,并将他们归类
为什么需要这个任务呢?我们都知道每一个实体都是知识库(百度百科,维基百科或者freebase)中一项完整定义的条目,但是实体出现在自然语言文本中的时候可能会有不同的形式(or名字)。例如:新闻报道中的巴拉克-奥巴马这个实体,有的时候是美国总统,有的时候是奥巴马, 而有的时候是第44任美国总统,甚至有的时候是一个简单的代词他。当这些名词短语或代词出现在一起时,我们根据我们已有的知识或者是上下文信息都清楚地知道它们指代的是同一个实体,那么怎么让计算机自动识别这些指向同一个实体的名词短语或代词呢?这就是coreference resolution要完成的工作。
在具体介绍coreference resolution之前,先讲一下一些相关的概念:
- 实体(entity):知识库中完整定义的,唯一存在的条目,在coreference resolution这个任务中,每一个实体都可以看作是指代它的名词短语或代词构成的集合(巴拉克-奥巴马={ 美国总统, 奥巴马, 第44任美国总统, 他})。
- 指称(mention):实体在自然语言文本中的别名或另一种指代形式,美国总统, 奥巴马, 第44任美国总统, 他 等都是mention。mention的类型一般有3类:专有名词(proper noun,巴拉克-奥巴马),名词性词(nominal, 第44任美国总统),代词(pronominal, 他)
- 共指(corefer):如果文本或句子中的两个mention指代的是同一个entity,那么它们之间存在着一种共指(corefer)关系。美国总统与第44任美国总统 即是共指的两个mention
通过上面的介绍,我们实际上可以把coreference resolution转换成一个分类(classification)或者聚类(clustering)的问题,而每一个entity对应的就是一个类(class)或簇(cluster),具体的方法无非就是使用机器学习模型+自己设计的特征,具体的方法在这里不深究。
一个任务的出现自然有它的motivation,最简单的,coreference resolution能够自动识别指代上文出现的名词短语的代词,从而辅助自然语言理解(natural language understanding)。具体地来说,coreference resolution能够应用在以下几个领域当中:
- 信息抽取(information extraction, IE);信息抽取是一项从文本中发现实体(entity)以及实体之间的关系(relation)的技术,coreference resolution可以帮助IE系统对文中出现的指称(mention)进行归类,避免提取冗余的信息
- 文本摘要(text summarization);文本摘要,字如其名,是一项从文挡中识别关键信息(可以理解为中心思想),并生成一份剪短的摘要(summary)的技术。coference resolution可以向文本摘要系统提供文档中所有的共指关系(coreference),将所有指向同一个实体的指称(mention)根据它们在文中出现的先后顺序构成一条共指链(coreference chain),这条共指链可以有助与摘要系统提取关键信息(最基本的idea:如果文本中主要讲述的是一个事物或者人,他肯定会在文中多次出现,也就是说,coreference chain越长,对应的实体越有可能是目标实体)。另外,加入coreference resolution之后,系统生成的摘要会更自然(例如:根据前面的前文合适的使用代词)
- 自动问答(question answer,Q&A); Q&A是一项根据输入的问题或者查询,从知识库或者已有的文本中检索并返回合适结果的技术。coreference resolution能够在问题和答案上优化Q&A系统,首先,它能够通过分析问题中的共指关系,找到问题的核心实体;其次,coreference resolution能够帮助判断候选答案与问题中核心实体的相关性,从而辅助对候选答案的排序
- 机器翻译(machine translation);机器翻译是一项利用计算机将自然语言文本从源语言(souce language)转换到目标语言(target language)的任务。由于文本中常常会出现 你,我,他 等代词,使得计算机无法理解代词的具体含义,所以这类代词的翻译往往不准确。coreference resolution可以识别这类代词,然后把它们归类到相应的实体中,机器翻译系统翻译文本时,就可以结合代词和实体名称来进行合理的翻译。
- 还有一些其它方向的应用,如果想要了解更多,可以参考论文[1]。
本来想在这里介绍几个做coreference resolution的方法,但是考虑到这些方法的内容都比较长,所以就放在后面的文章中介绍。下面准备介绍一下几种常用的coreference resolution的评测指标:
- MUC F-score [2]
- 这个指标中,任意两个共指的指称(mention)之间存在着一条相连的边,recall error被定义为系统输出的结果中,预测结果中缺失的边与真实结果中相连边的比值;precision error被定义为在真实结果的相应划分(partition)生成的非连通图转变为连通图需要的边的条数与预测结果中连接图的边的条数的比值
- recall=∑ni=1|Sgoldi|−|p(Sgoldi)|∑ni=1|Sgoldi|−1
- precision=∑mi=1|S