Chatbots, and how will Microsoft help us with this?


This overview article is devoted to the study of a trend which is growing rapidly in popularity in the IT industry — chatbots, and the role of Microsoft in their development process. The article will cover the history of chatbots, peculiar properties of bots, the main, and also some unexpected spheres of their application, perspectives and technology limits.


Generally, a chatbot is a program that can imitate a meaningful dialogue with the user via text or speech in the language known to the user. The goal of such a dialogue, is often to answer the user requests and execute bot commands. Not being something substantially new, chatbots however, are positioned in the marketplace as a sort of know-how activity. Of course, the fuss created around such bots as smart and often an indispensable assistant for the users, plays a huge role.

Chat bots won’t let you get bored while interacting with other users of Messenger, entertaining with a fresh joke or game; they can send the current weather forecast; help with ordering pizza; advise about healthy eating in response to a message about your weight and blood pressure; dialogue with you on legal services websites, simulating a real interlocutor; can ask you in a pleasant voice about your mood and, based on analysis of your response, select a musical composition on your smartphone; can easily cope with the role of a support service specialist of any service by e-mail. These are just a few small examples of what smart bots can do. There is also a separate group of corporate bots, solving important corporate tasks.

Like any new technology, chatbots are a logical development of the more familiar methods of communication with, and conveying of information to, an end-user: web sites, applications, push notifications, etc. This technology is attractive, first of all, due its end-user focus, integration into the final platform, ease of use, intellectualism, and friendliness.

Major IT players (primarily on the market of online communications) have already evaluated the potential and possible benefits of using chatbots in their solutions a long time ago. Bots in one form or another are used extensively in all popular messengers, Internet platforms, and mobile devices.

Microsoft is actively involved in the development, working in several directions: mobile assistant Cortana; not a very successful, but certainly an interesting experiment with a female bot. Tay on Twitter; a more successful experiment in China with a female bot Xiaoice (Sâois); bots for Skype; and finally, the Microsoft Bot Framework for creation and integration of its own bots into various platforms.

A little bit of history


The first chat-program is thought to be ELIZA, created in 1964 by a professor at the Massachusetts Institute of Technology by the name of Joseph Weizenbaum. The program tried to imitate the communication of a user with a psychotherapist, and often could confuse patients with astoundingly realistic behaviour and phrases like: «Would you like to talk about that?».

After that a lot of attempts were made to create similar virtual chatter, but all of them were very simple, and the person easily recognized that he was dealing with a machine.

The term ‘chatbot’ was supposedly introduced by a developer Michael Molding, who created Julia in 1994 — a programme for communication, and he called it a chatbot. The program wasn’t a very sophisticated one, but nevertheless, it was able to carry out a more or less meaningful talk, and had a self — learning function.

In the late 1990’s and early 2000’s, simple chatbots were actively used, for example, in IRC and IM-programs, to make the dialogues more lively, and to moderate chats. And, of course, enthusiasts and researchers from all over the world have never given up on the idea of creating a truly ‘smart’ program to carry out a meaningful dialogue with users.

All this, as well as the natural evolution of technology, has led to significant progress in the area of creating intelligent chatbots. A chat program has already been created, which was able to pass the Turing test. On the 8 June 2014 at one of the events organized by the Redding British University, a program created in Saint-Petersburg successfully imitated communication with a real person and managed to mislead some of the examiners.

At the same time, the DeepQA program, which is based on the IBM Watson supercomputer, is able to process incoming commands in natural language. The technology ‘Nuance Communications’, which was used for it, was also implemented in the development of Siri, which works on Apple devices.

Modern chatbots have reached heights that were completely impossible for pioneer programs like ELIZA. They use up-to-date research in the sphere of natural language analysis, have advanced algorithms of artificial intelligence, and are able to educate themselves.

More read:



    Ropes — Fast Strings

    Most of us work with strings one way or another. There’s no way to avoid them — when writing code, you’re doomed to concatinate strings every day, split them into parts and access certain characters by index. We are used to the fact that strings are fixed-length arrays of characters, which leads to certain limitations when working with them. For instance, we cannot quickly concatenate two strings. To do this, we will at first need to allocate the required amount of memory, and then copy there the data from the concatenated strings.