260 likes | 328 Views
EECS 595 / LING 541 / SI 661. Natural Language Processing. Fall 2004 Lecture Notes #6. Natural Language Generation. What is NLG?. Mapping meaning to text Stages: Content selection Lexical selection Sentence structure: aggregation, referring expressions Discourse structure.
E N D
EECS 595 / LING 541 / SI 661 Natural Language Processing Fall 2004 Lecture Notes #6
What is NLG? • Mapping meaning to text • Stages: • Content selection • Lexical selection • Sentence structure: aggregation, referring expressions • Discourse structure
Systemic grammars • Language is viewed as a resource for expressing meaning in context (Halliday, 1985) • Layers: mood, transitivity, theme
Example (:process save-1:actor system-1:goal document-1:speechact assertion:tense future ) Input is underspecified
The Functional Unification Formalism (FUF) • Based on Kay’s (83) formalism • partial information, declarative, uniform, compact • same framework used for all stages: syntactic realization, lexicalization, and text planning
Functional analysis • Functional vs. structured analysis • “John eats an apple” • actor (John), affected (apple), process (eat) • NP VP NP • suitable for generation
Partial vs. complete specification action = eat • Voice: An apple is eaten by John • Tense: John ate an apple • Mode: Did John ear an apple? • Modality: John must eat an apple • prolog: p(X,b,c) actor = John object = apple
Unification • Target sentence • input FD • grammar • unification process • linearization process
Sample input ((cat s) (prot ((n ((lex john))))) (verb ((v ((lex like))))) (goal ((n ((lex mary))))))
Sample grammar ((alt top (((cat s) (prot ((cat np))) (goal ((cat np))) (verb ((cat vp) (number {prot number}))) (pattern (prot verb goal))) ((cat np) (n ((cat noun) (number {^ ^ number}))) (alt (((proper yes) (pattern (n))) ((proper no) (pattern (det n)) (det ((cat article) (lex “the”))))))) ((cat vp) (pattern (v)) (v ((cat verb))))((cat noun)) ((cat verb)) ((cat article)))))
Sample output ((cat s) (goal ((cat np) (n ((cat noun) (lex mary) (number {goal number}))) (pattern (n)) (proper yes))) (pattern (prot verb goal)) (prot ((cat np) (n ((cat noun) (lex john) (number {verb number}))) (number {verb number}) (pattern (n)) (proper yes))) (verb ((cat vp) (pattern (v)) (v ((cat verb) (lex like))))))
Comparison with Prolog • Similarities: • both have unification at the core • Prolog program = FUF grammar • Prolog query = FUF input • Differences: • Prolog: first order term unification • FUF: arbitrarily rooted directed graphs are unified
The SURGE grammar • Syntactic realization front-end • variable level of abstraction • 5600 branches and 1600 alts Lexicalized FD Syntactic FD LinearizerMorphology Lexicalchooser SURGE Text
Systems developed using FUF/SURGE • COMET • MAGIC • ZEDDOC • PLANDOC • FLOWDOC • SUMMONS
CFUF • Fast implementation by Mark Kharitonov (C++) • Up to 100 times faster than Lisp/FUF • Speedup higher for larger inputs
References • Cole, Mariani, Uszkoreit, Zaenen, Zue (eds.) Survey of the State of the Art in Human Language Technology, 1995 • Elhadad, Using Argumentation to Control Lexical Choice: A Functional Unification Implementation, 1993 • Elhadad, FUF: the Universal Unifier, User Manual, 1993 • Elhadad and Robin, SURGE: a Comprehensive Plug-in Syntactic Realization Component for Text Generation, 1999 • Kharitonov, CFUF: A Fast Interpreter for the Functional Unification Formalism, 1999 • Radev, Language Reuse and Regeneration: Generating Natural Language Summaries from Multiple On-Line Sources, Department of Computer Science, Columbia University, October 1998
Path notation • You can view a FD as a tree • To specify features, you can use a path • {feature feature … feature} value • e.g. {prot number} • You can also use relative paths • {^ number} value => the feature number for the current node • {^ ^ number} value => the feature number for the node above the current node
Sample grammar ((alt top (((cat s) (prot ((cat np))) (goal ((cat np))) (verb ((cat vp) (number {prot number}))) (pattern (prot verb goal))) ((cat np) (n ((cat noun) (number {^ ^ number}))) (alt (((proper yes) (pattern (n))) ((proper no) (pattern (det n)) (det ((cat article) (lex “the”))))))) ((cat vp) (pattern (v)) (v ((cat verb))))((cat noun)) ((cat verb)) ((cat article)))))
Readings for next time • J&M Chapters 14, 15, 20