Dawn's Blogs

分享技术 记录成长

0%

NLP学习笔记 (6) Parsing

Constituency Parsing

Constituency Parsing 就是:

  • 找出一段 text span 作为 constituents

  • 每一个 constituents 都有一个标签

1655892270551

  • 对于每一个单词都是一个 constituent(标签为这个单词的词性)
  • 相邻的 constituent 可以组成一个更大的 constituent
  • 一句话的所有单词,从底向上,可以组成一棵树

1655892544642

Chart-based

Chart-based 方法实际上就是对每一个 span 进行两次分类

  • 放入二分类:判断是否是 constituent
  • 放入多分类:constituent 属于哪一个标签

下图是 Chart-based 的结构,其中 Span Feature Extraction 与 Coreference Resolution 中的一样

1655893866459


需要注意的是,对于 span 的选择可能会产生矛盾,比如两个重合的 span 都被判断出是 constituent,那么就无法组成一棵树。

1655894066479

解决方法就是穷举出所有可能性的树,然后对每一棵树进行评分,选取评分最高的树。

Transition-based

Transition-based 中由三个部分组成:

  • Stack:初始为空。
  • Buffer:初始存放整个句子。
  • Actions:包括三种操作
    • NT (X):创建一个带有 X 标签的 constituent
    • SHIFT:将一个 token 从 Buffer 移动到 Stack 中
    • REDUCE:结束一个 constituent

1655894315635

实际上,我们需要训练一个分类模型,用于输出 Actions。

1655894356049

Tree to Sequence

甚至,我们可以利用 Seq2seq Model,将语法树变为一个 Sequence,比如:

对树进行遍历,得到遍历序列,这个遍历序列就是 Sequence。需要注意的是,这个模型不需要输出单词(因为可能会改变输入的句子),可以用 XX 表示输入的一个单词。

1655894496403

Dependency Parsing

Constituency Parsing 考虑的是一个句子中,相邻单词的关系。

Dependency Parsing 考虑的是任意两个单词(不需要相邻)的关系,用箭头表示这种关系(标签为关系的类别),起始为 head,结束为 dependent。

1655894898468

Dependency Parsing就是将一句话变为有向图(Directed Graph,实际上也是一棵树),word 变为 node,关系变为 edge。

  • 所有 word 只有一个入边(除去 ROOT)。
  • 从每一个 word 到 ROOT 有唯一的一条路径。

1656986928287

核心方法就是:两个分类器,输入是两个 word。

  • 判断左边是否指向右边。
  • 判断属于哪一种关系。

1656987793280