句法分析的几种主要方法:
Deterministic parsing(specifically : Transition-based parsing)
Dynamic programming(specifically : Graph-based parsing)
Constraint satisfaction
这里主要介绍一下Transition-based parsing
首先他所采取的数据结构是一个栈和一个队列。
Data structure:
Stack [… , wi ]S of partially processed tokens
Queue [wj , …]Q of remaining input tokens
然后还定义了一些列action
Parsing actions built from atomic actions:
Shift
Reduce
这种方法的优点是
Efficiency
Simplicity
其操作流程就是,根据栈和队列的状态,每次执行一个action,然后根据这个action就能改变栈和队列的状态,再根据现在栈和队列的状态来选取下一个action。如此循环下去就会得到一棵句法树。
Transition-based Dependency Parsing
input : Sentence:w1w2w3…..wn
output : Dependency parsed tree (三元组)
比如下面的树就可以用这样的三元组表示;:
(I,subj,like)
(fish,dobj,eating)
……