1 Understanding Natural Language The Natural Language Understanding Problem 14.1Deconstructing Language: A Symbolic Analysis 14.2Syntax 14.3Syntax and Knowledge with ATN parsers 14.4Stochastic Tools for Language Analysis 14.5Natural Language Applications 14.6Epilogue and References 14.7Exercises Additional source used in preparing the slides: Patrick H. Winston’s AI textbook, Addison Wesley, 1993.
2 Alternative to CSGs Retain simple structure of CFGs Augment them with procedures that perform the necessary contextual tests Attach features to terminals and nonterminals: augmented transition networks
3 Parsing with ATNs Attach procedures to the arcs of the network. The parser will execute those procedures while traversing the arcs. The procedures: Perform tests Construct a parse tree Both terminals and nonterminals are represented as identifiers with attached features.
4 Frames for three nonterminals Sentence Noun phrase: Verb phrase: Verb phrase Verb: Number: Object: Noun phrase Determiner: Noun: Number:
5 Dictionary entries - 1 PART_OF_SPEECH: verb ROOT: like NUMBER: plural like PART_OF_SPEECH: verb ROOT: like NUMBER: singular PART_OF_SPEECH: verb ROOT: bite NUMBER: plural PART_OF_SPEECH: verb ROOT: bite NUMBER: singular bitebites likes
6 Dictionary entries - 2 PART_OF_SPEECH: noun ROOT: man NUMBER: plural men PART_OF_SPEECH: noun ROOT: man NUMBER: singular PART_OF_SPEECH: noun ROOT: dog NUMBER: plural PART_OF_SPEECH: noun ROOT: dog NUMBER: singular dogsdog man
7 Dictionary entries - 3 PART_OF_SPEECH: article ROOT: a NUMBER: singular a PART_OF_SPEECH: article ROOT: the NUMBER: plural or singular the
8 Sentence function sentence-1; begin NOUN_PHRASE := structure returned by noun_phrase network; SENTENCE.SUBJECT := NOUN_PHRASE; end. initfinal noun_phrase verb_phrase 12
9 Sentence function sentence-2; begin VERB_PHRASE := structure returned by verb_phrase network; if NOUN_PHRASE.NUMBER = VERB_PHRASE.number then begin SENTENCE.VERB_PHRASE := VERB_PHRASE; return SENTENCE end else fail end. initfinal noun_phrase verb_phrase 12
10 Noun_phrase function noun_phrase-1; begin ARTICLE := definition frame for next word of input; if ARTICLE.PART_OF_SPEECH = article then NOUN_PHRASE.DETERMINER := ARTICLE else fail end. initfinal article noun 12 3
11 Noun_phrase function noun_phrase-2; begin NOUN := definition frame for next word of input; if NOUN.PART_OF_SPEECH = noun and NOUN.NUMBER agrees with NOUN_PHRASE.DETERMINER.NUMBER then begin NOUN_PHRASE.NOUN := NOUN NOUN_PHRASE.NUMBER := NOUN.NUMBER return NOUN_PHRASE end else fail end. initfinal article noun 12 3
12 Noun_phrase function noun_phrase-3; begin NOUN := definition frame for next word of input; if NOUN.PART_OF_SPEECH = noun then begin NOUN_PHRASE.DETERMINER := unspecified NOUN_PHRASE.NOUN := NOUN NOUN_PHRASE.NUMBER := NOUN.NUMBER end else fail end. initfinal article noun 12 3
13 Verb_phrase function verb_phrase-1; begin VERB := definition frame for next word of input; if VERB.PART_OF_SPEECH = verb then begin VERB_PHRASE.VERB := VERB; VERB_PHRASE.NUMBER := VERB.NUMBER end; end. initfinal verb noun_phrase 12 3 verb
14 Verb_phrase function verb_phrase-2; begin NOUN_PHRASE := structure returned by noun_phrase network; VERB.PHRASE.OBJECT := NOUN_PHRASE; return VERB_PHRASE end. initfinal verb noun_phrase 12 3 verb
15 Verb_phrase function verb_phrase-3; begin VERB := definition frame for next word of input; if VERB.PART_OF_SPEECH = verb then begin VERB_PHRASE.VERB := VERB; VERB_PHRASE.NUMBER := VERB.NUMBER VERB_PHRASE.OBJECT := unspecified; return VERB_PHRASE end; end. initfinal verb noun_phrase 12 3 verb
16 “The dog likes a man.”
17 Knowledge base for the “dogs world.”
18 Case frames for two verbs
19 Semantic representation
20 Concluding remarks The parse tree can be converted to a conceptual graph that represents the meaning of the sentence. Simpler approaches use templates and plug in words as they are recognized. Applications include: Story understanding and question answering Front End to a database Information extraction and summarization on the web