next up previous
Next: Dialogue Management Up: Language Analysis Previous: Flat Utterance Descriptions

The Robust Parser

 

The main purpose of the Robust Parser is to rapidly produce some useful output even if parts of the input are unintelligible or garbled. We have deliberately aimed for a simplistic approach to be able to compare an atheoretical, shallow method with the high-precision but more resource-demanding and fragile processing carried out by the CLE. Also, experiences from multi-engine systems show that approaches such as these may complement each other well [Frederking and Nirenburg1994]. Given these objectives, a straightforward pattern-matching, slot-filling approach seemed most suitable.


Repeat until no words remain:

Read the next word.

If a matching pattern is found (possibly by looking ahead), then fill the corresponding slot and throw away the words corresponding to the pattern
else throw away the word.

Figure 2: Basic algorithm of the Robust Parser.


A first version of the parser with reasonable coverage was developed in about two person-weeks. Briefly, the parser works as follows: First, it looks for domain-dependent keywords and phrases and produces a list of filled slots as well as information about the utterance type (for example, a wh or yn question). The rules that guide this process are straightforwardly encoded in a Definite Clause Grammar. The result is then converted into a well-formed FUD. The parser is deterministic in the sense that only the first matching pattern is chosen; hence, only a single analysis is produced. (Interestingly, the fastest parsers reported in the literature are all deterministic, rule-based partial parsers [Abney1997, page 128].) The basic algorithm is shown in Figure 2 gif.



Mats Wiren
Mon Oct 25 13:51:54 MET DST 1999