目录

什么是指代?

指代(coreference)为语言学中为了避免已经出现的字词重复出现在文章的句子上,导致语句结构过于赘述和语意不够清晰,所以使用代词(pronouns)或是名词(nouns)来代替已经出现过的字词。

例子:

  1. 特朗普访问中国,这是美国总统第n次来华访问。
  2. 小明身长八尺,学习成绩优异,深得老师同学们的喜欢。

概念一:表述、实体

在以上的例子中,红色字体标注的词语,我们称为表述,对应真实世界中的实体

表述实体是在指代消解问题中常见的术语。实体(Entity)是存在于客观世界的某种事物,是一种切实存在的概念。文本中会出现很多的名词短语以及代词,这些句子成分被称作表述(Mention),是一个事物在文本中的一种体现。

In coreference resolution, an entity is an object or set of objects in the world, while a mention is the textual reference to an entity (Doddington et al., 2004).

概念二:指代、回指、共指

指代关系按照表述是否依赖上下文可以分为回指和共指。我们通常讨论的指代关系主要是指共指 ,即考虑表述之间是否指向同一个实体。在这个问题中,回指通常是针对代词而言,是一种特殊的共指关系

因此,在下文中,我们可能会混用“共指”和“指代”两个描述方法,但是我们想表达的意思是相同的。

什么是指代消解?

指代消解即为文中的表述确定其在真实世界中所指向实体的过程.

Coreference resolution, the task of identifying which mentions in a text refer to the same real world entity, is fundamentally a clustering problem.

指代消解任务通常分为两步:

  • 第一步:表述提取,也称待消解项识别。即从文本中找到下一步任务中待处理的候选表述。
  • 第二步:指代消解。对提取的候选表述集合进行分析处理,判断它们的指代结果。

为什么要研究指代消解?

  • 在机器翻译问题中,对于代词’they’可以通过分析词语的指代关系翻译为“他们”或者“她们”,从而使翻译更加准确。
  • 在文本摘要问题中,适当采用代词对某些词语进行替换,提升可读性。
  • 在知识图谱领域中,可以参考指代消解的方法,将知识融合问题与消解问题类比,即对于同一实体的词语单元合并为同一个cluster
  • 另外,文本理解是人工智能领域一个重要的技术难点。国务院在2017年发布的《新一代人工智能发展规划》中明确提出,要重点突破自然语言的语法逻辑以及深度语义分析的核心技术,将对中文文本的研究提高到国家战略层面。

结论:指代消解在实际的生产生活中有着广泛应用。

指代消解常见方法有哪些?

  • 传统:
    • 基于句法树或语言规则的分析
  • 机器学习:
    • 分类:将表述与表述之间是否存在指代关系考虑为二分类问题
    • 聚类:将每个表述考虑为一个实体,共指消解的过程可以理解为实体类(cluster)的聚类过程
  • 深度学习:
    • 基于端到端的思想,构建深度神经网络完成共指消解。

如何评价指代消解的效果?

:给出标准的划分和结果划分。

![image](/中文共指消解问题研究/3.JPG)
Label={a,b,c},{d,e},{f,g,h} 
Resolution={a,b},{c,d,e},{f,g,i}
其中abc表示一个表述,用大括号表示一个实体。处于同一个大括号的表述属于同一实体。

MUC

  • Precision:指消解后的结果中,正确处理的表述占实际处理的表述的百分比
  • Recall:描述消解结果中正确处理的表述占数据集中所有待消解表述的百分比

其中\(L_i\)表示标记数据中第i个实体的情况,\(R_i\)表示消解结果中第\(i\)个实体。‘|’表示当前实体所包含的表述数量。计算准确率的公式中的\(p(R_i\)是指消解结果中第\(i\)个实体中实际包含了多少个真实的实体,其中没有出现在标记数据中的独立表述,我们认为它是独立的一个实体。计算召回率的公式中的\(p(L_i)\)是指标记数据中的第\(i\)个实体被划分为多少个子类。在下图中我们用实线椭圆表示标记数据的实体类,用虚线椭圆表示消解结果中的实体类。

![image](/中文共指消解问题研究/4.JPG)

有:

BCUB

如何构建完整的指代消解系统

下图是一个基于多轮处理的指代消解系统的结构图。

![image](/中文共指消解问题研究/系统结构图.png)

处理步骤:

  1. 预处理:首先对输入的文本进行预处理,完成一些基本的词性标注,构建句法树等工作。
  2. 表述提取:然后将预处理好的数据传入表述提取部分,通过一定的方法获取候选表述。
  3. 指代消解:接着将提取的待处理表述集合传递给指代消解部分,完成一个处理流过程。

表述提取

对文本进行基本处理,提取其中的名词短语。

基于多轮规则的指代消解

在指代消解部分中我们选择了下图中多个消解规则进行组合,构成多轮规则处理的指代消解系统。其中每一轮我们使用一个消解规则。

对于单个规则我们采用如下的方法进行处理:

![image](/中文共指消解问题研究/规则-单个规则流程图.jpg)

举例进行解释,假设我们有candidate_mentions\(=[m_1, m_2, m_3, m_4, m_5, m_6, m_7]\)个表述,我们的处理方式为:

for mention in candiate_mentions: # 从m_2开始,每次选择一个
    候选表述list = get_candidate(mention)    # 选择mention前面的表述作为候选集合
    for 候选表述 in 候选表述list:                # 从候选表述中选择一个表述
        if 候选表述 coref with mention:         # 如果这个候选与mention共指
            set_coref(候选表述,mention)
            break                            # 如果找到了,那么则停止判断

概述

  1. 基于文本结构分析的规则:

    • 在这类规则中,主要考察表述之间的位置关系以及文本是否匹配等信息,从而判断表述之间是否存在共指关系。
    • 例子:

      • 目前 , 十 个 农业 高 新 技术 开发 示范区 , 已 划出 了 十八万 亩 土地 作为 中心 示范区 。 为 加快 示范区 的 建设 , ·······。 近 两 年 来 , 十 个 农业 高 新 技术 开发 示范区 已 推广 农业 新 品种 上 百 个
  2. 基于中心词分析的规则:

    • 在这类规则中,针对表述的中心词设计了多个约束条件。
    • 例如:
      • 另外 许运宏 还 要求 中国 银行 宁波 分行 等 单位 为 经营 不善 的 宁波 五洲 有限 公司 分别 贷款 、 借款 共计 人民币 2500多万 元 、 美元 540万 元 , 全部 贷款 和 绝大部分 借款 因 五洲 公司 资 不 抵 债 无法 收回 。
      • 针对 这 种 情况 , 本溪市 对 养老 保险金 征缴 和 方法 体制 做 了 重大 调整 , 由 过去 的 实行 差额 收支 改为 全额 收支 , 社会 养老 保险金 统一 征缴 , 由 银行 直接 发放 , 严格 控制 养老 保险 统筹 以为 项目 的 支出 。
  3. 代词消解规则:

    • 对于一二人称:通常出现在对话中,因此先定位说话的人,然后判断一二人称和说话者的指代关系。
    • 对于第三人称:对于每个表述设计了多个属性。如果第三人称代词和它的候选表述具有相同的属性且距离相近,认为它们存在指代关系。
    • 例如:
      • 早些时候 菲律宾 武装 部队 总参谋长 雷耶斯 在 记者 招待会 上 说 : 允许 埃斯特拉达 的 家人 体面 的 离开
  4. 语义规则:

    • 考虑经过之前的各个规则后仍然没有被处理的表述,利用表述的相似度和其他属性,在保证一定准确率的情况下提高召回率。
    • 例如:
      • 你 知道 淡水 和 八里 之间 要 盖 一 座 淡江 大桥 吗 ? 这么 美丽 又 有 历史感 的 地方 , 就 这样 凭空 盖起 一 座 大桥 , 还 说 上面 要 有 旋转 咖啡厅 呢 !
      • 啊 , 我们 换 了 一 部 新 车 . 嗯 . 我 不 知道 我 跟 你 讲 过 没有 ? 我 那 部 车 , 我们 卖 掉 了 , 又 重 买 了 一 部 新 的 .

1. 字符串匹配规则

如果两个候选表述的修饰语限定词相同,且两个表述文本相同,那么这两个表述存在指代关系。

设计意义:

  1. 约束修饰语和限定词

    考察句子

     小明的老师在闲暇时也会教小李,这也给小李的老师减轻了工作负担。
    

    其中包含的表述有

     {小明的老师,小明,老师,小李的老师,小李,老师}
    

    我们可以看到在表述集合中有两个文本内容完全相同的表述“老师”,但是这两个表述并不指代同一人。对于第一个表述“老师”而言,它的修饰语为“小明的”,对于第二个表述“老师”而言,它的修饰语为“小李的”。虽然表述的文本内容相同,但是因为修饰语不相同,所以这两个表述不存在指代关系。

  2. 约束文本相同

    考察两个表述:

     “凳子”、“茶具”
    

    词语“凳子”、“茶具”作为表述它们是独立的词语,但是在文本中他们仍然可能存在修饰成分。

    例如由“这精美的”构成名词短语

     “这精美的凳子”、“这精美的茶具”
    

    可以很清楚的看到,这两个表述具有相同的修饰语和限定词,但是它们本身就是不同的事物。

2. 词语结构匹配规则

针对表述之间所处的位置关系和句子中扮演的角色进行分析。设计了以下的约束条件,如果满足其中某一种条件,那么两个表述之间存在指代关系。

  1. 同位语关系

    同位语是指一个短语对它周围的某个名词或者代词起到补充解释的作用,并且空间距离相近,语义相关。

    例如:

     小明,三年二班的班长。
    
  2. 谓语主格

    谓语主格是指句子中“句子成分1++句子成分2”结构的表达方式,通常句子成分2作为成分1的补充说明。

    例如:

     “在学术研讨会上,人们提出人工智能是社会新的发展方向”。
    

    这其中“人工智能”“社会新的发展方向”就处于由“是”进行连接的谓语主格结构中。

  3. 缩写关系

    例如

     “美联储”、“美国联邦储备局”
    

    生成缩写的方法:

     “中国篮球协会”→“中国/篮球/协会”→“中篮联”
    

3. 中心词严格匹配规则

中心词是指短语中能够简单概括短语含义的部分。例如“北京大学”,其中心词就是大学;“中华人民共和国教育部”,其中心词则为“教育部”

在这部分内容中,我们设定了4个约束条件,然后组合形成了3个策略

约束条件

约束条件1: 表述中心词是否出现在候选表述的中心词集合中

输入:待处理的表述为m_i;候选表述集合C={m_1,m_2…,m_(i-1)}
过程:
1:    根据当时的指代情况对候选表述进行实体类的划分,得到E={E_j,j≤i-1}
2:    找到m_i对应的中心词h_i
3:    for m_j∈C:
4:        选择m_j对应的E_j
5:        对于E_j中的表述找到对应的中心词构成集合H'_j
6:        if h_i in H'_j
7:            True
8:        else
9:            False
10:        end if
11:    end for

输出:是否满足这项约束

举例进行说明:

图中的弧线表示两个表述存在指代关系。假设我们待处理的表述为\(m_6\),根据规则我们选择出现在它前面的表述作为候选表述集合\(C={m_1,m_2,m_3,m_4,m_5}\)。对\(m_6\)找先行词的过程即是然后依次对\(m_i\in{C}\)与\(m_6\)进行判断。在当前的时刻,我们已知\(m_1\)与\(m_7\)共指,\(m_2\)与\(m_3\)共指。

对于集合C中的表述,我们可以得到候选表述中实体类的划分E={\(E_1=(m_1,m_7 ),E_2=(m_2,m_3 ),E_3=(m_4 ),E_4=(m_5)\)}。因此可以得到每个实体类对应的中心词集合,得到\(H’={(h’_1,h’_7 ),(h’_2,h’_3 ),(h’_4 ),(h’_5 )}\)。

因此,考察\(m_6\)和\(m_1\)是否指代使用此算法即使求\(h_6\)是否包含在\(H’_1=(h’_1,h’_7)\)中;对\(m_6\)和\(m_2\)使用此算法即使求\(h_6\)是否包含在\(H’_2=(h’_2,h’_3)\)中;对其他的候选表述使用类似的操作。

用实际的例子进一步进行讲解。

假设处理表述“上海”,它的中心词即为它本身

它对应的候选表述有:

{中国上海;一个发达的城市}。

根据现有的指代情况有:

{“中国上海”:(中国上海,沪),“一个发达的城市”: (一个发达的城市)}

因此可以得到的中心词集合

{(上海,沪),(城市)}

当我们对“上海”和候选表述“中国上海”进行判别时,我们将考察“上海”的中心词是否在(上海,沪)中。

当我们对“上海”和候选表述“一个发达的城市”判别时,我们将考察“上海”的中心词是否在(城市)中。

约束条件2: 非停用字包含

在这项约束中,我们要求表述所包含的没有出现在停用词集合中的字,必须包含在由候选表述的中未出现在停用词的字构成的集合中。

在项目中,我们维护了一个常用停用词列表。假设有停用词词表S,现有待处理的表述\(m_i\)和它的候选表述\(c_i\),其中\(m_i=(w_1,w_2,…,w_n ),c_i=(w’_1,w’_2,…,w’_n )\),w和w’分别表示构成表述的单字。因此对于表述m_i,我们求取它和S的差集,并将结果定义为S’。对于候选表述\(c_i\)求取它和S的差集并将结果定义为S’’。那么如果\(S’\subseteq{S’’}\),那么我们认为满足此项约束。

例如考察表述:

“一个发展中的城市”、“沿海地区一个经济发达的城市”

删除表述和候选表述中停用词后,得到的集合存在包含关系,因此满足此项约束。

而对于表述:

“一个发展中的城市”、“沿海地区一个发达的城市”

这两个表述虽然具有相同的中心词,但是除去停用词后产生的集合不满足包含的关系,因此不满足此项约束。

约束条件3:表述修饰语是否出现在候选表述修饰语中

如果当前待处理的表述的修饰语包含在候选表述的修饰语中,则满足此项约束。

例如考察表述:

发达的上海

以及它的候选表述:

一个发达的城市

我们可以得到候选表述修饰语 “发达”,因此表述“发达的上海”的修饰语包含在候选表述的修饰语中,两个表述满足此项约束。

约束条件4:表述间是否存在子结构

将考察两个表述是否具有互相包含的关系

策略

策略1: 中心词严格匹配——严格策略

条件
当前表述与其候选表述是否存在相同中心词 True
表述中心词是否出现在候选表述的中心词集合中 True
是否满足非停用字包含条件 True
表述修饰语是否出现在候选表述修饰语中 True
表述间是否存在子结构 False

策略2: 中心词严格匹配——中间策略

条件
当前表述与其候选表述是否存在相同中心词 True
表述中心词是否出现在候选表述的中心词集合中 True
是否满足非停用字包含条件 True
表述间是否存在子结构 False

策略3: 中心词严格匹配——宽松策略

条件
当前表述与其候选表述是否存在相同中心词 True
表述中心词是否出现在候选表述的中心词集合中 True
表述修饰语是否出现在候选表述修饰语中 True
表述间是否存在子结构 False

4.中心词宽松匹配规则

条件
表述中心词是否包含于候选表述中心词集合中 True
表述和候选表述是否具有相同的命名实体标签 True
是否满足非停用字包含条件 True
表述间是否存在子结构 False

5. 专有名词中心词匹配规则

条件
是否均被标记为命名实体 True
是否有相同的命名实体标签 True
待处理表述中的数量词是否在出现候选表述中 True
表述间是否存在子结构 False

6. 第一二人称代词消解规则

对于一二人称:通常出现在对话中,因此先定位说话的人,然后判断一二人称和说话者的指代关系。

7. 第三人称代词消解规则

对于第三人称:对于每个表述设计了多个属性。如果第三人称代词和它的候选表述具有相同的属性且距离相近,认为它们存在指代关系。

8. 语义规则

考虑经过之前的各个规则后仍然没有被处理的表述,利用表述的相似度和其他属性,在保证一定准确率的情况下提高召回率。