因为课题的关系最近一直在学习关于数据驱动(Data Driven)的依存句法分析方法,目前已经有了一些初步的了解,在这里做一个简单的总结,主要介绍数据驱动的句法分析方法有哪些,并且给出了一些参考资料。而关于各种方法间的比较以及详细介绍会在后续的文章中进行更新。
句法分析按照语法体系的不同可以分为短语句法(Phrase Based)分析和依存句法(Dependency Based)分析。而这两种句法分析都有两种方法,一种是基于规则的,另外就是基于统计的。由于统计方法的兴起,而且实践也证明了统计方法能取得不错的效果,现在主流的方法都是基于统计的。统计方法的依存句法分析就被大家称为数据驱动的依存句法分析。
数据驱动的依存句法分析方法主要可以分为两种,一种是基于图的方法(Graph Based),一种是基于决策(Transition Based)的方法。基于图的方法的句法分析算法主要有自顶向下(Top Down),自底向上(Bottom Up),最大生成树(Spanning Tree)的方法。决策式的依存句法分析算法主要有基于栈(Stack Based)的和基于列表(List Based)的。其中基于栈的又分为arc-standard算法和arc-eager算法,基于列表的算法有投射(projective)的和非投射(non-projective)的。当然除了这些方法外还有一些其他的方法,例如将两种主要方法进行融合的。
目前我主要关注的是决策式的依存句法分析,并且在实现一个简单的依存句法分析器。所以这里可以给出一些参考资料,关于决策式依存句法分析的算法以及一篇综述性文章:
1.Algorithms for Deterministic Incremental Dependency Parsing. Joakim Nivre, 2007;
2.数据驱动的依存句法分析方法研究。 李正华,2013;
3.A Dynamic Oracle for Arc-Eager Dependency Parsing. Yoav Goldberg, Joakim Nivre, 2012;