Title: Advanced TuTalk Dialogue Agents
1Advanced TuTalk Dialogue Agents
- Pamela Jordan
- University of Pittsburgh
- Learning Research and Development Center
2Agenda
- Introducing the TuTalk dialogue system server
- System architecture (briefly)
- Web interface to server for
- Fielding experiments
- Analyzing experiments
- For uploading sc and xml directly to dialogue
system server - Introduce additional authoring features
- Enabling and controlling automated feedback
- Optional steps (sc only)
- Looping (sc only)
3Architecture of TuTalk Dialogue System
- Hub spokes architecture
- Main modules
- Coordinator
- Language recognition
- Language generation
- Dialogue manager
- Dialogue History database
4Language recognition
- Refers to labelled sets of alternative phrasings
called concepts - Inputs from dialogue manager
- normalized sentence,
- set of expected response concepts
- Computes minimum edit distance, number of adds
and deletes of words needed to match input
language to a concept - Returns expected response concept with smallest
minimum edit distance that falls within a
threshold
5Language generation
- Refers to labelled sets of alternative phrasings
called concepts - Input from dialogue manager a concept
- If gt 1 alternative phrasing, removes one last
used according to dialogue history - Randomly selects from remaining alternative
phrasings - Requests output of selected phrasing to student
6Integrating TuTalk
- Can integrate (embed/wrap) other modules
- ProPL
- Cordillera
- Hub spokes architecture
- Replaceable modules e.g., NLU
7Replaceable language modules
- Replace
- Use a human (1 experiment)
- Use another approach
- Supplement Human reviews and corrects choices
made by recognition module (1 experiment)
8Experiment management/analysis
- Experiment management tools http//pyrenees.lrdc.
pitt.edu/tutalk/cgi-bin/admin.cgi - One scenario/script one dialogue agent one
condition, but can organize in other ways - One agent per unit
- One agent that tells all knowledge components vs.
one that elicits vs. one that uses a strategy to
decide which to do - Condition management
- Start on server and leave it running
- Designate who is allowed in the condition
- SQL database of information collected during
interaction - Can download or query
- Working on producing DataShop format
9Setting up a scenario
10SQL database access
11SQL database access
12Requesting a transcript
13Transcript for a student
14Additional authoring features
- Automated turn transitions/feedback
- Must specify truth-values for responses in
context of an initiation - Default truth-value is unknown
- Override automated turn transitions/feedbacks
with a say - Optional steps
- Skip if specified condition met in recent
dialogue history - Looping
- Repeat the template for a goal until a condition
is met - Globally set condition once set
15Script w/ truth-val in sc
g select-appetizer say enthuse_about_appetizers
say ask_share_appetizer if
agree_to_share_appetizer if skip_appetizer
true do abort ask-soup else do
abort lose-temper do agree-on-appetizer
16Automatically generated response feedback
- say feature in authoring tool overrides
automatic feedback - say following a response in sc overrides
automatic feedback - Can globally enable/disable in xml configuration
section (default is enabled)
17Script w/ auto feedback override in sc
g select-appetizer say enthuse_about_appetizers
say ask_share_appetizer if
agree_to_share_appetizer if skip_appetizer
true say Okay, in that case I wont get an
appetizer. do abort ask-soup else
do abort lose-temper do agree-on-appetizer
18Authoring response feedback (1)
19Authoring response feedback (2)
20Additional authoring features
- Automated turn transitions/feedback
- Must specify truth-values for responses in
context of an initiation - Default truth-value is unknown
- Override automated turn transitions/feedbacks
with a say - Optional steps
- Skip if specified condition met in recent
dialogue history - Looping
- Repeat the template for a goal until a condition
is met - Globally set condition once set
21Optional Steps
gravitational,
runners
ltanything elsegt
not said
said
22Example of optional steps
T what horizontal forces are acting on it
while she is pushing it? S Gravity? T In what
direction does gravity act? . T So are
there any other forces on the ball? S no T What
about the runner? . T Okay. After the push
ends, what forces
subdialogue
T what horizontal forces are acting on it
while she is pushing it? S The runners T
Right! So are there any other forces on the
ball? S no T Good. After the push ends, what
forces
23Script with an optional step and semantic labels
in sc
- g ask-appetizer
- say enthuse-about-appetizers opt sem
enthuse-about-appetizers - say ask-appetizer
- if skip-appetizer sem skip-appetizer-order do
abort soup - if no do abort soup
- else do lose-temper
- do order-appetizer
24Additional authoring features
- Automated turn transitions/feedback
- Must specify truth-values for responses in
context of an initiation - Default truth-value is unknown
- Override automated turn transitions/feedbacks
with a say - Optional steps
- Skip if specified condition met in recent
dialogue history - Looping
- Repeat the template for a goal until a condition
is met - Globally set condition once set
25Looping for a dialogue
- Continuous loop on a template repeat template
until all indicated components covered - T Okay, great. What should we work on now?
- S Add a loop
- T Thats right. We will have to add a loop.
Lets figure out why. What made you think of
using a loop? - S .
- .
- T Okay. What should we work on now?
- .
- .
- T So, with that were finished with this
problem. - (example based on Lane 04)
26Script with a loop and semantic labels in sc
g start do 76 do 36 do 163 do 58 g 76
loop finished76 say the-first-problem-will-take-
about do prob76 say the-next-problem-will-take
-about-3 sem finished76 if yes else do
logout-msg
27Configuration section in sc format
config global version "Revision 1.75 "
default-language en We use several proper
nouns in the scenario, so we declare them here,
and provide morphological info so
en-normalizer.py wont spell-correct them. A
different normalizer will probably require (and
hopefully document) a different format. config
normalizer lexicon-supplement "Pythonen spri
ngfield n-springfield-, chicago n-chicago-,
ontario n-ontario-, illinois n-illinois-,
superior n-superior-, huron n-huron-, erie
n-erie-, michigan n-michigan-, ontario
n-ontario- "