Razumijevanje jezika u akciji

Oh happy day! Danas ćemo vas početi upoznavati s našom platformom za izradu chatbota. 🤓 U prošloj smo objavi uveli temu NLP-a, a danas ćemo vam pokazati kako se NLP primjenjuje na platformi Erato.hr te koje sve mogućnosti pruža za ugodnu komunikaciju sa softverom.

Prije početka izrade chatbota, najčešće imate nekakvu ideju kakav chatbot želite i kakve informacije želite prenijeti svojim korisnicima. Te je informacije potrebno  oblikovati u odgovore ili, kako ih mi zovemo, teme. Zašto teme? Zato što korisniku često ne želite ponuditi samo jednu rečenicu kao odgovor, već možete dodavati i multimedijske sadržaje te korisniku postavljati potpitanja kako biste mu omogućili podrobnije informacije kroz mikrokontekst ili mu pomogli da obavi neku akciju koja ima više koraka. Teme možete grupirati radi lakšeg snalaženja.

Kako izgleda platforma u dijelu uređivanja chatbota

Da bi vaš chatbot znao ponuditi odgovor na određeno pitanje, za svaku temu - to jest, za svaki odgovor - morate definirati kako do te teme krajnji korisnik chatbota može doći. Dva su temeljna načina - do neke se teme može doći klikom na gumbić iz neke druge teme, i drugi,  tako što ćete preko izbornika ”Poveži ovu temu” unijeti pitanje ili više pitanja koje bi korisnik mogao postaviti, a koji se značenjski odnose na odgovor koji ste tom temom definirali.

Unos mogućih pitanja ili rečenica koje bi korisnik mogao upisati želeći doći do odgovora koji ste temom definirali

Prema ovom primjeru, ako korisnik pita za naknade vezane uz prijevremenu otplatu kredita, dobit će odgovor koji će mu se zasigurno svidjeti. 🤑

Definirani unos korisnika i odgovor koji će chatbot korisniku ponuditi

Provest ćemo vas sad kroz jedan jednostavniji primjer upita te točnosti uparivanja korisničkog unosa s odgovorom. Kao korisnički unos, tj. rečenicu prema kojoj će korisnik moći doći do određene teme, definirali smo ”To se smije koristiti povremeno.” Zahvaljujući NLP-u koji smo razvili, korisnik može upisati bilo koji iskaz ili rečenicu koja značenjski odgovara unosu korisnika i ne mora koristiti jednake ili ”ključne” riječi da bi dobio željeni odgovor. U donjem primjeru, korisnik (kojega predstavljaju crni balončići) postavlja dva pitanja - nijedna riječ upotrijebljena u ta dva upita i u korisničkom unosu ne podudara se.😲

Primjer jednostavnijeg upita

Međutim, ako pogledate analitiku točnosti odgovora u donjem desnom kutu slike, vidjet ćete da je sustav odredio vrlo visoku točnost za oba upita. Alat za analitiku koji je dostupan na našoj platformi iznimno je koristan jer možete pratiti što vaši korisnici pitaju u stvarnome vremenu te mijenjati i dopunjavati pojedine teme ako sustav neke upite ne upari s odgovarajućom temom s dovoljnom točnošću ili dodavati nove teme, ovisno o interesima  korisnika vašeg chatbota koje ćete lako moći utvrditi iz analitike. Tako ćete svakom sljedećom upotrebom korisnicima omogućiti sve bolje iskustvo korištenja chatbota.

Može to, naravno, i složenije. U sljedećem primjeru u unos korisnika dodane su dvije rečenice - jedna koja je istovjetna odgovoru koji se nudi korisniku te jedna koja je dodana radi povećanja točnosti odgovora u odnosu na upite korisnika.

Primjer složenijeg upita

U sadašnjem primjeru imamo dva upita. Prvi je upit sustav s iznimno visokom točnošću (94,41%) upario s točnim odgovorom, no drugi je primjer složeniji. ”Hoću se riješiti kredita prije roka, je li to moguće bez naknade?” zapravo su dva odvojena pitanja spojena u jedno pa je sustav ovdje i nesigurniji. S obzirom na to da nije siguran u točnost odgovora, sustav će to tako i predstaviti korisniku i pitati ga misli li na taj odgovor te mu ga ponuditi kao gumbić na koji može kliknuti.

Kao što vidite u donjem lijevom kutu, iznad odgovora koji je korisniku ponuđen nalaze se zvjezdice te korisnik točnost ponuđenog odgovora može ocijeniti od 1 do 5. Zahvaljujući mehanizmima strojnog učenja, sustav uči iz povratne informacije korisnika te s vremenom smanjuje ili povećava točnost određenog odgovora.

NLP se pokazuje kao posebno važan u elementima prirodnog dijaloga koji nadilazi samo nizanje pitanja i odgovora, a to je postavljanje potpitanja, prepoznavanje entiteta i pamćenje konteksta. U prvom primjeru vidimo da chatbot zna da se drugo pitanje ”A Zagrebu?” odnosi na vrijeme, u drugome da ispravno pamti kontekst Splita u odgovoru na drugo pitanje korisnika, a u trećemu da zna ispravno prepoznati kad se kontekst u cijelosti mijenja, a korisnik prelazi na posve drugu temu.

Potpitanja, entiteti, kontekst

U komunikaciji je ovo naravno čest slučaj - zanima nas više detalja u vezi s onime što pitamo, sjetimo se nečega sličnog, skačemo na druge teme i vraćamo se na početno pitanje. Upravo je zato vrlo važno prilikom izrade chatbota nastojati što preciznije pretpostaviti ponašanje korisnika tijekom korištenja chatbota kako bismo korisniku pružili dobro iskustvo i - što je najvažnije - brzu i preciznu informaciju. Naravno, nećemo moći pretpostaviti sve što se može dogoditi, i zato je važno razumjeti da život chatbota zapravo tek počinje njegovom objavom: praćenjem analitike korištenja chatbota, vidjet ćemo kako ga korisnici koriste i vrlo jednostavno nadopuniti sadržaj onime što smatramo potrebnim.

Sljedeći ćemo put nastaviti s turnejom po platformi i upoznati vas s novim funkcionalnostima. Ako želite odmah saznati što platforma sve nudi, registrirajte se na erato.hr. 🤖