依存句法分析
什么是依存句法分析
- 依存句法分析是一种分析一个句子中单词与单词之间的语法关系,并将其表示为树形结构的任务。
- 核心是分析句子中词语之间的依存关系
依存树的结构
- 形式上是一个有向无环图(DAG),通常是单一根结构的树
- 每个单词除了根节点,最多只有一个head
- 通常附带依存标签说明关系类型
- 依存句法认为“谓语”中的动词是一个句子的中心,其他成分与动词直接或间接地产生联系。
依存句法分析的方法
基于转移的依存分析
核心思想:将句子分析过程视为一系列状态转移
使用数据结构:栈(stack)+ 缓冲区(buffer)+ 依存弧(arcs)
操作
- SHIFT:将词从缓冲区移动到栈顶
- LEFT-ARC:将栈顶词作为被支配词,和次栈顶词建立依存关系
- RIGHT-ARC:将次栈顶词作为被支配词,和栈顶词建立依存关系
优点
- 速度快,线性复杂度 $O(n)$
- 可训练出强大的模型
神经依存分析方法
神经方法就是把依存分析这事,交给一个能“自己学语法规律”的神经网络模型去做。
流程
- 每个词变向量:把句子中的每个词表示成词向量。
- 编码上下文:使用神经网络提取整个句子的上下文信息。
- 预测结构:根据编码结果,去预测每对词之间的依存关系。
基于图的方法
流程
- 计算每个单词的每个可能的依赖关系(中心词的选择)的分数
- 使用全局评分函数(可结合神经网络对边进行评分)
- 使用最大生成树算法
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Whales の sky 💭💡🎈!