Com s'utilitza DeepPavlov per dir "Hola món!" - Bot creat en 4 passos

DeepPavlov és un marc de conversa d’intel·ligència artificial que conté tots els components necessaris per crear chatbots. DeepPavlov es basa en els frameworks de codi obert TensorFlow i Keras per a l’aprenentatge automàtic. És gratuït i fàcil d’utilitzar. Aquest és el primer d'una sèrie d'articles sobre el marc DeepPavlov de processament del llenguatge natural (PNL). Mostra com crear un chatbot amb reconeixement de patrons mitjançant el nostre framework.

introducció

Un chatbot és un sistema d’IA conversacional que pot comunicar-se amb un ésser humà en un llenguatge natural. Es pot integrar amb llocs web, plataformes de missatgeria i dispositius. La vostra empresa pot delegar tasques rutinàries a un xatbot que pot gestionar diverses sol·licituds d'usuari alhora. A diferència dels humans, els chatbots sempre estan disponibles per ajudar-vos i generar enormes estalvis en costos de personal. A més, a la gent li encanta explorar les habilitats del chatbot i provar alguna cosa nova.

En el passat, els chatbots es podien dividir en dos grans grups: basats en regles i basats en dades. Els chatbots basats en regles es basen en comandes i plantilles predefinides. Cadascuna d’aquestes ordres hauria de ser escrita per un desenvolupador de chatbot mitjançant expressions regulars i anàlisi de dades de text. En canvi, els chatbots basats en dades es basen en models d’aprenentatge automàtic que s’han format prèviament sobre dades de diàleg.

Si voleu crear el vostre primer chatbot, el problema més difícil és com començar. Quines són les parts principals del bot? Com es poden construir i fer treballar junts? Podeu trobar respostes a aquestes preguntes en aquest article.

Per simplificar les coses, comencem pels elements més bàsics d’un diàleg. En primer lloc, el chatbot ha d’entendre els enunciats en un llenguatge natural. El mòdul NLU (Natural Language Understanding) tradueix una consulta de l'usuari des del llenguatge natural a una representació semàntica etiquetada. Per exemple, la declaració "Configureu una alarma a les 8 del matí" es tradueix a un formulari comprensible per màquina, com ara set_alarm (8 del matí). Aleshores, el robot ha de decidir què s'espera d'ell. El gestor de diàleg fa un seguiment de l'estat del diàleg i decideix què s'ha de respondre per a l'usuari. A la fase final, el Natural Language Generator (NLG) tradueix una representació semàntica al llenguatge humà. Per exemple, rent_price (Atlanta) = 3000 USD significa: "El preu mitjà del lloguer a Atlanta és de 3.000 USD". La figura següent mostra una arquitectura típica del sistema de diàleg.

Figura 1. Arquitectura del sistema de diàleg

Ara ja coneixeu prou teoria per implementar un chatbot de nivell introductori mitjançant el framework DeepPavlov de codi obert. Podeu trobar el codi de l'article a la llibreta Colab.

DeepPavlov: 1a tirada

Potser el millor exemple d'un nou descobriment de marc de programació és l'exemple "Hello World!". El nostre HelloBot pot reconèixer un missatge de benvinguda i dir "Hola món!" Respon. Quan rep un missatge d’acomiadament, respon amb un dels missatges d’acomiadament predefinits. En cas contrari, apareix el missatge "No ho entenc, ho sento".

Abans d’entrar al codi, és una bona idea explicar en general com funciona DeepPavlov. Totes les classes relacionades amb les habilitats se solen assignar a tasques de diàleg i resoldre una sola tasca de PNL. L’agent consta de diverses habilitats i pot canviar entre elles. Pot ser un sistema de diàleg que inclogui un ventall de funcions orientades i chatbot i que seleccioni quina utilitzar per generar la resposta en funció de l'entrada de l'usuari. El gestor d’habilitats realitza una selecció d’habilitats per generar una resposta, tal com es mostra en l’esquema següent.

Figura 2. Arquitectura de l'agent

Pas 1

Podeu instal·lar DeepPavlov localment amb pip install deeppavlov o podeu jugar amb el codi HelloBot a Colaboratory des de l’enllaç.

pas 2

Importeu tots els paquets principals.

pas 3

A continuació, creeu habilitats amb patrons adequats i respostes predefinides.

Pas 4

L’agent realitza habilitats i en rep les respostes més fiables.

Bàsicament, un HelloBot és un xatbot clàssic basat en regles: cerca paraules clau conegudes i retorna una de les respostes possibles. Passem ara a un chatbot que pot, en certa mesura, imitar la comunicació humana natural. ELIZA va ser el primer robot que va demostrar la superficialitat de la comunicació entre humans i màquines. Va ser creat per Joseph Weizenbaum el 1966 al MIT AI Lab. És el primer chatbot conegut que pot passar la prova de Turing. ELIZA imitava la comunicació humana mitjançant comparacions de patrons i substitucions sense haver d’entendre el significat que hi ha darrere dels enunciats. Va generar diàlegs naturals amb l'ajuda de scripts ja fets. Aquests scripts podrien processar les entrades de diàleg per tal de reaccionar en conseqüència. Ara anem directament a la implementació. Creem una habilitat per a cada escenari de diàleg.

No dubteu a afegir més habilitats de la mateixa manera. Ara ja sabeu com crear chatbots simples basats en regles mitjançant el framework DeepPavlov. El següent article descriu tècniques que podeu utilitzar per desenvolupar chatbots més avançats.

La documentació i el repositori de codi DeepPavlov estan disponibles a deeppavlov.ai.

M’agradaria agrair a Michail Burtsev, Luiza Sayfullina, Olga Kairova i a tot l’equip del laboratori iPavlov els seus aclaridors comentaris.