Sådan bygger du 'Hello World!' Bot med DeepPavlov i 4 trin

DeepPavlov er en konversativ kunstig intelligensramme, der indeholder alle de komponenter, der kræves til opbygning af chatbots. DeepPavlov er udviklet oven på open source-maskinens læringsrammer TensorFlow og Keras. Det er gratis og let at bruge. Dette er den første i en række artikler om DeepPavlov-rammen for naturlig sprogbehandling (NLP). Det viser, hvordan man bygger en mønster-matchende chatbot med vores rammer.

Introduktion

En chatbot er et samtale-AI-system, der er i stand til at kommunikere med et menneske på et naturligt sprog. Det kan integreres i websteder, meddelelsesplatforme og enheder. Din virksomhed delegerer muligvis rutineopgaver til en chatbot, som vil være i stand til at behandle flere brugeranmodninger samtidigt. I modsætning til mennesker er chatbots altid tilgængelige for at hjælpe dig og give enorme besparelser på arbejdsomkostningerne. Derudover er folk ofte glade for at udforske chatbot-evner og prøve noget nyt.

Historisk set kan chatbots opdeles i to store grupper: regelbaseret og datadrevet. Regelbaserede chatbots er afhængige af foruddefinerede kommandoer og skabeloner. Hver af disse kommandoer skal skrives af en chatbot-udvikler ved hjælp af regelmæssige udtryk og analyse af tekstdata. I stedet er datadrevne chatbots afhængige af maskinlæringsmodeller, der er foruddannet på dialogdata.

Når du vil oprette din første chatbot, er det sværeste problem, hvordan du starter. Hvad er de vigtigste dele af bot? Hvordan bygger man dem og får dem til at arbejde sammen? Du finder svar på disse spørgsmål i denne artikel.

Lad os starte med de mest basale elementer i en dialog for at holde tingene enkle. For det første skal chatboten forstå ytringer på et naturligt sprog. Modulet Natural Language Understanding (NLU) oversætter en brugerforespørgsel fra det naturlige sprog til en mærket semantisk repræsentation. F.eks. Oversættes ytringen "Indstil en alarm til kl. 8" til en maskinforståelig form som set_alarm (kl. 8). Derefter skal boten beslutte, hvad der forventes af det. Dialogue Manager holder styr på dialogtilstanden og beslutter, hvad der skal svares til brugeren. På det sidste trin oversætter Natural Language Generator (NLG) en semantisk repræsentation tilbage til menneskeligt sprog. For eksempel betyder rent_price (Atlanta) = 3000 USD til "Den gennemsnitlige lejepris i Atlanta er omkring $ 3.000." Billedet herunder viser en typisk dialogsystem-arkitektur.

Billede 1. Dialogsystemarkitektur

Nu ved du nok teori til at implementere en introduktionsniveau chatbot med open source DeepPavlov rammer. Koden til artiklen findes i Colab-notebook.

DeepPavlov: 1. løb

Den mest dejlige del af opdagelsen af ​​en ny programmeringsramme er muligvis eksemplet “Hej, verden!”. Vores HelloBot vil være i stand til at genkende en hilsen besked og svare med "Hej verden!" Derudover når den modtager en farvelbesked, vil den svare med en af ​​de foruddefinerede farvelbeskeder. Ellers svarer den med meddelelsen "Jeg forstår ikke, undskyld."

Før du går i dybden med koden, ville det være nyttigt at forklare generelt, hvordan DeepPavlov fungerer. Alle færdighedsrelaterede klasser er normalt forbundet med dialogopgaver og løser en enkelt NLP-opgave. Agenten består af flere færdigheder og kan skifte mellem dem. Det kan være et dialogsystem, der indeholder en række målorienterede og chatbot-færdigheder og vælger, hvilken der skal bruges til at generere svaret afhængigt af brugerinput. Skill Manager udfører et udvalg af Skill for at generere et svar som på skemaet herunder.

Billede 2. Agentarkitektur

Trin 1

Du kan installere DeepPavlov lokalt med pip install deeppavlov, eller du kan lege med HelloBot-kode i Colaboratory via linket.

Trin 2

Importer alle vigtige pakker.

Trin 3

Opret derefter færdigheder med tilsvarende mønstre og foruddefinerede svar.

Trin 4

Agenten udfører færdigheder og tager derefter svarene med den største tillid fra dem.

Grundlæggende er en HelloBot en klassisk regelbaseret chatbot: den søger efter kendte nøgleord og returnerer et af de flere mulige svar. Lad os nu gå til en chatbot, der til en vis grad kan efterligne naturlig menneskelig kommunikation. ELIZA var den første bot, der blev udviklet for at demonstrere overfladiskheden i kommunikationen mellem mennesker og maskiner. Det blev skabt af Joseph Weizenbaum i 1966 på MIT AI Lab. Det er den første kendte chatbot, der er i stand til at tage Turing-testen. ELIZA efterlod menneskelig kommunikation gennem mønster matching og udskiftninger uden behov for at forstå betydningen bag ytringer. Det genererede naturlige dialoger ved hjælp af forskrevne scripts. Disse manuskripter var i stand til at håndtere dialogindgange for at svare tilsvarende. Lad os nu gå direkte til implementering. For hvert dialogscenario opretter vi en færdighed.

Tøv ikke med at tilføje flere færdigheder på samme måde. Nu ved du hvordan man opretter enkle regelbaserede chatbots ved hjælp af DeepPavlov-rammen. I den næste artikel beskriver vi teknikker, der hjælper dig med at udvikle mere avancerede chatbots.

DeepPavlov-dokumentationen og kodelageret er tilgængeligt på deeppavlov.ai.

Jeg vil gerne takke Mikhail Burtsev, Luiza Sayfullina, Olga Kairova og hele teamet af iPavlov-laboratoriet for de indsigtsfulde kommentarer.