fall 2004 lecture notes #6
DESCRIPTION
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. - PowerPoint PPT PresentationTRANSCRIPT
Fall 2004
Lecture Notes #6
EECS 595 / LING 541 / SI 661
Natural Language Processing
Natural Language Generation
What is NLG?
• Mapping meaning to text
• Stages:– Content selection– Lexical selection– Sentence structure: aggregation, referring
expressions– Discourse structure
Acrobat Document
Systemic grammars
• Language is viewed as a resource for expressing meaning in context (Halliday, 1985)
• Layers: mood, transitivity, theme
The system will save the document
Mood subject finite predicator object
Transitivity actor process goal
Theme theme rheme
Acrobat Document
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
• 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)
action = eat
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
Lexicalchooser
SURGELinearizerMorphology
Lexicalized FD Syntactic FD
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)))))
Unification Example
Unify Prot
Unify Goal
Unify vp
Unify verb
Finish
Readings for next time
• J&M Chapters 14, 15, 20