Multilingual Virtual Assistants – case study
The Multilingual Virtual Assistant platform allows machines to support your brand and clients with delivering individualized informations and allows your brand to utilize the potential for cross-selling and up-selling.
Multilingual Virtual Assistant gives your customers instant service while delivering impressive business results.
Helping a retail company conduct business.
FROM PROBLEMS TO SOLUTIONS
PROBLEM (A): Handling FAQs
One of the problems we noticed was to properly handle FAQs. As there is no standard for those kind of things, we needed to build a tool that can allow us to scrap and convert those data to the unified structures that can be used further.
SOLUTION (A): Handling FAQs
We have built a scraper using Python to collect all the data from our client’s knowledge base and convert it to structured objects with proper labels. At the cost of a small lookup work on the very beginning, we were able to make a separate containers with questions and answers databases. During the development stage, we used Apache Cassandra, but most of the database systems can fit.
RESULTS (A): Handling FAQs
Current system contains all the frequently asked questions and answers. Now we can think of delivering proper informations to the end-user. As always we delivered perfectly tailored system to our clients.
PROBLEM (B): Internationalization and localization
The challenge here was to implement a proper API to handle data flow using different languages. How to deliver proper informations from one language to another one faster than the blink of an eye?
SOLUTION (B): Internationalization and localization
We have built that app with localization in mind. The solution was structured to support localized content, but how to deal with content in multiple languages? Especially, when you have a question in language A, but the answer do only exist in language B. How to deal with the translations?
Although we decided to start with all the questions and answers translated to few popular languages using an external translation service, we do implemented a subsystem that takes care of Neural Machine Translation to take care of translations in the future.
We also implemented a system of word tokens, that allows us to take care of the word meaning and the context, avoiding thinking about the specific language itself.
RESULTS (B): Internationalization and localization
By implementing this kind of internationalization and localization, we are able now to deliver all the answers to the end-user questions in his/her language. It is very useful, as some of the questions exist mostly in specific group of languages.
PROBLEM (C): Text + voice compatibility
The problem there was to allow the end-user to interact with our assistant not only using text, but also using voice. Everything also as always had to be fast, intuitive and bulletproof.
SOLUTION (C): Text + voice compatibility
We have built a custom speech-to-text and text-to-speech solutions for development purposes, but as our client has a really good relationship with Google and extensively uses their cloud for computation, we decided to check whether the Google APIs such as Cloud Speech API, Cloud Natural Language API and Cloud Translation API can deliver acceptable quality of responses, as well as to check the relevant APIs from Amazon and Microsoft. As always, we combined our client’s needs with our knowledge to create an outstanding app.
RESULTS (C): Text + voice compatibility
After few days of testing and benchmarking of various options, we decided to go with our own pre-processing and Google Cloud services. This combination gave us a lot of flexibility in the context of scalability.
PROBLEM (D): Traditional bots try to answer questions they should not
One problem we noticed was that traditional bots are trying to answer all the questions, even the ones they should not. How to preserve them from doing this?
SOLUTION (D): Traditional bots try to answer questions they should not
Traditional bots are not utilizing the power of Machine Learning and Natural Language Processing to check whether the message they receive is a question or not. That leads to worse end-user experience, and worse user experience means less and less clients. We decided to go one step forward and implement properly working message summarization with type classification on top of TensorFlow, NLTK, Apache Spark and Apache Kafka.
RESULTS (D): Traditional bots try to answer questions they should not
We are actually much happier when we think about conversations with our Assistant. The conversation is really smooth and it looks much more like between two humans. It gives much better end-user experience, for whom the whole interaction is more natural. Happy customers will always come back.