AI Zone Admin Forum Add your forum

NEWS: Chatbots.org survey on 3000 US and UK consumers shows it is time for chatbot integration in customer service!read more..

Simplify ChatScript Script structure by separating NLU, DST, Policy, and NLG for task-oriented Chatbot
 
 

Hi everyone,

We are developing a task-oriented chat bot to help people do something, such as, send message, check weather, buy flight ticket.

We hope that our system could understand the intent of the user and the keywords (slot) in user’s utterance through multi-round dialogue. At each round, the system collects different information, called slot-filling.

As the chatscript organizes all component in just one topic file. I want to separate different function into different topic files. For example, the main modules (NLU、DST、Policy、NLG) are executed in different topic files (Just as slot-filling based task-oriented system).

How to do NLU (natural understanding), DST (state tracking), policy (or DM)、NLU (language generation) in different topic files?

(Maybe here is a solution, but in Chinese, one can read it using google translate: http://sentiment-mining.blogspot.com/2017/03/chatscript.html)

Is that possible, and how?

Thanks very much.

 

 
  [ # 1 ]

Not sure what you are saying. You can have as many topic files as you want in as many folders as you want. The default standard Harry bot itself comes in 4 top files.

 

 
  [ # 2 ]

You can have different topic files for each.  The thing to understand with Chatscript is the way that the topic files are processed is also a topic file that you can create.  Or you can modify the one provided called simplecontrol.top.  In this file you can determine the order and how you process each of the topic files such as NLU, DST, DM, and NLG.  The flow of the processing is not hardcoded in the engine.  For instance you would modify the simplecontrol.top to process multiple sentences at once instead of the default of one sentence at a time.  You would want to create your own control file to process user input through the 4 different phases you are suggesting.  For example your topics might generate canonical or semantic replies where the results would be processed last by your nlg topic where they could be transformed into natural sounding responses.  Also, to clarify you could have one control topic file that uses the four topic files you suggest and each of those could use ten topic files each for a total of 44 topic files organized by functions, themes, etc.  You could divide your nlu module into 10 topic files if you needed to with the main nlu topic controlling the processing ot the other 10.  There is no topic file limit.

 

 
  [ # 3 ]

Thanks Alaric Schenck. Your advice inspires me a lot. Now, I need to learn how to write my own control files.

 

 
  [ # 4 ]

Hi He

How to do NLU (natural understanding), DST (state tracking), policy (or DM)、NLU (language generation) in different topic files?

—Topics == dialog flows


A key-concept in in CS is exactly the fact you can logically group dialog flows in multiple topics (on file can contains multiple topics)

—The “slot-filling”

the API.ai way ... is easily done in CS with (permanent) variables setting (where variable could be a simple value $variable or maybe containing complex JSON data structures to be processed by an external backend subsystem with an HTTP call)

Here our “slot-filling” smile :

#
    # e-commerce order checkout rule (just a gift!)
    #
    
u: ( $shoppingcart_fulfilled $profiledata_ok $address_fullfilled $payment_done)
        
        ^
send_order($order


—how to a “sequential-workflow” 

There is probably not the need to reworking on CS standard control script.

For example, the main modules (NLU、DST、Policy、NLG) are executed in different topic files (Just as slot-filling based task-oriented system).

All these task-oriented steps are realized in CS programming, with dialog-flows (realized with “sequences” of rules, inter/intra topics.

(Maybe here is a solution, but in Chinese, one can read it using google translate: http://sentiment-mining.blogspot.com/2017/03/chatscript.html)

Interesting code. Anyone could help to translate from Chinese ?

 

 

 
  login or register to react