AI Zone Admin Forum Add your forum
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:

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  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 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.


  login or register to react