Left Corner Transforms and Finite State Approximations
Mark S. Johnson · 1996
This paper describes methods for approximating context-free grammars with finite state machines. Unlike the method derived from the LR(k) parsing algorithm described in Pereira and Wright (1991), these methods use grammar transformations based on the left-corner grammar transform (Rosenkrantz and Lewis II, 1970; Aho and Ullman, 1972). One advantage of the left corner methods is that they generalize straightforwardly to complex feature "unification based" grammars, unlike the LR(k) based approach. Left-corner based techniques are natural for this kind of application because (with a simple optimization) they can parse pure left-branching or pure rightbranching structures with a stack depth of one (two if terminals are pushed and popped from the stack). Higher stack depth occurs with center-embedded structures, which humans find difficult to comprehend. This suggests that we may get a finite-state approximation to human performance by simply imposing a stack depth bound, and ignoring any parses which require stack depths greater than this bound. We provide a simple tree-geometric description of the configurations that cause an increase in a left corner parser's stack depth below. We also take this opportunity to point out some simple extensions of this technique, which can capture using pure grammar transform techniques a range of parsing strategies similiar to the generalized left-corner parsing strategies (Demers, 1977; Nijholt, 1980). Finally, this paper discusses methods for using these finite state approximations in actual parsing applications, showing how the finite state machine can be used as an oracle to guide a left corner parser (and hence recover the tree structure) and how to construct a transducer that produces partial brackettings.