Chatbot Care Simuleaza O Personalitate Pornind de la Informatii Biografice
Cuprins
Domeniul inteligeței artificiale a fost definit de către Jhon McCarthz în anul 1955 ca fiind "o mașină care se comportă într-un mod care ar putea fi considerat inteligent, dacă ar fi vorba de un om". Evoluția rapidă a tehnologiei precum și a inteligenței artificiale a dus la interacțiuni interumane tot mai reduse, crescând astfel dorința și în același timp necesitatea oamenilor de a comunica prin intermediul lumii virtuale. Chiar și așa omul a simțit nevoia unui confident loial ducând evoluția inteligenței artificiale către ramura procesării limbajului natural, luând astfel naștere chatboții. Chatboții sunt programe software care pot simula o conversație chat textuală ce implică schimburi conversaționale de tipul întrebare – răspuns, oferind un fir logic al discuției în funcție de subiectul abordat pe parcursul interacțiunii om – calculator. Tendința evolutivă a chatboților include abordări de generare a conversației artificiale prin modelări lingvistice si gramaticale în scopul creării de enunțuri individuale la nivel de frază. Lucrarea de față își propune analiza diferitor metode de procesare a biografiilor puse la dispozitie de Wikipedia, in scopul realizarii unui chatbot care simulează caracterul mai multor personalități, oferind totodată utilizatorului posibilitatea de a dialoga textual cu un personaj ales.
1. Introducere
Procesul de achiziționare a cunoștințelor este reprezentat de transferul informațiilor existente în cadrul unei surse date, sub o formă interpretabilă cu ajutorul calculatorului. Sursa cunostințelor poate fi reprezentată de informațiile oferite de oameni sau de cele extrase din diverse documente textuale sau enciclopedii. Daca procesul de achiziționare a cunoștințelor este asociat cu Internetul, atunci dobândirea acestora vizează apariția diferitor probleme precum calitatea și fiabilitatea informațiilor. [1]
Această lucrare investighează posibilitățile achiziționării cunoștințelor cu scopul conturării diferitor caractere ale unor personalități pornind de la informații biografice cu care se dorește o interacțiune textuală prin intermediul chatului.
Un chatbot este un program realizat cu ajutorul calculatorului, conceput cu scopul de a simula o conversație inteligentă cu unul sau mai mulți utilizatori, prin metode auditive sau textuale. Scopul principal al cestei simulări este de a trece testul Turing, descris în cele ce urmează.
Testul Turing este un studiu din domeniul Inteligenței Artificiale, realizat in 1950 de catre matematicianul si informaticioanul britanic Alan Turing, menit să raspundă la întrebarea: „Pot (sau vor putea) mașinile să gândească?”. Testul este aplicabil mașinilor de calcul ce pot fi programabile astfel încât să se comporte asemenea oamenilor, acceptând întrebări formulate într-un limbaj natural astfel încât să dea raspunsuri rezonabile. Comform testului, o persoană trebuie să distingă între doua entități: o altă persoană și o mașină, fară să îi vadă, doar pe baza răspunsurilor personajelor la un set de întrebări scrise.
Dacă răspunsurile mașinii sunt atât de bune încât cel ce pune întrebările nu este capabil să identifice care este mașina, atunci se poate spune că mașina a trecut testul.
Turing presupunea că în jurul anului 2000 calculatorul va ajunge la performanța de a induce în eroare persoana ce pune întrebările în cel puțin 30% din cazuri. [2]
Aplicațiile chatbot sunt integrate în sistemele de dialog pentru a oferi un prim punct de contact în centrele de apel ale marilor companii precum Renault, Citroen, Loyds Banking Group, etc. De asemenea , există diverse aplicații ce integrează dialogul cu un chatbot în aplicațiile smartphone, permițând dialogul pe diverse topice cum ar fi: muzică, filme, stiință.
1.1 Structura lucrării
Lucrarea are în componența sa 6 secțiuni descrise în cele ce urmează:
Secțiunea 2 – Cercetări anterioare – Prezintă noțiunea de chatbot și face o trecere în revistă a celor mai cunoscute lucrări de-a lungul timpului ce au avut ca subiect implementarea agenților conversaționali;
Secțiunea 3 – Noțiuni teoretice – Conține o scurtă prezentare a algoritmilor, bibliotecilor si resurselor online folosite în cadrul soluței propuse;
Secțiunea 4 – Descrierea aplicației – Descrie succint soluția abordată pentru crearea unei baze de cunostințe pornind de la informațiile biografice precum și metoda propusă pentru obținerea unui răspuns valid pentru o întrebarea dată;
Secțiunea 5 – Rezultate – Prezintă rezultatele obținute în cadrul fiecărei metode propusă percum și o comparație între metodele ce au aceeași finalitate;
Secțiunea 6 – Concluzii – Aduce în prim plan avantajele și dezavantajele metodelor implementate în cadrul lucrării și prezintă câteva direcții pentru cercetările viitoare;
1.2 Motivația lucrării
Informația este reținută mult mai usor dacă modul în care ne este prezentată este unul interactiv. Astfel, diverse episoade din istorie sau stiință pot fi memorate dacă le aflăm direct de la persoanele care au fost implicate în acțiunile ce ne sunt prezentate. De asemenea, este mai eficient să aflăm strict informațiile ce prezintă un grad de interes mai mare pentru noi, prin dirijarea conversației în direcția dorită. Dat fiind cele menționate, lucrarea de fața își propune studierea metodelor care duc la crearea unui chat ce permite comunicarea textuală cu diverse personaje din diferite arii, ce pot fi adăugate în mod dinamic în lista de contacte a fiecărui utilzator.
Aplicația poate fi folosită atat de elevi, studenți cat si de persoanele ce doresc să își îmbogățească cultura generală, acoperind o gamă largă de domenii.
Provocarea implementării aplicației constă în faptul că se dorește obținerea unei entități care nu numai ca are comportament uman, procesând informații primite în limbaj natural, ci se tinde de asemenea către comportamentul unui personaj specific, ce va oferi informații reale preluate din diverse surse online, dupa cum va fi prezentat în conținutul lucrării.
2. Cercetări anterioare
Termenul de „ChatterBot” a fost inventat de Michael Mauldin, în 1994, pentru a descrie conceptul de program software capabil să intercaționeze cu oamenii prin intermediul chatului, prelucrând în acest scop limbajul natural.
Primul program care a fost capabil sa treaca Testul Turing și să înșele utilizatorii, facându-i să creadă că vorbesc cu un om, a fost ELIZA, publicat în anul 1966 de către Joseph Weizenbaum. Totuși, însuși dezvoltatorul său, nu a pretins că ELIZA a fost cu adevărat o aplicație inteligentă, precizând că, în domeniul Inteligentei Artificiale, mașinile sunt create să se comporte în moduri minunate, de multe ori suficiente pentru a uimi chiar observatorul cel mai experimentat. Dar, odată ce un anumit program este demascat, odată ce algoritmii aflați în spatele programului sunt explicați, magia dispare. Metoda cheie implementată în cadrul aplicației ELIZA, utilizată încă, constă în recunoașterea unor cuvinte sau fraze din textul de intrare și pregătirea raspunsului în funție de acestea. Spre exemplu, dacă intrarea conține cuvântul „mama”, discuția este continuată de chatbot prin „Povestește – mi mai multe despre mama ta”, generând astfel iluzia unei aplicații inteligente, în ciuda faptului că prelucrarea textului este una superficială. [3]
După ELIZA, a fost implementat PARRY, în 1972 de psihiatrul Kenneth Colby, de la Universitatea Stanford. PARRY a încercat simularea unui schizofrenic paranoic. Programul implementa un model de comportament al unui schizofrenic paranoic, bazat pe concepte reale. Autorul său a realizat o strategie de conversație și ca atare a fost considerat un program mult mai avansat decat ELIZA, fiind supranumit „ELIZA cu atitudine”. PARRY a fost testat la începutul anilor 1970, folosind o variantă a testului Turing, astfel: un grup de psihiatrii cu experiență au analizat o mulțime de pacienți, formată din calculatoare pe care rula aplicația PARRY și pacienți reali, fiind folosite pentru comunicare teleimprimatoare.
Unui alt grup de psihiatrii Ii s-a dat să analizeze transcrierile convorbirilor. Cele două grupuri au fost apoi rugate să identifice care dintre „pacienți” erau umani si care erau programe de calculator. Psihiatrii au fost capabili să identifice corect doar 48% din timp, o cifră corespunzătoare ghicitului aleatoriu. [4]
O altă etapă importantă parcursă în cadrul evolutiei chatboților, a fost apariția aplcației A.L.I.C.E. (Artificial Linguistic Internet Computer Entity), menționată sub numele de Alice, fiind reprezentată de un program chatbot de procesare a limbajului natural, în cadrul unei conversații cu un om, prin aplicarea unor euristici și reguli asupra textului primit la intrare. A fost inspirit din clasicul chatbot ELIZA al lui Joseph Weizenbaum. Este unul dintre cele mai reușite programe de acest tip câștigând premiul Loebner de trei ori, în 2000, 2001 și 2004. Cu toate acestea, programul nu a fost capabil să treacă testul Turing. A fost scris inițial de Richard Wallace, prinzând viață la 23 noiembrie 1995. În 1998, a fost rescris în Java, având la baza o shemă XML, numită AIML (Artificial Intelligence Markup Language), pentru a specifica regulile de conversație euristică. [5]
Ulterior au aparut numeroase programe chatbot care se bazau pe schema AIML. Câteva exemple de aplicații considerate bune în domeniul chatboților sunt: Cleverbot [6], Do-Much-More[7].
În paragrafele următoare va fi descrisă pe larg idea implementării proiectului ce stă la baza lucrării “Freudbot: An Investigation of Chatbot Technology in Distance Education”[8].
Freudbot a fost construit să vorbească despre teoriile și concepte susținute de Sigmund Freud precum și despre evenimentele biografice. Conținutul a fost dezvoltat pe baza unei resurse existente la universitatea Athabasca, ce conținea un dicționar de termeni, definiții, concepte și teorii freudiene. Informațiile ce alcătuiau biografia lui Freud au fost folosite pentru a crea evenimentele autobiografice. Deși Freudbot a fost construit folosind AIML, au existat o serie de caracteristici de control asemănătoare celor folosite în implementarea chatbotului ELIZA. La fel ca și în cazul robotului ELIZA, Freudbot recunoaștea anumite cuvinte cheie și răspundea în conseciță. În cazul în care nu era recunoscut nici un cuvant, Freudbot recurgea aleatoriu la una din strategiile: cerea informații pentru clarificare, sugera un nou subiect de discuție, indica faptul ca el nu are nici un raspuns sau cerea utilizatorului un subiect nou. Un alt tip de strategie folosit era de a pune o intrebare urmând ca apoi să canalizeze discuția pe o temă cunoscută. Spre exemplu, utilizatorul era intrebat: "Ești fericit?". Indiferent de raspuns, robotul continua: "Asta imi aduce aminte de principiile plăcerii". Această ultimă strategie a fost folosită pentru a redirecționa conversația cu utilizatorul spre conceptele freudiene. În plus față de ELIZA, Freudbot avea implementată o strategie de a menține discuția pe concepte cunoscute, prin intermediul unor replici de genul: "Spune-mi mai mult", "De ce așa?", "Asta e tot?", facând utilizatorul să solicite mai multe informații. Pentru a-i testa performanțele, participanții la conversații, au fost puși să completeze un chestionar cu întrebări subiective privind impresiile lor legate de primele 10 minute de conversație pe chat. De asemenea au fost puși să menționeze câteva direcții în care ar trebui îmbunătățit robotul.
Printre articolele ce contribuie la evoluția procesării limajului natural cu scopul realizării unor programe capabile să interacționeze vocal sau textual cu utilizatorii este și “A chat-bot based Multimodal Virtual Guide for Cultural Heritage Tours” [9].
Lucrarea prezintă implementarea unui ghid virtual, adaptabil nevoilor de deplasare ale utilizatorului, ce poate fi folosit pe diverse dispozitive (PAD, Smartphone) în contexte speifice. Scopul lucrării este implementarea unui dispozitiv ce permite dialogul om – calculator prin interacțiunea utilizatorilor cu o interfață multimodală. Dialogul este realizat prin intermediul tehnologiei chatboților și este pus în aplicare pornind de la proictului Alicebot (Artificial Linguistic Computer Entity). Sistemul de interacțiune cu robotul este prevazut cu un cadru care permite prelucrarea și înțelegerea discursului, oferind utilizatorului o interfață vocală (VUI). Interfața a fost dezvoltată folosind XHTML și VoiceXML 2.0., numită pe scurt X + V [9]. Arhitectura aleasă pentru implementarea aplicatiei are la bază paradigma client-server, descrisa in figura 1. Avantajul acestui model constă în faptul că poate fi rulat cu ușurință pe dispozitive mici cum ar fi telefoane mobile și PDA-uri care au suficientă putere de procesare pentru a prelucra o gamă largă de sarcini.
Fig. 1. Arhitecura sitemului
Aplicația rulează pe aceste dispozitive portabile prin intermediul browser-ului multimodal. Browserul multimodal este o aplicație software care permite utilizatorilor să afișeze și să interacționeze cu documente X+V găzduite pe serverele web, prin conxiune wireless.
În figura 2, este ilustrat modul în care se reprezintă baza de cunoștințe ALICE sub forma unui graf pentru a facilita construiriea gramaticii ca schemă XML. Această gramatică este utilizată de către sistemul multimodal în scopul înțelegerii comunicării verbale transmisă de utilizator. Lista de enunțuri pe care le poate pronunța utilizatorul în timpul interacțiunii cu chatbotul a fost extrasă din fișierele AIML. Pentru a transforma rostirea mesajului în formular XML, a fost creat un parser ce se execută în mod dinamic prin rularea unui fisier php care la runtime genereaza fisierul corespunzator reprezentării gramaticii permițând sistemului să se adapteze în timpul dialogului. Totuși, dacă numarul fisierelor XML generate este foarte mare, este indicată crearea gramaticii offline, pentru a reduce timpul de raspuns al sistemului. Prin intermediul browswer-ului multimodal este posibilă recunoașterea cuvintelor rostite de utilizator precum si crearea unui raspuns textual dat de chatbot. Recunoașterea vorbirii automate (ASR) este obținută prin intermediul gramaticii.
Interfața , reprezentată printr-o pagină web a fost dezvoltată folosind Multimodal Tools 4.1.2.2 pentru WebSphere Studio V5.1.2. , disponibilă la IBM developrWorks. Această alegere permite reducerea calculului precum și cerințele de memorie ale unui PDA. Cand un utilizator accesează sistemul, un browser multimodal este deschis solicitând serverului de web rularea fișierului php pentru a putea începe interacțiunea sub foma dialogului între utilizator și chatbot. Serverul execută comenzile din scriptul php trimițând chatbotului interogarea reprezentând mesajul utilizatorului, asteptând pentru un raspuns de tipul VoiceXML. În cele din urmă oferă un document X + V pentru browserul PDA care va transforma vorbirea textuală în vorbire vocală.
Fig. 2. Generarea fisierului XML corespunzator gramaticii, pornind de la arborele AIML
În lucrarea “CHATTERBOTS, TINYMUDS, and the Turing Test Entering the Loebner Prize Competition”[10], Michael L. Mauldin vorbește despre chatboți precum și despre platforma TinyMud, după cum urmează.
Proiectul a fost implementat de către Richard Bartle fiind reimplementat în anul 1989 de către Jim Aspnes. Obiectivele TinyMUD aveau în vedere: conversații cu mai mulți utilizatori, simularea unei conversații cât mai reale precum și posibilitatea extensibilității programului de către utilizator. Cea din urmă caracteristică permitea utilizatorilor să își definească un model bazat pe personaje din lumea reală, fapt ce a facut programul foarte popular. TinyMUD a detrminat foarte mulți oameni să comunice tastând, furnizând o gamă largă de potențiali jucători și intervievați , crescând posibilitatea trecerii Testului Turing.
Rezultatul proiectului a fost implementarea unui robot care putea conversa cu mai mulți jucători, putea explora lumea descoperind căi noi, și răspunzând la diverse întrebări ale utilizatorilor. Abilitățile de conversație au fost implementate inițial ca regului simple IF-THEN-ELSE, bazându-se pe găsirea unor cuvinte cheie în cadrul textului de intrare primit de la utilizator. Multe modele au mai multe ieșiri care sunt redate în ordine aleatoare pentru a mânui intrebările care se repetă. Dat fiind cele menționate anterior, obiectivul principal al lucrării a fost construirea unui agent de conversație care raspunde la intrebări fără a le ignora, și care să fie capabil să mențină o secvență de răspunsuri adecvate, corespunzătoare întrebărilor utilizatorului. Replicile chatbotului includ multe secvențe de umor, fapt ce îl face un agent de conversație mai interesant decât ELIZA.
Fig. 3. Arhitectura TinyMUD
Arhitectura aleasă pentru implementarea chatbotului are următoarele caracteristici:
cumunicarea: este realizată cu ajutorul protocolului TCP/IP;
protocol de interpretare;
modelul pentru reprezentarea lumii: urmarește diferite camere, obiecte în scopul modelarii lumii , pentru a regiza un scenariu cât mai aproape de cel real;
memoria jucătorului: urmărește ceilalți jucători și reține până la 2000 de bytes cuprinzând cele mai recente enunturi ale acestora;
modulul de conversație: chatul
În figura 3 este prezentat chatbotul configurat pentru a intercaționa cu o platformă TinyMUD. Chatbotul are de asemenea un mod de concurs în care simulează tastarea umană folosind un model Markov.
modelele de comandă: au cea mai mare prioritate și reprezintă comenzile de la conducătorul robotului incluzând provocări cum ar fi "What’s the code word?" pentru a evita falsificarea de comenzi ale altor jucători;
răspunsuri cu prioritate mare: includ întrebări ce conțin cuvinte cheie, cum ar fi "How do I get from the Town Square to the Library Desk?";
rețeaua de comunicare: dirijează transferul informației între interlocutori și codifică mesajul transmis de aceștia în cadrul conversației;
răspunsurile minimale, conțin lucruri pe care robotul ar trebui sa le știe singur: "Where do you live?", "What's 2 time 23?", "What color is your hair?", acestea au fost colectate în decursul a patru ani de interacțiune TinyMud;
răspusnsurile tipice pentru situațiile în care textului de intrare nu i se poate aplica nici unul din modelel descrise anterior: "Go on,", "So?", "I'll remember that";
Fig. 4. Rețea de noduri conversaționale
Realizarea comunicarii (activarea răspunsurilor):
Cea mai mare parte a răspunsurilor orientate spre subiect sunt codificate într-o rețea de activare, prezentată în figura 4. Detalii cu privire la nodul de pornire și subnoduri sunt prezentate în figura 5. Fiecare nod este caracterizat prin 5 atribute:
activarea (a) : fiecare nod pornește cu un grad inițial de activare cu o valoare între 0.0 și 1.0;
modelele (p): dacă se potrivesc intrărilor textuale introduse de utilizatori, ponderea de activare a nodului respectiv este ridicată;
răspunsul (r): este șirul textual unic redat în cazul în care nodul are valoarea de activare cea mai mare;
creșterea (+): în cazul utilizării unui nod pentru a da răspunsul, posibilitatea sa de activare crește;
scaderea(-): în cazul utilizării unui nod pentru a da răspunsul, posibilitatea sa de activare scade;
Fig. 5. Noduri conversaționale
Având o rețea de conversație suficient de mare (224 noduri plus 529 noduri ce conțin răspunsuri fixe), problema conversației se reduce la: printre lucrurile pe care le-aș putea spune, ce ar trebui să spun. De exemplu, dacă utilizatorul menționează cuvântul "bird", răspunsul este căutat printre înșiruirile textuale ce conțin acest cuvant, incluzând diferitele specii de păsări. Dacă este găsit, crește ponderea de activare pentru nodurile ce conțin cuvantul cheie regăsit. Pe de altă parte, programul urmărește răspunsurile utilizatorului. Spre exemplu, dacă utilizatorul raspunde negativ la intrebarea "Do you have pets?", nodurile ce conțin răspunsuri referitoare la animalele de companie sunt închise (nu sunt luate în considerare).
3. Noțiuni teoretice
Noțiunile teoretice vizate pentru implementarea proiectului fac referire la folosirea unor resurse online ce vor fi descrise în linii mari în cele ce urmează.
3.1 Biblioteci
3.1.1 Stanford CoreNLP
Oferă un set de instrumente pentru procesarea limbajului natural. Primește spre analiză un text în limba engleză și oferă ca rezultat formele de bază ale cuvintelor, părțile de vorbire prin care sunt exprimate cuvintele (substantiv, verb, adjectiv) din componența textului, indiferent dacă acestea exprimă nume de companii sau de oameni. De asemenea oferă arborele de dependințe ce alcatuiește o frază prin trasarea legăturilor dintre cuvintele unei fraze, astfel că un cuvânt este un nod, iar arcele sunt relațiile dintre noduri. Un alt avantaj al folosirii bibliotecii este acela că oferă informații legate de propozițiile care referă o anumită entitate în cadrul textului. Este foarte usor de integrat punând la îndemâna utilizatorilor un API bogat ce permite implementarea tuturor facilităților menționate anterior prin scrierea a doar câteva linii de cod Java [12].
3.1.2 ReVerb
Extragerea informațiilor prin prelucrarea limbajului natural este o sarcină ce constă în preluarea relațiilor specifice din corpusuri mari de date fără a necesita un vocabular pre-specificat.
ReVerb este un program care identifică și extrage în mod automat relațiile relevante din texte oferind o pondere ce reprezintă precizia rezultatului. Este proiectat pentru extragerea informațiilor la scara Web, în cazul în care relațiile nu pot fi specificate în avans și este importantă viteza. Pentru extragerea informațiilor au fost introduse doua constrângeri la nivel de relație: sintactică și lexicală.
Constrângerea sintactică are doua scopuri: să elimine incoerența și să reducă extragerea neinformativă prin preluarea relațiilor din frază alcătuite din verb-substantiv. Modelul folosit pentru limitarea relațiilor din fraze este prezentat în figura 7 și impune ca relația să conțină un verb (ex: invented), un verb urmat de o prepoziție (ex: located in) sau un verb urmat de substantive, adjective, adverbe ce pot fi la rândul lor precedate de o prepoziție (ex: has atomic weight of).
Fig. 7. Expresie regulată folosită ca model
Daca există mai multe porțiuni din text care se potrivesc modelului descris pentru un singur verb, este selectată relația cea mai lungă. În cele din urmă, este introdusă o constrangere des întâlnită în cadrul metodelor de procesare a limbajului narural și anume existența relației ce se mapează modelului între doua argumente în frază.
Există expresii care satisfac constrângerea sintactică dar nu sunt relaționale. Pentru a depăși această limitare a fost introdusă o constrangere lexicală care se bazează pe intuiția că o relație validă ar trebui să ia mai multe argumente distincte într-un corpus mare.
Pașii algoritmului folosiți de ReVerb pentru extragerea relațiilor de forma (X, ϒ, Y) sunt:
Extragerea relațiilor: Pentru fiecare verb v din propoziția s se găsește cea mai lungă secvență de cuvinte ϒ care satisfice constrângerea sintactică și lexicală. În cazul în care sunt extrase mai multe astfel de relații care se suprapun aceleiași propoziții s, acestea sunt reunite într-o singură relație.
Extragerea argumentelor: Pentru fiecare relație ϒ identificată la pasul anterior este determinat cel mai apropiat substantiv X localizat în partea stanga a frazei, raportat la ϒ, astfel încat X sa nu fie pronume relativ sau interogativ, precum și cel mai apropiat substantiv Y din frază aflat în partea dreaptă a relației ϒ. Daca cele doua substantive X și Y au fost determinate, este întors un triplet de forma (X, ϒ, Y).
Verificarea ulterioară a satisfacerii constrângerii sintactice a tripletului obținut se face pe baza maparii relației candidat ϒ, peste modelul prezentat în figura 7. De asemenea, se face validarea lexicală a lui ϒ prin utilizarea unui dicționar D alcătuit din relații care au în componență mai multe argumente distincte. Dicționarul D este format prin extragerea relațiilor rezultate în urma rulării algoritmului prezentat pe un corpus alcătuit din 500 de milioane de propoziții puse la dispoziție pe internet. [14]
3.1.3 ClausIE
Un alt program folosit în scopul prelucrării limbajului natural este ClausIE, al cărui mod de funcționare este descris de următorul algoritm:
Pasul 1 – Parsarea dependențelor: ClausIE folosește parserul de dependențe Stanford pentru a descoperi structura sintactică a unei propoziții. Arborele de dependențe este reprezentarea relațiilor sintactice dintre cuvintele unei propoziții. Rădăcina arborelui este reprezentată de un verb necopulativ sau de un complement predicativ.
Ex: În propoziția “Messi plays football.”, cuvântul “plays” este rădăcina arborelui, fiind conectată cu “Messi” ptrintr-o relație nsubj (Subiect) si cu “football” prin dobj (direct-object).
Pasul 2 – Trecerea de la dependențe la clauze: În această etapă este construită câte o clauză pentru fiecare subiect (relație de tipul nsubj) din arborele de dependențe.
Arborele de dependențe conține în alcătuirea sa regentul reprezentat de verb (V), dependentul fiind subiectul (S) și constituenții ce pot fi obiecte (O), complemente (C) – dobj, iobj, xcomp, ccomp sau adverbe (A) – advmod, advcl, prep_in. [16]
Pentru a îmbunătăți performanța, ClauseIE crează în plus o serie de clauze “sintetice” care nu apar direct în frază. Constituenții unei clauze sintetice depind fie de un cuvânt din arborele de dependințe fie de un verb creat în mod artificial, dupa cum va fi exemplificat mai jos:
Ex: În fraza “Bell, a telecommunication company, which is based in Los Angeles, makes and distributes electronic, computer and building products.”, se va obține (S: Bell, V: based, A: Angeles) în loc de (S: which, V: based, A: Angeles).
De asemeni, ClausIE folosește în construirea clauzelor sintetice verbe copulative, astfel că relațiile obținute pentru exemplu anterior vor fi:
(S: Bell, V: makes, O: products),
(S: Bell, V: based, A: Angeles),
(S: Bell, Vc: “is”, C: company).
Pasul 3 – Identificarea tipurilor de clauze: După obținerea clauzelor (relațiilor) de la pasul anterior, ClausIE identifică tipul fiecărei clauze, conform tabelului 1.
Tabel 1
Tipuri de clauze
După identificarea tipurilor clauzelor, se vor marca adverbele sau grupurile adveribiale optionale, după cum este prezentat în exemplul de mai jos:
(S: Bell, V: makes, O: products),
(S: Bell, V: based, A!: Angeles),
(S: Bell, Vc: “is”, A!: company),
unde “A!” indică adverbiale esențiale și “A?” adverbiale opționale.
Pentru tipurile de propoziții SVC, SVOO și SVOC toate adverbialele sunt opționale (A?).
Pasul 4 – De la clauze la propoziții: Formarea propozițiilor presupune în primul rând selectarea constituenților. O propoziție este alcătuită din subiect, relație și zero sau mai multe argumente. În alcătuirea propozițiilor se pleacă de la întrebarea: “Ce constituent al clauzei trebuie inclus în generarea tripletului?”. Pentru a nu pierde informații, sunt create triplete pentru fiecare clauză, fiecare triplet oferind porțiuni diferite de text.
Ex: În propoziția “AE died in Princeton in 1955.”, cu următoarea reprezentare: (S: AE, V: died, A? : [in] Princeton, A? : [in] 1955) se obțin clauzele:
(S: AE, V: died),
(S: AE, V: died, A: [in] Princeton),
(S: AE, V: died, A: [in] 1955 ),
(S: AE, V: died, A: [in] Princeton, A: [in] 1955 ).
În final, ClausIE crează cate o propoziție pentru fiecare clauză obținută. În exemplul anterior vor fi create 4 propoziții.
Mai multe informații despre modul de funcționare al bibliotecii ClauIE pot fi gasite în documentul [15], refrit în secțiunea bibliografie.
3.1.4 Weka
Weka este un software ce pune la dispoziția utilizatorilor o colecție de algoritmi de învățare pentru data mining. A fost dezvoltat în Java de Universitatea Waikato din Noua Zeelandă și poate fi portat pe orice platformă. Mediul oferă un set vast de instrumente de procesare a datelor, algoritmi de învățare și metode de evaluare a rezultatelor ce pot fi aplicate atât din interfata grafică cât și din cod prin intermediul API-ului pus la dispoziție. [17]
În cadrul proiectului, setul de date ce va fi procesat cu ajutorul Weka este reținut într-un fișier corespunzând formatului arff. Fisierul arff este alcătuit din două secțiuni astfel:
Header-ul – conține numele relație precum și atributele urmate de tipul lor. Aceste elemente sunt introduse prin adnotarile “@Relation” și “@Attribute”;
Datele – ce-a e-a doua secțiune conține datele ce urmează a fi prelucrate. Începutul secțiunii este marcat cu ajutorul adnotarii “@Data”;
3.2 Algoritmi
(1)
3.3 Resurse online
3.3.1 Wikipedia
Wikipedia este o enciclopedie generală disponibilă pe Internet, fiind accesibilă în mai multe limbi, având conținut deschis, atât pentru utilizare cât și pentru dezvoltare. Este creată prin colaborarea voluntară a unui număr mare de persoane.
3.3.2 DBpedia
DBpedia extrage informații structurate de pe Wikipedia și le face disponibile pe Web. Oferă o ușoară manevrare a informaței de pe Wikipedia, permițând crearea unor interogări complicate ce leagă diferite seturi de date. Rezultatul interogării este oferit în diverse formate, printre care CSV (comma-separated values), RDF (Resource Description Freamework), OData (Open Data Protocol) și Microdata.
3.3.3 WordNet
WordNet este o bază de date lexicală în limba engleză, formată din substantive, adjective, verbe și adverbe, grupate în seturi de sinonime, fiecare reprezentând un concept diferit. Seturile sunt interconectate prin intermediul relațiilor conceptuale semantice și lexicale. Având în vedere cele descrise anterior, WordNetul este un instrument folosit în lingvistica computațională și în procesarea limbajului natural, etichetând relațiile semantice dintre cuvinte.
4. Descrierea aplicației
Problema implementării unui chatbot care să simuleze comportamentul unei personalități pornind de la date biografice a fost abordată în cadrul lucrării din mai multe perspective: pe de o parte determinarea unor topice de discuție în funcție de domeniul personalitații și pe de altă parte, realizarea unei metode care oferă cel mai relevant raspuns în funcție de întrebarea curentă, prin extragerea unor triplete de forma subiect, predicat, atribut folosind resurse online.
4.1 Extragerea datelor biografice
Implementarea lucrării a necesitat formarea unui corpus de prelucrare prin extragerea datelor puse la dispoziție de Wikipedia.
Pirmul pas în extragerea biografiilor l-a constituit stabilirea listei de personalități ce a reprezentat studiul lucrării curente. Pentru a acoperi o gamă de domenii variată, au fost selectate principalele personalități ale secolului al XX –lea precum și domeniul în care au activat, având ca sursă site-ul "Time Magazine". După această etapă, personalitățile au fost grupate în funcție de domeniu, în treisprezece categorii după cum urmează: actori, advocati, arhitecți, antreprenori, inventatori, matematicieni, militari, poeți, figuri religioase, oameni de știința, presedinți U.S., vocaliști precum și conducători ai lumii. Deoarece numărul total de personalități extras la acest pas (62) nu a fost satisfăcător pentru obținerea unor rezultate relevante în cazul procesării subtitlurilor, s-a recurs la interogarea bazei de date DBpedia pentru domeniile actori si președinți, rezultatul obținut în urma interogării fiind de 7497 actori și 2206 presedinți.
Având datele de pornire, următoarea etapă a constituit-o extragerea informațiilor descriptive pentru fiecare personalitate ce a fost încadrată în una din categoriile amintite anterior. În acest scop a fost necesară parsarea paginilor de Wikipedia corespunzătoare, al căror URL a fost format prin concatenarea rădăcinii "http://en.wikipedia.org/wiki/" cu numele personalității separat prin "_", pentru cazul în care este alcătuit din mai multe cuvinte (spre exemplu accesarea paginii de Wikipedia corespunzătoare lui Charlie Chaplin va fi: "http://en.wikipedia.org/wiki/Charlie_Chaplin").
Datele biografice ce alcătuiesc paginile de Wikipedia au fost preluate prin implementarea unui parser care accesează arborele DOM al unei pagini localizată pe baza unui URL dat, ce respectă formatul descris anterior. Pacurgerea arborelui în scopul extragerii nodurilor text a fost concepută prin utilizarea bibliotecii htmlparser [13]. În urma parsării, s-a dorit păstrarea formatului paginilor de Wikipedia pentru menținerea accesului usor la diferite secțiuni / subsecțiuni ale pagii precum si la titlurile/subtitlurile din componența sa. Această necesitate a dus la crearea unei structuri XML specifică:
<person>
<name> Nume Prenume</name>
<category> Categorie</category>
<description>Introducere</description>
<content>
<section ID=”0”>
<sectionTitle>Biografie</sectionTitle>
<subsection ID=”0”>
<subsectionTitle>Primii ani</subsectionTitle>
<subsectionDescription>…</ subsectionDescription >
</subsection>
</section>
</content>
</person>
Fișierele obținute au fost reținute intr-o baza de date MySQL si folosite în funcție de scopul procesării după cum urmează în secțiunile următoare.
4.2 Determinarea topicelor de discuție
Prelucrarea elaborată a limbajului natural constă în stabilirea unor topice conversaționale în funcție de domeniul din care face parte personalitatea curentă. Acestă subsecțiune propune două abordări de procesare a datelor biografice în scopul extragerii unor subiecte de discuție: prima este bazată pe analiza verbelor din componența biografiilor iar cea de-a doua prelucrează subtitlurile puse la dispoziție de Wikipedia.
4.2.1 Procesarea verbelor din componența biografiilor
În cele ce urmează va fi expus succint modul de prelucrare a informațiilor corespunzătoare celor 62 de personalități extrase din revista "Time Magazine", cu scopul formării unei baze de cunoștințe.
Este important de precizat că formarea bazei de cunostințe necesită o selecție atentă privind faptele si evenimentele din viata unei personalități în funcție de domeniul în care a activat. Dat fiind cele mentionate, se va avea în vedere implementarea unei soluții ce extrage în functie de categorie principalele evenimente, astfel daca personalitatea apartine spre exemplu categoriei "actori" vor fi extrase cunostințe legate de cariera personalității: debut, roluri, premii, etc, pe când, dacă personalitatea este încadrată ca și "conducator al lumii", cunoștințele ce vor fi selectate vor face referire la diferite razboaie sau evenimente politice.
În scopul extragerii celor mai relevante date în funcție de categorie, au fost implementate si testate doua abordari ce au ca si parte comună selectarea verbelor (acțiunilor) mentionate in textele extrase. După extragerea textelor biografice pentru fiecare personalitate din topul obtinuț, este necesară folosirea tool-ului Core NLP pentru a asocia fiecărui cuvant o parte de vorbire precum si o parte de propoziție.
Prima abordare implică selectarea tuturor verbelor din fiecare text și trecerea lor la forma infinitivă cu ajutorul resursei online WordNet. Verbele sunt căutate în cadrul propozitiilor dupa adnotarile folosite în NLP și anume: VB (verb la forma de bază), VBD (verb la timpul trecut), VBG (verb la timpul gerunziu), VBN (verb la participiu trecut), VBZ (verb la persoana a III-a singular), VBP (verb la timpul prezent, nu include persoana a III-a). Pentru verbele selectate (numarul total fiind de 2705) se aplică algoritmul TfIdf, care asociază fiecarui cuvant o pondere reprezentând indicele de apariție în cadrul textelor. După aplicarea algoritmului menționat se creează fisierul "arff" ce va fi procesat cu Weka.
Procesarea fisierului obținut va fi realizată prin aplicarea diferitor algoritmi de clusterizare crescând numărul de clustere până la numărul de categorii (13), după cum va fi prezentat în secțiunea Rezultate.
Cea de-a doua metodă are în vedere selectarea celor mai relevante verbe pentru fiecare personalitate ce prezintă interes în cadrul proiectului. În încercarea de a elimina verbele irelevante precum și pentru îmbunătătirea clusterizării, s-a recurs la urmatoarea abordare:
– se extrag toate entitățile referite în cadrul unui text, al căror nume sunt corelate cu numele personalitații. Prin entitați ne referim la toate grupurile de cuvinte din pagina personalitații ce au atașat link către pagina proprie de Wikipeedia. În această categorie intră la o prima vedere nume de persoane, nume de locuri (orașe, țări) precum și diferite evenimente ce au marcat sau au fost semnificative în viața personalitații în cauză (razboaie, filme, premii, concerte, etc).
– în urma extragerii listei de entitați care apar coreferite cu o persoana, se parcurge lista de entitați și se extrag propozițiile în care apar mentionate ambele parți (personalitatea si entitatea). Personalitatea poate fi referită atat direct (în propozițiile în care apare numele) sau indirect (aceste propoziții sunt detectate prin verificarea existenței unui pronume personal în propoziția curentă precum și a referirii directe a personalitații în cea anterioară).
– după extragerea propozițiilor se folosesc datele obținute cu ajutorul bliotecii NLP și se extrag verbele. În această etapă a cercetarii se vor extrage toate verbele din propoziție pentru a evita păstrarea verbelor irelevante și eliminarea celor care reprezinta relația dintre entitate și personalitate.
– numarul total de verbe după această etapă este micșorat la 2365.
– modul de implementare după extragerea verbelor este același ca cel descris anterior, pntru cazul în care se extrag toate verbele. Rezultatele obținute vor fi prezentate în corespondeță cu cele obtinuțe cu ajutorul primei metode în secțiunea 5.
4.2.2 Procesarea subtitlurilor din componența biografiilor
În secțiunea 4.2.1 au fost prezentate comparativ două metode ce au avut ca scop extragerea acțiunilor relevante în funcție de domeniul în care a activat personalitatea aleasă. Așa cum arată rezultatele obținute în urma aplicării metodelor, pentru detectarea topicelor de discuție, este necesară testarea unei noi abordări.
Noua direcție de implementare a vizat subtitlurile din componența paginilor biografice. S-a dorit crearea unui sistem de detectare automată a subtitlurilor ca fiind generale sau specifice. Subtitlurile generale sunt incluse în descrierile personalităților indiferent de domeniu (actori, presedinți) pe când cele specifice diferă de la o categorie la alta. Cateva exemple de subtitluri ar fi:
Subtitluri generale: “Family”, “Career”, “Early life”, etc;
Subtitluri specifice:
Președinți: “Political ideology”, “Financial policy”, etc;
Actori: “Acting career, Film career”, etc;
Implementarea soluției bazată pe procesarea subtitlurilor extrase din structura paginilor de Wikipedia a presupus analiza unui corpus mai mare de date datorită diversității subtitlurilor de la o personalitate la alta, aparținând chiar aceleiși categorii. Dat fiind cele menționate, corpusul de date (biografii) folosit pentru implementarea metodei l-a constituit o bază de date compusă din 7497 actori și 2206 președinți ale căror biografii au fost reținute în format-ul XML descris în cadrul secțiunii 4.1.
Etapele parcurse pentru implementarea soluției sunt:
Extragerea subtitlurilor din cadrul documentelor prin accesarea nodului XML corespunzător (<subsectionTitle>);
Calcularea similarității cosinus între oricare doua subtitluri;
Calcularea sumei totale a similarității unui subtitlu ce aparține uneia din categoriile actori/președinți, cu fiecare dintre subtitlurile aceleiași categorii;
În urma excuției pasului anterior au fost obținute doua tabele (una pe categorie – actori și președinți) conținând subtitlul și ponerea totala asociata subtitlului comparativ cu celelalte subtittluri din categorie;
Dupa extragerea intrărilor din fiecare tabela, s-au ordonat crescator subtitlurile pe categorie în funcție de similaritatea totală, astfel că la o primă vedere, subtitlurile ce au o pondere mare pot fi considearte în prima faza subtitluri generale la nivel de categorie iar subtitlurile cu o pondere ce tinde spre zero pot fi considerate specifice la nivel de personalitate. Câteva exemple obținute prin ordonarea intrărilor din cele doua tabele sunt:
Președinți
Pondere mare: „Early life and career”, „Family and early life”, „Education and early career”;
Pondere medie: „Cultural and education policy”, „Early Life and Political Career”, „First political career”;
Pondere mică: „2006 Montenegrin independence vote”, „Herrera's cabinet (1979-1984)”, „Participated in Egypt and abroad in exhibitions including”;
Actori
Pondere mare: „Early life and career”, „Personal life and early career”, „Life and career”;
Pondere medie: „Television production”, „Cinema”, „Comedy Movies”;
Pondere mică: „Princess of Gossip”, „The Kiri Prize”, „Titanic”;
Pentru o primă împărțire a subtitlurilor în generale și specifice, a fost setat prin testări repetate un prag de selecție (pentru fiecare categorie de personalități) ce extrage subtitlurile care respecta realția: pondere > prag;
Din intersecția celor două mulțimi va rezulta corpusul de titluri generale tuturor categoriilor (actori și președinți) ;
Subtitlurile ramase în fiecare categorie dupa eliminarea titlurilor constituie corpusul de subtitluri specifice pe categorie (actori și președinți);
După formarea corpusului de date se construiesc două fișiere arff, unu pentru fiecare categorie de personalități. Fișierele vor avea în componența sa în secțiunea “ATTRIBUTE”, atributul “subtitlu” de tip string iar in secțiunea “DATA”, subtitlurile împreună cu încadrarea în una din categorii: generale sau specifice (în funcție de categoria de personalitați), conform figurii 8.
Figura 8. Sectiune printr-un fișier arff
Rezultatele obținute prin aplicarea algoritmilor puși la dispoziție de Weka pentru fiecare din fișierele obținute vor fi descrise în secțiunea 5.1.2.
4.3 Extragerea celui mai relevant raspuns
Secțiunea curentă analizează posibilitățile de implementare a unei metode de raspuns la întrebările utilizatorului care interacționează în scris cu agentul conversațional. Soluția are la bază cercetările anterioare realizate în domeniul prelucrării limbajuui natural pornind de la rezultatele a doua biblioteci: ReVerb și ClausIE.
Arhitectura sistemului de întoarcere a unui raspuns pentru o întrebare dată este prezentată în figura 9 și va fi detaliată amănunțit în cele ce urmează.
Figura 9. Arhitectura sistemului de oferire raspuns
Validarea răspunsului se va face prin compararea ieșirilor oferite de fiecare bibliotecă de prelucrare și păstrarea celui mai relevant răspuns din punct de vedere semantic.
4.3.1 Biblioteca ReVerb
Implementarea metodei de raspuns la o întrebare dată bazată pe relațiile obținute prin utilizarea bibliotecii ReVerb parcurge următorii pași:
Se procesează textul extras de pe Wikipedia pentru personalitățile selectate (62 de personalități) utilizând biblioteca ReVerb;
Rezultatul procesării anterioare este reținut intr-o baza de date și conține pentru fiecare personalitate un set de triplete de forma: subiect (substantive), relație (verb), și argument (substantiv / adverb / adjectiv) după cum va fi exemplificat mai jos:
Exemple de relații extrase:
Leo Baekeland -> was born in -> Ghent;
Baekeland -> became partners with -> Leonardi Jacobi;
Baekeland -> was awarded -> the Franklin Medal;
Considerând relațiile extrase se dorește prelucrarea acestora pentru a obține cea mai relvantă prpoziție din text pentru o intrebare primită ca intrare;
Prin interogarea bazei de date rezultată la pasul anterior se prelucrează fiecare relație prin trecerea la forma de bază a cuvintelor ce o compun. Trecerea la forma de bază se realizează prin apeluri repetate la platforma online WordNet, în funcție de partea de vorbire a cuvântului curent. În cadrul acestei etape sunt considerate relevante în oferirea raspunsului doar substantivele, verbele, adverbele precum și adjectivele;
Se realizează aceeași prelucrare ca cea descrisă anterior și pentru întrebarea al carei răspuns se caută;
Pentru a vedea ce relație poate răspunde la întrebare, se calculează similaritatea întrebării din punct de vedere semantic, cu fiecare relație obținută pentru personalitatea interogată;
Va fi considerată raspuns la întrebare propoziția în care se regăsește relația cu similaritatea maximă raportată la întrebare;
4.3.2 Biblioteca ClausIE
todo
5. Rezultate
todo
5.1 Determinarea topicelor de discuție
Todo
5.1.1 Procesarea verbelor din componența biografiilor
Urmărind rezultatele obținute în tabelele 2, 3 si 4 prin aplicarea diferitor algoritmi puși la dispoziție de Weka, se poate observa că rezultatele sunt influentate nu numai de numarul de atribute folosit în cadrul clusterizarii ci și de atributele selectate. Astfel, în cazul celei de-a doua metode se poate constata că deși au fost eliminate atribute, rezultatele obținute sunt mai slabe, fapt ce denotă posibilitatea eliminării unor atribute relevante în aplicarea clusterizării.
Tabel 2
SimpleKMeans
Tabel 3
EM
Tabel 4
FarthestFirst
5.1.2 Procesarea subtitlurilor din componența biografiilor
Todo
5.2 Extragerea celui mai relevant raspuns
Todo
5.2.1 Biblioteca ReVerb
todo
5.2.2 Biblioteca ClausIE
todo
6. Concluzii
bibliograpIE
[1] Robert Schumaker, Ying Liu, Mark Ginsburg, Hsinchum Chen, Evaluating mass knowledge acquisition using ALICE chatterbot: The AZ-ALICE dialog system, Departament of Management Information System, The University of Arizona, 2006
[2] A. M. Turing, Computing Machinery and Intelligence, 1950
[3] Joseph Weizenbaum, ELIZA – A Computer Program For the Study of Natural Language Comunication Between Man And Machine, Massachusetts Institute of Technology, Cambridge
[4] Jason L. Hutchens, How to Pass the Turing Test by Cheating
[5] Richard S. Wallace, The Anatomy of A.L.I.C.E
[6] Cleverbot, [Online],
Available: http://www.cleverbot.com/ [09 Februarie 2014]
[7] Do Much More, [Online],
Available: http://www.worldsbestchatbot.com/Do_Much_More/ [09 Februarie 2014]
[8] Bob Heller, Mike Procter, Dean Mah, Lisa Jewell, Billy Cheung, Freudbot: An investigation of chatbot tehnologz in distance education, Centre for Pszchologz, Athabasca University
[9] A. Santangelo, A. Augello, A. Gentile, G. Pilato, S. Gaglio, A Chat-Bot based Multimodal Virtual Guide for Cultural Heritage Tours, DINFO, ICAR
[10] Michael L. Mauldin, Chatterbots, TinyMUDs, and the Turing Test Entering the Loebner Prize Competition, Carnegie Mellon University Center for Machine Translation, 1994
[11] Traian Rebedea, Pavel Soriano, Research paper, UPB, 2014
[12] CoreNLP, [Online],
Available: http://nlp.stanford.edu/software/corenlp.shtml [09 Februarie 2014]
[13] HTMLParser, [Online],
Available: http://htmlparser.sourceforge.net [09 Februarie 2014]
[14] Anthony Fader, Stephen Soderland, Oren Etzioni, Identifying Relations for Open Information Extraction, University of Washington, Seattle
[15] Luciano Del Corro, Rainer Gemulla, ClausIE: Clause-Based Open Information Extraction, Max-Planck-Institute fur Informatik Saarbrucken, Germany
[16] Marie-Catherine de Marneffe, Christopher D. Manning, Stanford typed dependencies manual, September 2008
[17] WEKA User Manual, University of Waikato, New Zealand
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Chatbot Care Simuleaza O Personalitate Pornind de la Informatii Biografice (ID: 149613)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
