ChatScript has a very strong pattern-matcher, but it still requires the bot author to manually devise sophisticated patterns to match users’ intentions.
I would like to offer an alternative, which I now use in a private bot, and looks very promising - use a statistical text categorizer.
In the training phase, the author should create several sentences that either belong or not-belong to a certain subject (i.e. “movies”, “pets”, etc.).
Then, he/she uses a classifier, such as SVM-Perf or another open-source classifier. The classifier creates a model for each subject.
Then, given an input sentence, the program can use the model for each subject on the input sentence, find the subject with the best fit, and act accordingly. For example, if the subject is “pets”, say something about pets / change the topic to pets / etc.
The sentences for training can be collected from actual user input, so it can be much easier than writing patterns.
I wonder if and how this could be incorporated into ChatScript?