什么是依存句法分析

  • 依存句法分析是一种分析一个句子中单词与单词之间的语法关系,并将其表示为树形结构的任务。
  • 核心是分析句子中词语之间的依存关系

依存树的结构

  • 形式上是一个有向无环图(DAG),通常是单一根结构的树
  • 每个单词除了根节点,最多只有一个head
  • 通常附带依存标签说明关系类型
  • 依存句法认为“谓语”中的动词是一个句子的中心,其他成分与动词直接或间接地产生联系。

依存句法分析的方法

基于转移的依存分析

核心思想:将句子分析过程视为一系列状态转移

使用数据结构:栈(stack)+ 缓冲区(buffer)+ 依存弧(arcs)

操作

  1. SHIFT:将词从缓冲区移动到栈顶
  2. LEFT-ARC:将栈顶词作为被支配词,和次栈顶词建立依存关系
  3. RIGHT-ARC:将次栈顶词作为被支配词,和栈顶词建立依存关系

优点

  • 速度快,线性复杂度 $O(n)$
  • 可训练出强大的模型

神经依存分析方法

神经方法就是把依存分析这事,交给一个能“自己学语法规律”的神经网络模型去做。

流程

  1. 每个词变向量:把句子中的每个词表示成词向量。
  2. 编码上下文:使用神经网络提取整个句子的上下文信息。
  3. 预测结构:根据编码结果,去预测每对词之间的依存关系。

基于图的方法

流程

  • 计算每个单词的每个可能的依赖关系(中心词的选择)的分数
  • 使用全局评分函数(可结合神经网络对边进行评分)
  • 使用最大生成树算法