210 likes | 238 Views
14. Understanding Natural Language. 14.0 The Natural Language Understanding Problem 14.1 Deconstructing Language: A Symbolic Analysis 14.2 Syntax 14.3 Syntax and Knowledge with ATN parsers. 14.4 Stochastic Tools for Language Analysis 14.5 Natural Language Applications
E N D
14 Understanding Natural Language 14.0 The Natural Language Understanding Problem 14.1 Deconstructing Language: A Symbolic Analysis 14.2 Syntax 14.3 Syntax and Knowledge with ATN parsers 14.4 Stochastic Tools for Language Analysis 14.5 Natural Language Applications 14.6 Epilogue and References 14.7 Exercises Additional source used in preparing the slides: Patrick H. Winston’s AI textbook, Addison Wesley, 1993.
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
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.
Dictionary entries - 1 like likes bite bites
Dictionary entries - 2 men man dogs dog
Dictionary entries - 3 a the
Sentence • function sentence-1; begin NOUN_PHRASE := structure returned by noun_phrase network; SENTENCE.SUBJECT := NOUN_PHRASE; end. noun_phrase verb_phrase init final 1 2
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. noun_phrase verb_phrase init final 1 2
Noun_phrase article noun • 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. init final 1 2 noun 3
Noun_phrase article noun • 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. init final 1 2 noun 3
Noun_phrase article noun • 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. init final 1 2 noun 3
Verb_phrase verb noun_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. init final 1 2 verb 3
Verb_phrase verb noun_phrase • function verb_phrase-2; begin NOUN_PHRASE := structure returned by noun_phrase network; VERB.PHRASE.OBJECT := NOUN_PHRASE; return VERB_PHRASE end. init final 1 2 verb 3
Verb_phrase verb noun_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. init final 1 2 verb 3
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