Just over a month ago I shared about the experience I had creating a chat bot and the feedback was astonishing. It was the motivation needed to publish some real code and get people who are interested in that field involved.
So today I’m very excited to announce SuperScript the project and website.
SuperScript is a dialog system and bot engine for creating human-like chat bots.
This milestone represents over five years of research in NLP (tagging, chunking, parsing, grammars, parts-of-speach classification, named entity extraction and recognition), Statistical Leaning, Question/Answer Systems (both REET and Expert Systems), Machine Learning and Classification, and Dialogue Systems. Not to mention re-learning grade 4 grammar, and grade 12 algebra.
The fruit of that research is spread over half a dozen Github repos, many sleepless nights and iterations of projects, both published and failed. This CommitStrip comic sums up the work nicely.
What /exactly/ is SuperScript?
SuperScript is a scripting syntax and bot engine designed to generate dialogue and conversation flow. You start by generating rules for the engine to consume and the bot will converse.
SuperScript is built using Node.js and is completely asynchronous. It is designed to works over HTTP/WebSocket or even API’s and Phone Systems like Asterisk.
It also supports multiple users and can carry out multiple conversations in parallel. It can reply to input provided like a Siri style personal assistant or reach out when conversations has gone stale.
You can also add scripted fact triples to better reason about real world knowledge. SuperScript has implemented a LevelGraph a graph database using LevelDB, each user in the system also gets their own subLevel database.
What SuperScript isn’t
SuperScript is not a magic box. It can not just make up a random reply based on the intent of the input or find the answer to a question randomly. It is not a Watson clone or API Service you can make a request too.
Having said that, there is a powerful plugin architecture that you can easily extend the core functionality and call out to third party services so anything is possible.
Future work
This developer preview is just a first tiny step in a much bigger more ambitious plan to make computer to human and human to computer communication ubiquitous but to get there requires time and money, so my focus is to improve the API and performance in the open and round out some key missing features.
“This call may be recorded for quality or training purposes.” The call could also be recorded so we can mine the dialogue and automate 80% of the flows freeing up valuable resources.
I have some great ideas for applying machine learning to tools for dialogue generation so if you work for a large call centre or have access to large conversational datasets we should talk.
Thanks for reading, follow me here on twitter or Github for updates.