Survey
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
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
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
Theme
theme
rheme
goal
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 =
actor =
object =
•
•
•
•
•
eat
John
apple
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)
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
Lexical
chooser
Lexicalized FD
Syntactic FD
SURGE
Linearizer
Morphology
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