Beginnings of our Chatbot Development
Documentation and Finding Answers in Files, Work with Document Templates and Slang
Please select your cookie preferences before getting in touch
Thank you for reaching out to Sigma Software!
Please fill the form below. Our team will contact you shortly.
Sigma Software has offices in multiple locations in Europe, Northern America, Asia and Latin America.
USA
Sweden
Germany
Canada
Israel
Singapore
UAE
Australia
Austria
Ukraine
Poland
Argentina
Brazil
Bulgaria
Colombia
Czech Republic
Hungary
Mexico
Portugal
Hi, I am Nazar Grycshuk. Recently I took an interest in everything that has to do with Data Science. Actually, it was this interest that made me involve in the project of a chatbot development, which I am going to talk about here. My article will touch upon such things as methods for collecting data to be used in the bot database, choosing a framework, working with agents, the language issue, and usage of slang words.
Beginnings of our Chatbot Development
Documentation and Finding Answers in Files, Work with Document Templates and Slang
But first, a few words about …
This year, the Chatbot Summit in Berlin gathered over 50 companies engaged in development of platforms and additional services necessary for chabots’ work. They can be divided into those, which can deploy on the client’s private servers, and those, which work exclusively in the cloud as SaaS solutions. Most companies have their own NLP engines to recognize intents and named entities, others can integrate with third-party services. As an additional functionality, some have an editor to build a dialog tree. They are also different as to the number of languages they support.
The event demonstrated a lot of examples of using chatbots for supporting users of large corporations. They have similar working practices: there is an existing support line, and the chatbot is trained to help in specific situations, for example, when there are issues with authorization to the corporate system. The bot listens to all incoming messages, and if it can answer, it answers. Over time, the number of questions the bot can answer keeps growing.
A lot was also said about Conversational Experience, but it is built upon a large number of rules. Generally, the tendency to use chatbots is more than positive. So, we have tapped into this tendency here in Sigma Software and created a bot named Sima.
Once I was invited to a meeting dedicated to improving the work of our HR Department and to possibilities of automating certain processes in order to reduce operting costs. One of the main activities that is very time-consuming and requires optimization is answering the same questions, which come from colleagues in a constant flow.
“Let’s create a chatbot and add it to our internal social network! How much time will it take?” I was asked.
“Several months, if we start with a small number of questions”, I replied.
It became clear very soon that development of a chatbot would not be really cost-effective, so I never expected this conversation to continue. However, only a couple of months later the work on developing the chatbot started. A few factors contributed to this.
First, we were at the same time developing virtual assistants for our customers and needed to test some ideas, which we could not test on external projects.
Second, it became clear that a chatbot does not only provide answers, but also a lot of convenience as it allows to collect statistics, which can later be used to:
So, we began the work in May 2018. And the first thing we tackled was making a detailed…
According to customer’s expectations, our Chabot had to:
If the readers have at least a little experience in creating chatbots, they’d say they would do this in two or three weeks.
Ok, so what questions should it answer? The most frequent ones are not a valid answer to base on when you are starting a project. You might have thought that:
Looking ahead, I must say, we did not find any genius solution for doing this. So we thought, “Let’s add up everything we have, get it launched and see what happens”.
However, we did implement one thing. We have a special portal for internal use where the company posts useful content like:
So, we wrote a small script to fish out all these questions from the portal’s text. There were about 300 of them and quite good ones. That was enough for a short testing set.
Nowadays, the market offers a lot of various services, for instance:
It’s not an easy task to make a choice. Before that, we had worked with such frameworks as Watson, Luis, Wit, Rasanlp. They are all rather good and have a number of both strong points and downsides. Your choice must consider all nuances of your project and your customers’ expectations. For example, many of our customers do not want to use any solutions that store data anywhere outside of their servers, so this is one of the questions to take into account when choosing a service.
After all, we decided to use Dialogflow for our chatbot. We did it for a number of reasons:
Having chosen Dialogflow, we wrote a few rules on how to make questions/answers, how to add them, and what it all has to look like. Later on, we asked the people who are responsible for different areas (HR, support, Finance, etc.), to come in themselves and add the questions that were, in their opinion, relevant and necessary to add.
To be honest, the whole idea was doubtful, because people first had to spend time reading the document, then figuring out how it worked, then drawing a list of questions and adding them to the system.
But as a result, it all worked out perfectly, because the immediate process owners:
Involving colleagues from different structures played an important role in supporting the bot right after the release, as they could easily enter the admin version and add all the questions that did not yet have an answer. Thanks to this, we had a powerful backup!
We provided the bot with the functionality to use various documents for finding answers to questions.
The company has about two thousand documents, which describe approaches to solving different tasks, to project management, career growth, project start, etc. There is a number of templates that people need to fill in, but are hard to find in the documents hierarchy, especially when you don’t know their exact names. We took this inconvenience into account and enabled the bot to return these templates when a user asks for them.
We have a dedicated R&D hub equipped to create proved and brand new AI solutions.
Some of these documents are written in English, others in Russian or Ukrainian. Requests for them may be in different languages too. There may be mistakes in requests. Besides, colleagues often use slang or jargon, English borrowings and abbreviations like ‘PM’, ‘skill matrix’, ‘roadmap,’ etc.
To guarantee the bot’s efficient work, we used multi-language representations of words in a vector space. It enabled the system to understand that the words ‘Manager,’ ‘Meneger,’ and their Cyrillic versions will mean more or less the same. It was followed with a bunch of modeling and improvements – but they are a story for another article.
Our chatbot is integrated with the corporate SharePoint and the internal social network. There users can ask questions, which go to the Rest service. This service, in turn, addresses Dialogflow to recognize details. If Dialogflow has an answer, the system sends it to the user. If it doesn’t have one, the bot looks for it in the files or sends a document template.
Each answer we are not sure about is followed by an automatic collection of user feedback, whether they were satisfied with the answers. If not, the answers are channeled to the responsible agent who, firstly, answers the question correctly, and secondly, adds the answer to the system or improves it. This way, the bot will be able to answer the same question correctly next time it is asked.
Everything that looks rather easy at first glance can lead to a number of pitfalls in the process of implementation.
Here are some tips and warnings for those who dream of creating their own chatbot:
Care for your users – make their life easier and help them in solving their problems!
Senior Software Developer with 6+ year experience in IT. Working in machine learning and data analysis with a focus on Natural Language Processing research and enterprise application on AI/ML. Active contributor to machine learning and data science competence development in Sigma Software and within Ukrainian Community.
Beginnings of our Chatbot Development
Documentation and Finding Answers in Files, Work with Document Templates and Slang
In today’s data-driven world, the ability to process and analyze data in real-time is crucial for businesses to stay competitive. At Sigma Software, we always s...
Medical imaging plays a vital role in today’s healthcare by providing critical information about the inner workings of the body. Historically, this field has re...
ADHD is a neurodevelopmental disorder that affects many people around the world and this includes symptoms such as inattention combined with hyperactivity and i...