当前位置:   article > 正文

NLP——Discourse;Discourse Segmentation;Discourse Parsing / Discourse Analysis;Anaphora Resolution

discourse parsing

Discourse

在这里插入图片描述
在这里插入图片描述

"Discourse"在自然语言处理(NLP)中通常指的是一段连续的语言,它旨在表达、描述或解释一些信息。 这段语言可以是一句话、一段对话,甚至是一篇文章或一本书。

Discourse分析是NLP中的一个重要研究领域,它涉及到理解和处理语言在更大的语境中(比如对话或者文章)是如何使用的。例如,一个句子的意义可能会依赖于前面的句子,或者一个句子可能会引用之前提到的一些实体。在这些情况下,我们需要理解这些语言之间的关系才能理解单个句子的含义。

Discourse分析的一些主要任务包括:

  • Coreference Resolution:确定文本中提到的各个实体之间的关系,特别是找出指代关系,例如,确定代词 “he” 或 “she” 指的是哪个之前提到的实体。

  • Discourse Connective Prediction:确定不同句子或语句段落之间的逻辑关系。例如,一个句子可能是对前一个句子的因果关系、对比关系或添加信息。

  • Dialogue System:理解并生成连续的对话,需要理解前文的上下文和对话的目标。

  • Text Coherence:评估文本的连贯性,确保信息在文本中流畅地传递。

Discourse Segmentation

在这里插入图片描述

Discourse Segmentation 是 Discourse Analysis (话语分析)的一个子任务,它的目标是将文本划分成各个自然的、有意义的 discourse unit 或者 segments。

一个 discourse unit 可以是一个句子,一句话,一个段落,或者更长的文本片段,取决于我们对 “unit” 的定义以及应用的具体背景。比如在一段对话中,一个 discourse unit 可能是一个人的一次话语(turn),或者在一个文章中,一个 discourse unit 可能是一个段落。

  • Discourse Segmentation 是一个预处理步骤,为后续的 discourse analysis 任务提供输入, 比如 discourse parsing 或者 coreference resolution。通过 discourse segmentation,我们可以将长文本分割为更小的、更易于处理的片段,然后对这些片段进行更深入的分析,比如理解它们之间的关系(因果、对比等),或者找出哪些词是指向同一个实体的。

  • 需要注意的是,Discourse Segmentation 并不只是简单地按照语法或者标点符号将文本划分为句子,因为 discourse unit 通常是按照它们的语义内容和上下文关系来定义的。所以这个任务需要理解文本的语义和上下文信息。

Unsupervised Approaches 基于无监督学习的方法

TextTiling

在这里插入图片描述
TextTiling 是一种用于对长文本进行 discourse segmentation 的算法。这个算法由 Marti A. Hearst 在 1997 年提出,主要用于将文本划分为多个连续的话题区块,每个区块内部的话题是一致的。

TextTiling 算法的基本步骤如下:

  • 词带划分(Tokenizing into pseudosentences): 首先,将文本分割成等长度的"词带"(pseudosentences),每个词带可能包含几个句子。词带的长度应足够长,以包含足够的词汇信息,但又不能太长,以避免覆盖多个话题。

  • 计算词带间的相似度(Computing similarity between pseudosentences): 接着,计算每个相邻词带间的相似度。相似度的计算通常基于词汇分布:如果两个词带使用了很多相同的词,那么它们就被认为是相似的。这里通常使用 BOW 词袋法来构建。

  • 识别深度谷值(Identifying depth scores): 之后,基于词带间的相似度,找到那些与**两侧词带相似度都较低的"深谷"位置。**这些"深谷"被认为是不同话题的分界点。

  • 话题边界确定(Determining topic boundaries): 最后,根据上一步找到的"深谷",将文本划分为各个话题区块。

TextTiling 算法提供了一种有效的方法来自动进行 discourse segmentation,使得我们可以对长文本中的各个话题进行单独处理。但是,需要注意的是,这个算法依赖于文本中的词汇分布,所以如果不同话题之间的词汇变化不明显,那么这个算法可能会出现错误。

在这里插入图片描述

  • 这里设置的是k=1 所以是针对每句话都得到一个 BOW 的向量
  • t=0.9 代表当 d e p t h ( g a p i ) depth(gap_i) depth(gapi) 超过 0.9 的时候就切分成不同的 segment
  • 在第一个句子的情况中,由于没有 i − 1 i-1 i1 因此我们将 ( s i m i + 1 − s i m i ) (sim_{i+1}-sim_i) (simi+1simi) 作为 g a p 0 = − 0.2 gap_0=-0.2 gap0=0.2
  • 当然可以不用 BOW 来表示每个句子,可以用更多基于神经网络的方法来进行编码

Supervised Approach 基于监督学习的方法

在这里插入图片描述
在这里插入图片描述

  • 在进行有监督学习的 Discourse Segmentation 任务时,我们通常首先需要一个标注好的语料库,其中每个 discourse unit 的边界都已经标注好。这个语料库可以用来训练和测试我们的模型。

  • 接下来,我们需要选择一个模型来进行训练。我们可以构建一个二分类的分类器,来判断每个句子是否处于 boundary

  • 在构建分类任务的过程中,还可以结合多种不同的特征,例如:

    • distributional semantics
    • discourse markers (therefore, and, etc)

Discourse Parsing / Discourse Analysis

在这里插入图片描述
Discourse parsing 是自然语言处理中的一个任务,其目的是理解并表达文本中的话语结构和关系。 话语(discourse)是由一系列相互关联的句子组成的,这些句子共同传达一个完整的思想或信息。在理解和生成自然语言的过程中,不仅要理解单个句子的语义,也需要理解句子之间如何通过各种话语关系(比如因果关系,时间顺序关系等)连接起来。

Discourse parsing 的目标是将一段文本解析成一种结构化的形式(通常是一种树形结构),这种形式能够表达文本中的话语结构和关系。例如,对于以下的两个句子:

  • “我感觉不舒服。”
  • “因此,我决定去看医生。”

Discourse parsing 的任务就是识别出这两个句子之间的因果关系,可能将它们解析成以下的树形结构:

因果关系
├─ 我感觉不舒服
└─ 我决定去看医生
  • 1
  • 2
  • 3

Discourse Units

在这里插入图片描述

  • discourse unit 的边界是不重叠的
  • 两个 discourse unit 可以组合成为一个全新的 discourse unit

Discourse Relations

在这里插入图片描述
话语关系可以明示(explicit)或暗示(implicit)。明示的话语关系通常由连接词(如 “因此”、“然后”、“尽管” 等)表示,而暗示的话语关系则需要通过上下文和语境来推断。

常见的话语关系包括:

  • Elaboration(阐述):卫星(Satellite)提供了有关核心(Nucleus)的更多详细信息。
  • Cause-Effect(因果):卫星描述的事件或状态是核心事件或状态的原因或结果。
  • Evidence(证据):卫星提供了支持核心的证据。
  • Background(背景):卫星提供了理解核心所需要的背景信息。
  • Contrast(对比):核心和卫星描述的是对比或对立的情况。
  • Comparison(比较):核心和卫星描述的是相似或相等的情况。
  • Concession(让步):虽然卫星描述的情况存在,但核心的情况仍然成立。
  • Condition(条件):核心描述的情况是在满足卫星描述的条件下才会发生的。
  • Temporal(时间):核心和卫星描述的事件在时间上有前后关系。
  • Sequence(顺序):核心和卫星描述的事件按某种特定顺序发生。
  • Problem-Solution(问题-解决方案):核心描述的是一个问题,卫星描述的是解决这个问题的方法或方案。
    以上只是部分常见的话语关系类型,实际上可能存在更多类型的话语关系。

Nucleus vs. Satellite

在这里插入图片描述
"Nucleus"和"Satellite"是Rhetorical Structure Theory(修辞结构理论)中的两个基本概念,用于描述和分析文本中的话语关系。

修辞结构理论是一种用于分析和描述文本组织结构的理论框架,主要用于处理连续的文本,如段落和文章。在这个理论中,文本被看作是由一系列相互关联的“元素”或“组成部分”构成的,这些元素被称为“nuclei”(核心)和“satellites”(卫星)。

“Nucleus”(核心)通常指的是文本中相对重要或主要的部分。在一个话语关系中,nucleus 往往是信息更丰富或更关键的部分。

“Satellite”(卫星)则指的是相对于nucleus来说信息更附属或者辅助的部分,它的存在主要是为了支持、解释、扩充、修饰nucleus。

比如在句子 “我感到累了,因为我今天跑了10公里。” 中,“我感到累了”可以看作是nucleus,因为这是句子的主要信息,而"因为我今天跑了10公里"则可以看作是satellite,因为它为核心信息提供了解释和原因。

  • 对于一些 discourse relations,可能只存在 Satellite,比如在 conjunction 关系中。

RST Tree

在这里插入图片描述
RST(Rhetorical Structure Theory)Tree 是一种用于表示文本中修辞结构的图形表示方式。RST Tree 利用树状结构来显示文本中的 discourse units(话语单元)以及这些 units 之间的修辞关系。

  • RST Tree 的节点(Nodes)代表 discourse units,
  • 而边 (Edges)则代表这些 units 之间的修辞关系。

在 RST Tree 中,每一个修辞关系都包括一个 Nucleus 和一个或多个 Satellite。Nucleus 是关系中的主要部分,而 Satellite 则是对 Nucleus 进行补充或解释的部分。在 RST Tree 中,Nucleus 通常被放在左边,Satellite 放在右边。

例如,对于下面的文本:

1. Bob loves to exercise.
2. He runs every morning.
3. Therefore, he is very healthy.
  • 1
  • 2
  • 3

我们可以建立一个 RST Tree 来表示这些句子之间的修辞关系:

Result
├─ Sequence
│  ├─ Bob loves to exercise.
│  └─ He runs every morning.
└─ Therefore, he is very healthy.
  • 1
  • 2
  • 3
  • 4
  • 5

在这个例子中,“Bob loves to exercise.” 和 “He runs every morning.” 形成一个 Sequence 关系,这两个句子一起和 “Therefore, he is very healthy.” 形成一个 Result 关系。在 Result 关系中,“Therefore, he is very healthy.” 是 Nucleus,而 “Bob loves to exercise. He runs every morning.” 是 Satellite

RST Parsing

在这里插入图片描述

Rule-based Parsing(based on discourse markers)

在这里插入图片描述

Machine learning-based

在这里插入图片描述
以下是一种可能的用于解析 RST Tree 的机器学习方法:

  • 分段(segmentation): 首先,需要将文本分割成一系列的话语单元。这可以通过各种方法实现,包括基于句子边界的分割,基于词性标注和句法分析的复杂方法,或者基于监督学习的方法。

  • 分类修辞关系: 如果确定两个相邻的 discourse unit 之间存在修辞关系,那么需要进一步确定这种关系的类型。这可以通过多类分类器实现,如多类 SVM 或 softmax 分类器。同样,分类器的输入是一些特征,如两个话语单元的词袋表示,他们的句法结构,他们之间的位置关系等。分类器的输出是修辞关系的类型。

  • 生成 RST Tree: 最后,根据确定的话语单元和修辞关系,可以生成 RST Tree。这可以通过一些启发式方法实现,例如,始终将具有更强修辞关系的两个话语单元合并,直到生成完整的 RST Tree。

Bottom-up parsing

在这里插入图片描述
在修辞结构理论(Rhetorical Structure Theory,简称 RST)中,自底向上解析的方式有两种:

  • shift-reduce 算法
  • CYK / chart parsing 算法
Top-down parsing

在这里插入图片描述

Discourse Parsing 使用的特征

在这里插入图片描述

Discourse Parsing 的应用

修辞结构理论(RST)和 discourse parsing 在许多自然语言处理任务中都有应用,包括:

  • 摘要生成(Summarisation): 修辞结构理论可以帮助确定哪些部分的文本对于理解整体含义最为重要。例如,"nucleus"部分通常包含了句子或段落的主要信息,而"satellite"部分则提供了补充或支持性的信息。因此,可以通过选择和重新组织nucleus部分来生成摘要。

  • 情感分析(Sentiment Analysis): Discourse parsing 可以帮助理解文本的情感和观点。例如,"concession"修辞关系可能表明文本作者在承认一个观点,但同时也持有一个不同的观点。这种信息可能对于理解和分析文本的总体情感很有用。

  • 论证分析(Argumentation): Discourse parsing 可以帮助理解文本中的论证结构,如何提出和支持观点等。例如,"evidence"修辞关系可能表明一个观点和用来支持这个观点的证据。

  • 作者归属分析(Authorship Attribution): 虽然此任务主要依赖于词汇,语法和写作风格等特征,但是 discourse parsing 可能也有一定的帮助,因为不同的作者可能倾向于使用不同的修辞关系和结构。

  • 文章评分(Essay Scoring): Discourse parsing 可以帮助理解文章的组织和结构,这对于评估文章的质量和评分很有用。例如,一个优秀的文章可能会有明确的论题(Claim)和支持论题的证据(Evidence),这些都可以通过 discourse parsing 来识别。
    在这里插入图片描述

Anaphora Resolution

在这里插入图片描述

Anaphora Resolution 是自然语言处理中的一个重要任务,目标是确定代词(如"he", “she”, “it"等)或者其他代指表达(如"this book”, "that company"等)在文本中所指的实体。 举个例子,考虑这句话:“John walked into the room. He was whistling a tune.” 在这个例子中,“He” 是一个代词,它指向的是"John"。确定这个指向关系的过程就是 anaphora resolution。

Anaphora Resolution 是一个复杂的任务,因为它需要对语境有深刻的理解。这包括理解句子的语法结构、单词的含义、句子间的关系,甚至包括理解世界知识和常识。 例如,在"John and Mary went to the park. She was wearing a red hat.“这句话中,我们知道"She"指的是"Mary”,而不是"John",因为我们知道"John"通常是男性名字,而"She"是用来指代女性的。

Anaphora Resolution 在很多自然语言处理任务中都很重要,包括信息提取、文本摘要、机器翻译和问答系统等。例如,在一个问答系统中,如果一个问题是"Who was wearing a red hat in the park?", 系统需要首先解决这个代词的指代问题,才能正确地回答这个问题。

Anaphora Resolution 的研究动机

在这里插入图片描述

Antecedent Restrictions 先行词限制

在这里插入图片描述
在代词解析(Anaphora Resolution)中,先行词(Antecedent)限制(Restrictions)是一个重要的概念。先行词是一个词或短语,它在文本中出现并被后续的代词或其他代指表达式所指代。例如,在句子 “John walked into the room. He was whistling a tune.” 中,“John” 是 “He” 的先行词。

先行词限制是指在确定先行词时需要考虑的一些规则和限制,它们主要包括以下几个方面:

  • 数量一致性: 代词和其先行词必须在数量上一致。例如,单数代词(如"he"或"it")必须指向一个单数的实体,而复数代词(如"they")必须指向一个复数的实体。

  • 性别一致性: 代词和其先行词必须在性别上一致。例如,男性代词(如"he")必须指向一个男性实体,女性代词(如"she")必须指向一个女性实体。

  • 语法角色限制: 在某些语境下,代词的先行词必须在语法上扮演特定的角色。例如,英语中的反身代词(如"himself"或"herself")必须指向同一句子中的主语。

  • 指代范围限制: 先行词必须在代词的指代范围内。一般来说,一个代词不能指向它后面的内容。例如,在 “He is John.” 这句话中,“He” 不能指向 “John”。

Antecedent Preferences 先行词偏好

在这里插入图片描述
在代词解析(Anaphora Resolution)中,除了需要考虑到先行词限制,还需要考虑到先行词偏好(Antecedent Preferences)。这是指在多个可能的先行词之间,有些先行词更有可能被代词所指代。这种偏好可能取决于很多因素,例如语法结构、语义角色、信息状态和距离等等。

以下是一些常见的先行词偏好:

  • 句法结构偏好: 有些语法结构的元素更有可能成为先行词。例如,主语或者动词的直接宾语往往更有可能被代词所指代。

  • 距离偏好: 代词往往倾向于指代距离自己较近的元素。例如,在 “John saw Mary. He …” 这个例子中,“He” 更有可能指代 “John” 而不是 “Mary”,因为 “John” 距离 “He” 更近。

  • 重复偏好: 如果一个元素在文本中被重复提到,那么它更有可能被后续的代词所指代。

  • 语义角色偏好: 代词往往倾向于指代扮演特定语义角色的元素。例如,代词更有可能指代扮演"agent"角色(即行动的发起者)的元素。

这些先行词偏好可以帮助我们在解决代词解析问题时,更准确地确定代词的先行词。然而,这些偏好并不是绝对的,实际的代词解析任务仍然需要考虑到更多的语境信息。

Supervised Anaphor Resolution 基于监督学习的方法

在这里插入图片描述
Supervised Anaphor Resolution 是一种机器学习方法,用于解决代词指代问题(Anaphora Resolution)。它是监督学习(Supervised Learning)的一个应用,需要一个标注了正确代词指代关系的训练数据集。

在 Supervised Anaphor Resolution 中,通常会将问题转化为一个分类问题:给定一个代词和一组可能的先行词,我们需要确定哪一个先行词是正确的指代。 为了做到这一点,我们需要构建一个特征向量来描述代词和可能的先行词之间的关系,然后训练一个分类器(例如决策树、SVM或神经网络)来预测正确的先行词。

特征可能包括代词和先行词之间的句法关系、它们之间的距离、它们的性别和数的一致性、以及许多其他因素。一旦有了训练数据,就可以使用各种机器学习算法来学习这些特征与正确指代关系之间的映射。

然后在测试阶段,对于每个新的代词和可能的先行词集合,我们可以使用这个已经训练好的模型来预测正确的指代关系。

需要注意的是,监督式代词解析需要大量的人工标注数据,并且对训练数据的质量非常敏感。因此,尽管这种方法可以取得很好的效果,但是在没有足够的标注数据的情况下,可能无法达到满意的性能。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/784273
推荐阅读
  

闽ICP备14008679号