A cross-platform chatbot based on MS Bot Framework, PyTorch and a fine-tuned BERT model, to demonstrate how to easily create complex dialogs and deploy it on Azure.
Test is on chatbot.joffreybvn.be, tell him that you want to book a hotel room!
- Advanced NLU (thanks to BERT) to understand custom intentions
- Strong entity and keywords matcher, to detect complex informations
- Flexible dialogs flow that adapt to user's responses
- Easy-to-interact on any platform, thanks to cards, buttons and more
The process of transforming and sanitizing a message in order to be able to classify it. The process of recognising and giving a label to a message.
The efficient implementation of our solution relies on a plethora of solid libraries:
Library | Used in | Detail |
---|---|---|
BeautifulSoup | Preprocessor.py | Preventing and removing tags and other HTML elements |
Unidecode | Preprocessor.py | Removing all accents |
SpaCy | Preprocessor.py | Lemmatize and detect numbers written in letters |
word2number | Preprocessor.py | Replace the numbers written in letters, into digits |
contractions | Preprocessor.py | Detecting and replacing contracted forms of language |
transformers | Classifier.py | Downloading and using BERT |
PyTorch | Classifier.py | Fine-tuning the model based on our dataset |
PolyFuzz | Classifier.py | With regex, to detect keywords and complex intentions |
All these libraries have been brought together with Microsoft's Bot Framework, a tool that allows us to publish this bot on all the following platforms:
As of today, the bot is available on:
- Skype: @demo_rasa_bot
- Telegram: @demo_rasa_bot
- Webpage: chatbot.joffreybvn.be
This project was completed in 5 days by two Machine Learning students from BeCode: