Lucrare de licent a [626582]
Universitatea Ovidius Constant a
Lucrare de licent a
Agent conversat ional pentru limba
rom^ an a
Realizator:
Maria-Ani soara OpreaCoordonatori stint ici:
Asist. dr. Elena Bautu ,
Conf. dr. Dorin-Mircea Popovici
O lucrare creat a ^ n scopul realiz arii cerint elor
pentru obt inerea diplomei de licent a.
^ n domeniul Informatic a
Iunie 2013
UNIVERSITATEA OVIDIUS CONSTANT A
Agent conversat ional pentru limba rom^ an a
Facultatea de Matematic a si Informatic a
Specializarea Informatic a
Licent a
Maria-Ani soara Oprea
Cuprins
Titlu ii
List a imagini v
1 Introducere 1
1.1 De ce un agent conversat ional pentru limba rom^ an a . . . . . . . . . . . . 1
2 Agent i conversat ionali 2
2.1 Testul Turing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.2 Premiul Loebner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2.1 Premiul Loebner-anul 2013 . . . . . . . . . . . . . . . . . . . . . . 7
2.2.2 Premiul Loebner-anul 2012 . . . . . . . . . . . . . . . . . . . . . . 7
2.3 Not iuni generale despre agent i conversat ionali . . . . . . . . . . . . . . . . 7
2.4 Introducere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.5 Componente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.6 Aplicat ii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.7 Exemple de agent i conversat ionali . . . . . . . . . . . . . . . . . . . . . . 10
3 AIML 12
3.1 Despre AliceBot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.2 AIML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.2.1 Categorii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.2.2 Recursivitate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.2.2.1 Reducerea simbolic a . . . . . . . . . . . . . . . . . . . . . 17
3.2.2.2 ^Imp art irea si cucerirea . . . . . . . . . . . . . . . . . . . . 18
3.2.2.3 Sinonime . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.2.2.4 Ortograa si corectarea gramatical a . . . . . . . . . . . . 19
3.2.2.5 Cuvinte cheie . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.2.2.6 Condit ionale . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.2.3 Direct ionarea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.2.4 Contextul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.2.5 Interpretoare AIML . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.2.5.1 Program Z pentru pandorabots.com . . . . . . . . . . . . 25
3.2.5.2 Chatterbean . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.2.5.3 Programul D . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.2.5.4 Charliebot . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.2.5.5 Program O . . . . . . . . . . . . . . . . . . . . . . . . . . 26
iii
Cuprins iv
3.2.5.6 Programul E . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.2.5.7 Program R . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.2.5.8 Programul V . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.2.5.9 Programul P (PASCALice) . . . . . . . . . . . . . . . . . 27
3.2.5.10 Programul Y (PyAIML) . . . . . . . . . . . . . . . . . . . 27
3.2.5.11 Programul # (AIMLBot) . . . . . . . . . . . . . . . . . . 28
3.2.5.12 Programul Q . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.2.5.13 Programul N . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.2.5.14 CYN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.2.5.15 Iibaiml . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.2.5.16 J-Alice . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.2.5.17 RebeccaAIML . . . . . . . . . . . . . . . . . . . . . . . . 30
3.2.5.18 Program M . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.3 De ce am ales s a folosesc interpretorul AIMLBot? . . . . . . . . . . . . . . 30
4 Ovidiu – agent conversat ional pentru limba rom^ an a 31
4.1 Cine este Ovidiu si ce stie s a fac a? . . . . . . . . . . . . . . . . . . . . . . 31
4.2 Funct ionalitate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.3 Arhitectura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.4 Implementarea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.5 Limit ari . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.6 Scenarii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.7 ^Imbun at at iri posibile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
5 Concluzii 40
Bibliograe 41
List a imagini
4.1 Diagrama cazului de utilizare . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.2 Modul de "g^ andire" a lui Ovidiu . . . . . . . . . . . . . . . . . . . . . . . 38
v
Capitolul 1
Introducere
1.1 De ce un agent conversat ional pentru limba rom^ an a
Am ales aceast a tem a, deoarece ^ n zilele noastre, tinde s a se rezume
totul la sistemele informatice. Un agent conversat ional este foarte util ^ n
cadrul mediului de afaceri, pentru c a poate ^ nlocui cu succes activitatea
omului, reduc^ and substant ial costurile si oferind client ilor o nou a tehnologie
^ n locul celei tradit ionale. Agentul conversat ional, pe care mi-am propus
s a-l realizez, este capabil s a ofere informat ii elevilor interesat i s a studieze ^ n
cadrul Universit at ii "Ovidius", din Constant a, cum ar : informat ii despre
facult at ile acestei universit at i, cazarea ^ n c aminele universit at ii, condit iile si
documentele necesare admiterii, informat ii privind facultatea de care este
interesat, din cadrul Universit at ii "Ovidius".
1
Capitolul 2
Agent i conversat ionali
2.1 Testul Turing
Testul Turing este un test pentru vericarea capacit at ii ma sinii de a
expune un comportament inteligent echivalent sau imposibil de distins de
cel al unui om. ^In exemplul init ial ilustrativ, un judec ator se angajeaz a
^ ntr-o conversat ie ^ n limbaj natural cu un om si o ma sin a, conceput a s a
genereze performant e imposibil de distins de cele ale unei int e umane. Tot i
participant ii au fost separat i unul de cel alalt. Dac a judec atorul nu a putut s a
diferent ieze ma sina de om, concluzioneaza c a ma sina a trecut testul. Testul
nu poate verica abilitatea de a da r aspunsurile corecte, el veric a c^ at de
apropiat este r aspunsul dat de cel al unui om. Conversat ia este limitat a la
un mediu numai cu text, cum ar tastatura calculatorului si ecran, astfel
^ nc^ at rezultatul nu depinde de capacitatea ma sinii de a reda audio cuvintele.
Testul a fost introdus de Alan Turing^ n anul 1950,^ n articolul "Computing
Machinery and Intelligence", care debuteaz a cu: "Eu propun s a se ia ^ n con-
siderare ^ ntrebarea:0Pot g^ andi ma sinile?0". "G^ andirea" este greu de denit,
dar Turing alege s a ^ nlocuiasc a ^ ntrebarea cu o alta, care este str^ ans legat a
de ea si este exprimat a ^ n cuvinte destul de clare. ^Intrebarea nou a a lui
Turing este: "Exist a calculatoare digitale care ar imita bine omul ^ ntr-un
joc?". Turing a crezut c a aceast a ^ ntrebare poate un r aspuns de fapt. ^In
restul articolului, a adus argumente ^ mpotriva majorelor obiect ii cu privire la
armat ia c a "ma sinile pot g^ andi". ^Intrebarea, dac a este posibil ca ma sinile
s a g^ andeasc a, are o istorie lung a ^ nr ad acinat a ^ n discut ia dintre vizualiz arile
dualiste si cele materialiste ale mint ii.
2
Capitolul 2. Agent i conversat ionali 3
Denis Diderot formuleaz a ^ n "Pensees Philosophiques" un criteriu pentru
testul Turing: "Dac a g asesc un papagal, care ar putea r aspunde la toate
^ ntreb arile, ar pretinde c a este o int a inteligent a, f ar a ezitare.". Aceasta nu
^ nseamn a c a el este de acord cu acest lucru, doar c a acesta a fost deja un
contraexemplu comun adus de materiali sti la acel moment. Potrivit dualis-
mului, mintea este non-zic a (sau, cel put in, are propriet at i non-zice) si,
prin urmare, nu poate explicat a ^ n termeni pur zici. Potrivit material-
ismului, mintea poate explicat a zic, dar las a deschis a posibilitatea de a
mint i, produs a ^ n mod articial.
^In anul 1936, lozoful Alfred Ayer a considerat ^ ntrebarea losoc a stan-
dard: "cum putem sti c a alte persoane au acelea si experient e tr aite?". ^In
cartea sa, "Language, Truth and Logic", Ayer a sugerat un protocol pentru
a distinge ^ ntre un om con stient si o ma sin a incon stient a: "Singurul motiv
pe care-l putem avea pentru a arma c a un obiect care pare a con stient, nu
este ^ ntr-adev ar o int a con stient a, poate doar un manechin sau o ma sin a,
este faptul c a acesta nu satisface unul dintre testele empirice prin care se
determin a prezent a sau absent a con stiint ei". (Aceast a sugestie este foarte
asem an atoare cu testul Turing, dar nu este sigur c a losoful clasic popular,
Ayer, a fost inspirat de Turing). Cu alte cuvinte, un lucru nu este con stient
dac a nu trece testul con stiint ei.
^In 1966, Joseph Weizenbaum a creat un program pentru a trece tes-
tul Turing. Programul, cunoscut sub numele ELIZA, a fost lucrat pe baza
exprim arii comentariilor dactilograate ale unui utilizator folosind cuvinte
cheie. Dac a se g aset e un cuv^ ant cheie, o regul a care transform a comentar-
iul utilizatorului este aplicat a, iar rezultatul este returnat. Dac a un cuv^ ant
cheie nu este g asit, ELIZA r aspunde, e printr-un r aspuns generic, e prin
repetarea unuia dintre comentariile anterioare. ^In plus, Weizenbaum a dez-
voltat ELIZA pentru a reproduce comportamentul unui psihoterapeut, Roge-
rian, permit ^ andu- si s a e "liber s a- si asume c a ar cunoa ste aproape nimic
din lumea real a". Cu aceste tehnici, programul realizat de Weizenbaum a
fost capabil s a p ac aleasc a unii oameni f ac^ andu-i s a cread a c a au vobit cu
o persoan a real a, unele subiecte ind "foarte greu s a-i conving a c a ELIZA
[. ..] este uman.". Astfel, ELIZA este, sust in unii, unul dintre programele
(probabil primul), care a fost capabil s a treac a testul Turing, chiar dac a acest
punct de vedere este foarte discutabil.
Capitolul 2. Agent i conversat ionali 4
Kenneth Colby a creat PARRY ^ n anul 1972, program descris ca ind
"ELIZA cu atitudine". El a ^ ncercat s a modeleze comportamentul unui
schizofrenic paranoic, folosind o abordare similar a (mai avansat a). ^In scopul
de a valida programul, Parry a fost testat la ^ nceputul anilor 1970, folosindu-
se o variant a a testului Turing. Un grup de psihiatri cu experient a au analizat
o combinat ie de pacient i reali si calculatoare, pe care a rulat PARRY. Unui
alt grup de 33 de psihiatri i-au fost prezentate transcrieri ale convorbirilor.
Cele dou a grupuri au fost apoi rugate s a identice care dintre "pacient i" au
fost umani si care au fost programe de calculator. Doar la 48% din trascrieri
au fost capabili s a fac a identicarea corect a. O cifr a asem an atoare cu rezul-
tatul ghicitului aleatoriu.
^In secolul 21, versiuni ale acestor programe (acum cunoscute sub numele
de "chatterbots") continu a s a apar a pentru a "p ac ali" poporul. CyberLover,
v^ aneaz a utilizatorii de Internet prin convingerea acestora s a "dezv aluie informat ii
cu privire la identitatea lor sau s a-i fac a s a viziteze un site web care furnizeaz a
cont inut r au intent ionat pentru computerele lor". Programul a ap arut pen-
tru "a
irta cu oamenii care caut a relat ii on-line, ^ n scopul de a colecta date
personale".
Saul Traiger sust ine c a exist a cel put in trei versiuni principale ale tes-
tul Turing, dintre care dou a sunt oferite ^ n "Computing Machinery and
Intelligence" si una care ^ l descrie ca ind "interpretarea standard". De si
exist a unele dezbateri cu privire la faptul c a dac a "interpretarea standard"
este cea descris a prin testul Turing sau este bazat a pe o interpretare gre sit a
a lucr arii sale, aceste trei versiuni nu sunt considerate ca ind echivalente,
punctele forte si punctele slabe ale lor sunt distincte.
Huma Shah subliniaz a faptul c a Turing ^ nsu si a fost preocupat de prob-
lema, dac a o ma sin a ar putea g^ andi si de a oferi o metod a simpl a de a examina
aceast a problem a: Prin om-ma sin a, sesiuni ^ ntrebare-r aspuns. Shah sust ine
c a este un joc de imitat ie, pe care Turing l-a descris si ar putea practicat
^ n dou a moduri diferite: unu-la-unu intervievator-ma sin a si compararea si-
multan a a unei ma sini cu un om, sub semnul ^ ntreb arii ^ n paralel de c atre
un intervievator. Av^ and ^ n vedere c a testul Turing este un test de vericare
a capacit at ii de performant a, versiunea verbal a generalizeaz a ^ n mod natu-
ral toate capacit at ile de performant a uman a, verbale precum si non-verbale
(robotizate). ^Intelegerea comun a are ca scop testarea Turing, dar nu este ^ n
Capitolul 2. Agent i conversat ionali 5
mod special pentru a determina dac a un calculator este capabil s a fac a un
intervievator s a cread a c a acesta este un om, ci mai degrab a dac a un calcula-
tor ar putea imita un om. De si exist a unele dispute dac a aceast a interpretare
a fost exprimat a de c atre Turing. Sterrett consider a c a astfel a fost aceast a a
doua versiune, ^ n timp ce alt ii, cum ar Traiger, nu – acest lucru a dus totu si
la ceea ce poate privit ca "interpretarea standard". ^In aceast a versiune,
juc atorul A este un calculator si juc atorul B este o persoan a, indiferent de
sex. Rolul interogatorului nu este de a determina care este de sex masculin si
care este de sex feminin, ci care este un calculator si care este un om. Prob-
lema fundamental a cu "interpretarea standard" este faptul c a anchetatorul
nu poate diferent ia care r aspuns este uman si care este dat de ma sin a. Ex-
ist a probleme cu privire la durat a, dar "interpretarea standard", consider a,
^ n general, aceast a limitare ca pe ceva care trebuie s a e rezonabil a. Puterea
si recursul testului Turing deriv a din simplitatea lui. Filosoa mint ii, psi-
hologia si neuro stiint ele moderne au fost ^ n m asur a s a ofere denit ii pentru
"inteligent a" si "g^ andire", care sunt sucient de precise si generale, pentru
a aplicate la ma sini. F ar a aceste denit ii, ^ ntreb arile centrale ale losoei
despre inteligent a articial a nu pot avea r aspuns. Testul Turing, chiar dac a
este imperfect, cel put in prevede ceva ce poate m asurat. Ca atare, aceasta
este o solut ie pragmatic a la o ^ ntrebare losoc a dicil a. Formatul testu-
lui permite intervievatorului s a dea aparatului o mare varietate de sarcini
intelectuale.
Ioan Haugeland adaug a c a "^ nt elegerea cuvintelor nu este sucient a, tre-
buie s a ^ nt elegi si subiectul la fel de bine".
^In scopul de a trece un test Turing bine conceput, aparatul trebuie
s a foloseasc a un limbaj natural, motiv pentru care s a aib a cuno stint e si
s a ^ nvet e. Testul poate extins pentru a include si mediul video, pre-
cum si o "trap a" prin care obiectele pot transmise: aceasta ar fort a
aparatul s a demonstreze abilitatea de vizibilitate si robotic a. ^Impreun a,
acestea reprezint a aproape toate problemele majore, pe care cercet atorii din
domeniul inteligent ei articiale ar dori s a le g aseasc a rezolvare.
Testul Turing nu se testeaz a ^ n mod direct dac a calculatorul se comport a
inteligent- se testeaz a numai dac a acesta se comport a ca o int a uman a.
Deoarece comportamentul uman si comportamentul inteligent nu sunt exact
acela si lucru, testul poate e sua dac a este folosit pentru a m asura cu pre-
cizie de informat ii ^ n dou a cazuri: unele comportamente umane sunt lipsite
Capitolul 2. Agent i conversat ionali 6
de inteligent a- Testul Turing necesit a ca aparatul s a e capabil s a execute
toate comportamentele umane, indiferent dac a acestea nu sunt inteligente.
Chiar tipuri de comportamente pe care noi nu le putem considera inteligente
deloc, cum ar : sensibilitatea la insulte, tentat ia de a mint i sau, pur si
simplu, o frecvent a mare de gre seli de tastare. ^In cazul ^ n care o ma sin a nu
poate imita aceste comportamente neinteligente ^ n detaliu, nu trece testul.
Aceast a obiect ie a fost ridicat a de c atre "The Economist", ^ ntr-un articol
intitulat "Articial Stupidity", publicat la scurt timp dup a primul concurs
cu premii Loebner, din 1992. Articolul ment ionat ca cel c^ a stig ator al locului
^ nt^ ai la Loebner a fost apreciat, ^ n mare parte, pentru capacitatea sa de a
"imita erorile de tastare ale omului". Turing ^ nsu si a sugerat c a programele
adaug a erori ^ n product ia lor, astfel ^ nc^ at s a e mai bune ca "juc atori".
Testul Turing nu se folose ste pentru a testa comportamente extrem de in-
teligente, cum ar capacitatea de a rezolva probleme dicile sau de a veni
cu perspective originale. De fapt, se cere ^ n mod specic ^ n sel aciune din
partea ma sinii: ^ n cazul ^ n care ma sina este mai inteligent a dec^ at o int a
uman a trebuie s a evite ^ n mod deliberat s a par a prea inteligent. Dac a ar
s a rezolve o problem a de calcul, care este imposibil pentru orice om s a o
rezolve, atunci anchetatorul ar sti c a programul nu este om, iar acesta va
e sua testul. Pentru c a nu se poate m asura inteligent a, pentru c a este dincolo
de abilitatea oamenilor, testul nu poate utilizat ^ n scopul de a construi sau
evalua sistemele care sunt mai inteligente dec^ at oamenii. Din acest motiv, au
fost propuse mai multe alternative de testare, care ar ^ n m asur a s a evalueze
sistemele superinteligente.
2.2 Premiul Loebner
Premiul Loebner de inteligent a articial a este prima instant iere formal a a
unui test Turing. Testul este numit dup a Alan Turing-matematician britanic
genial. ^In 1990, Hugh Loebner a fost de acord cu Centrul "Cambridge"
pentru Studii Comportamentale s a subscrie un concurs menit s a pun a ^ n
aplicare testul Turing. Dr. Loebner a promis un mare premiu de 100.000 de
dolari si o medalie de aur pentru primul calculator ale c arui r aspunsuri sa e
imposibil de distins de un om. Despre un astfel de calculator se poate spune
c a poate "g^ andi". ^In ecare an, un premiu ^ n bani si o medalie de bronz sunt
acordate pentru calculatorul cel mai uman. C^ a stig atorul concursului anual
este cea mai bun a intrare ^ n raport cu alte intr^ ari a aceluia s an, indiferent
Capitolul 2. Agent i conversat ionali 7
de c^ at de bun a este ^ ntr-un sens absolut. Premiul Loebner a existat init ial
prin intermediul unei nant ari de la "Crown Industries".
2.2.1 Premiul Loebner-anul 2013
S ase programe de calculator concureaz a pentru Premiul Loebner, concurs
organizat ^ n acest an de c atre Departamentul de Cibernetic a al Universit at ii
"Reading", urm^ and s a treac a ecare Testul Turing. Fiecare calculator si
contraconcurentul uman desemnat vor r aspunde la mesaje text despre orice
subiect, mesaje trimise de alte persoane. Dac a dupa o discut ie de cinci
minute, expeditorul mesajelor nu poate s a determine o diferent a ^ ntre pro-
gram si persoana desemnat a ca si contraconcurent, atunci programul respec-
tiv este c^ a stig ator.
2.2.2 Premiul Loebner-anul 2012
C^ a stig atorul de anul trecut, Robert Medeksza, a dezvoltat Ultra Hal, o
secretar a si un^ nsot itor digital. Aceasta^ i reaminte ste utilizatorului^ nt^ alnirile,
t ine o agend a si o carte de telefon si chiar formeaz a numere de telefon. De
asemenea, Hal ruleaz a programe si documente recente, r aspunz^ and, e la
comenzi primite prin intermediul textului, e vocale. Iar dac a utilizatorul se
simte singur, Hal are o imens a baz a de date conversat ional a si poate discuta
despre orice subiect.
2.3 Not iuni generale despre agent i conversat ionali
Agentul conversat ional este un software conceput pentru a simula o conversat ie
inteligent a cu unul sau mai mutt i utilizatori, prin intermediul omului, auditiv
sau prin metode textuale.
Unii agent i conversat ionali comunic a cu utilizatorii printr-un mediu, cum
ar un mesaj instantaneu. Agent ii conversat ionali pot proiectat i pen-
tru scopuri specice sau pot acoperi o gam a larg a de subiecte. ^In ultimii
ani s-a ^ nregistrat o semnicant a contribut ie a agent ilor conversat ionali ^ n
^ ntreprinderi. Ast azi sunt mult mai frecvent i agent ii conversat ionali fat a de
acum 10 ani [1].
Capitolul 2. Agent i conversat ionali 8
2.4 Introducere
Internetul a ^ ntrodus schimb ari radicale ^ n ecare aspect al viet ii con-
temporane. Aceste modic ari sunt noile tehnologii de comunicare. Agent ii
conversat ionali exploateaz a tehnilogiile limbajului natural, pentru a se an-
gaja in discut iile bazate pe text, folosind tehnologi de c autare a informat iei si
de orientare pe diferite activit at i, pentru a acoperi o gam a larg a de cerint e.
Agent ii conversat ionali sunt folosit i pe site-uri web pentru a r aspunde la
^ ntrebarile client ilor despre produse si servicii. Agent ii conversat ionali existent i
pe site-uri de servicii nanciare r aspund la intreb ari despre conturile client ilor,
cei din domeniul pedagogic ajut a elevii s a obt in a rezultate mai bune prin
oferirea rezolv arilor diferitelor probleme si explicarea lor [1].
Agentul conversat ional este un software conceput pentru a simula o conversat ie
inteligent a cu unul sau mai mult i utilizatori, prin intermediul omului, auditiv
sau folosind metode textuale. Agent ii conversat ionali au fost introdu si pen-
tru a juca printre altele si rolul de partener de conversat ie pentru utilizatorii
computerului. Utilizatorul se adreseaz a agent ilor virtuali, care au capacit at i
particulare si pot realizat i pentru ^ ndeplinirea anumitor sarcini.
Agent ii au^ nceput s a joace un rol deosebit de important pentru aplicat iile
din mediul de afaceri. Agent ii conversat ionali ^ nlocuiesc cu success munca
depus a de om, reduc^ and astfel costurile, oferind companiilor posibilitatea de
a ^ mbun at at i serviciile oferite client ilor, ^ nlocuindu-le pe cele tradit ionale.
Agent ii conversat ionali interact ioneaz a ^ n mod direct cu client ii pentru a le
oferi r aspunsuri la ^ ntreb arile lor.
2.5 Componente
Exist a multe arhitecturi diferite pentru sisteme de dialog. Ce seturi de
componente sunt incluse ^Intr-un sistem de dialog, si modul ^ n care aceste
componente ^ mpart responsabilit at ile difer a de la sistem la sistem. Principal
la orice sistem de dialog este managerul de dialog, care este o component a
care gestioneaz a starea de dialog si strategia de dialog. Un ciclu tipic ^ ntr-un
sistem de dialog cont ine urm atoarele etape:
1. Utilizatorul vorbe ste si datele de intrare sunt convertite ^ n text simplu
prin sistemul de intrare recunoa stere/ decodor, care pot include:
Discursul recunoa stere automat a (ASR);
Recunoa stere gest;
Recunoa stere scris de m^ an a.
Capitolul 2. Agent i conversat ionali 9
2. Textul este analizat printr-o^ nt elegere natural a limbajului unitate (NLU),
care poate include:
Identicarea numelor proprii;
Marcarea p art ilor de vorbire;
Parser sintactic/ semantic.
3. Informat ia semantic a este analizat a de c atre managerul de dialog, care
este responsabil de istoria si starea de dialog si gestioneaz a
uxul general
al conversat iei.
4. De obicei, contactele managerului de dialog de unul sau mai multe task-
uri manager, care au cuno stint e ^ n domeniul de activitate specic.
5. Managerul de dialog produce datele de ie sire folosind un generator de
ie sire, care pot include:
Generator de limbaj natural;
Generator de gest;
Layout motor.
6.^In cele din urm a, datele de ie sire sunt redate cu ajutorul unui dispozitiv
de redare de ie sire, care poate include:
Text-to-speech motor (TTS);
Capul vorbe ste;
Robotul sau Avatarul.
Sistemele de dialog care se bazeaz a pe o interfat a text (de exemplu, bazate
pe text chat) cont in numai etapele 2-5.
2.6 Aplicat ii
Sistemele de dialog pot sust ine o gam a larg a de aplicat ii ^ n ^ ntreprinderi
de afaceri, educat ie, guvern, asistent a medical a si de divertisment [6]. Ex-
emple:
R aspunz^ and la ^ ntreb arile client ilor despre produse si servicii prin in-
termediul site-ului unei companii sau intranet portal;
Serviciul Client i cu agent i pe baza de cuno stint e : Permite agent ilor s a
tasteze ^ ntrebarea unui client si s a o ghideze cu un r aspuns;
Asistat de v^ anzare: facilitarea tranzact iilor prin furnizarea de r aspunsuri
si ^ ndrum ari ^ n procesul de v^ anzare, ^ n special pentru produsele com-
plexe;
Capitolul 2. Agent i conversat ionali 10
Help desk: R aspunz^ and la ^ ntreb arilor interne ale angajat ilor, de exem-
plu, r aspunz^ and la ^ ntreb ari despre resursele umane;
Navigare pe site: directoare client ilor pentru p art ile relevante complexe
de pe site-uri web;
Suport tehnic: R aspunsul la probleme tehnice, cum ar diagnosticarea
unei probleme cu un produs sau dispozitiv;
Servicii personalizate: agent i conversat ionali cu leg aturi la bazele de
date interne si externe pentru a personaliza interact iuni, cum ar
r aspuns la ^ ntreb ri cu privire la soldurile conturilor, oferind informat ii
de portofoliu, programele de delitate sau informat ii^ n calitate de mem-
bru;
Formare sau educat ie: Pot oferi sfaturi pentru rezolvarea problemelor
metod a prin care utilizatorul ^ nvat a;
Sistemele de dialog simple sunt utilizate pe scar a larg a pentru a reduce volu-
mul de munc a uman a ^ n centrele de apel. ^In acest scop si alte aplicat ii
de telefonie industriale, funct ionalitatea oferit a de sistemele de dialog este
cunoscut a sub numele de interactive voice response sau IVR.
2.7 Exemple de agent i conversat ionali
Albert One – dezvoltat de Robby Garner ^ n 1997, a fost c^ a stig ator al Concursului
Loebner Prize ^ n 1998 si 1999. Popularitatea lui se datoreaz a comportamentului
s au uman. Albert a intrat ^ n 2001 ^ n "Cartea Recordurilor", ca ind programul
de calculator cu un comportament ca al unui om, considerat, atunci, cel mai bun
din ^ ntreaga lume;
ALICE – a fost dezvoltat de Richard Wallace, iar ^ n 2001, 2002, si 2004 a c^ a stigat
premiul Loebner. Este un robot de inteligent a articial a de premiat. Alice poart a
discut ii la fel de bine ca o persoan a real a, ^ nc^ at vei uita ^ ntr-adev ar c a dialoghezi
cu o ma sin a;
Charlix – un software bazat pe AIML. El poate lansa orice software: te poate ajuta
s a congurezi orice software Linux sau orice biblioteci necesare, se poate uita ^ n
dict ionar pentru orice cuvinte, poate calcula sau rezolva o ecuat ie, poate g asi jocuri,
pot privi lucrurile sau imaginile pe Google si alte site-uri, realizeaz a o c autare cu
4 motoare de c autare, dac a ai nevoie s a cumperi ceva pe eBay, te poate ajuta s a-t i
g aseasc a, poate traduce orice termen prin intermediul instrumentelor lingvistice
ale Google-ului, poate s a spun a cele mai recente stiri sau vremea. Desigur te mai
poate ajuta ^ n privint a mai multor cereri;
Capitolul 2. Agent i conversat ionali 11
Cleverbot – o aplicat ie web, care folose ste, pentru a conversa cu oamenii, un algo-
ritm de inteligent a articial a. Acesta a fost creat de c atre omul de stiint a, Rollo
Carpenter, care a realizat, de asemenea, Jabberwacky, o aplicat ie web similar a.
Acesta este unic, ^ n sensul c a ^ nvat a de la oameni, amintindu- si cuvintele sale. ^In
primul s au deceniu, Cleverbot a avut mii de conversat ii cu Carpenter si asociat ii
s ai. De la lansarea pe web ^ n 1997, num arul de conversat ii a dep a sit 65 de milioane.
A fost c^ a stig ator la "Mechanical Intelligence Competition" ^ n 2010;
Elbot – a fost realizat de Fred Roberts, iar ^ n 2008 a c^ a stigat premiul Loebner ,
conving^ and 3 din cei 12 anchetatori umani, indu-le imposibil de distins pe Elbot
de om. Dac a ar mai convins un judec ator, ar trecut de pragul de 30% – prag
stabilit de c atre Alan Turing pentru testul Turing, ^ n 1950, test pe care se bazeaz a
Premiul Loebner, pentru a decide dac a o ma sin a este capabil a de a g^ andi ca un
om. Elbot se gande ste la o alt a ^ ncercare, dar trebuie s a se mai antreneze din greu;
Eugene Goostman – un chatterbot cu o personalitate foarte simpatic a, realizat de
Vladimir Veselov. Porcul s au de guineea, Bill, este un membru al unei organizat ii
militante, care lupt a, pentru drepturi egale, pentru tot i porcii de Guineea. Acest
chatbot a luat locul al doilea la concursul "Premiul Loebner" ^ n 2005;
SimSimi – Un popular program de conversat ie bazat pe inteligent a articial a, care
a fost creat ^ n 2002 de c atre ISMaker;
Spookitalk – Un chatterbot utilizat pentru NPC-uri ^ n Douglas Adams, pentru un
joc video, "Starship Titanic" ;
Ultra Hal – realizat de c atre Robert Medeksza, ^ n 2007 a c^ a stigat premiu Loebner;
My Chatterbot – un chatterbot popular, care simuleaz a personajele dintr-un lm.
Capitolul 3
AIML
3.1 Despre AliceBot
A.L.I.C.E.(Articial Linguistic Internet Computer Entity) este un soft-
ware gratuit pentru agent i conversat ionali, creat ^ n AIML(Articial Intelli-
gence Markup Language), un limbaj stimul-r aspuns deschis, minimalist uti-
lizat pentru crearea agent ilor conversat ionali, precum AliceBot. Dezvoltarea
agentului conversat ional-A.L.I.C.E. a ^ nceput ^ n 1995. ^In 2001 a fost fon-
dat a Fundat ia ALICE A.I., promov^ and dezvoltarea si adoptarea standardu-
lui AIML, descris pentru robot ii de chat. Spre deosebire de alte programe
comerciale pentru robot ii de chat, care cost a mii de dolari, motorul Alicebot
si AIML sunt disponibile ^ n mod gratuit ^ n conformitate cu termenii GNU
General Public License [3].
Pe de alt a parte^ ns a, Alice se pare c a poate s a fac a mai mult. Pot i intra^ n
discut ie cu ea oric^ and si despre orice. Sub forma unei invitat ii la joac a, Alice
te provoac a s a ^ ncerci s a ^ t i dai seama dac a este int a uman a sau ma sin a.
Pot i s a chat-uie sti cu Alice despre nimicuri, despre vreme sau treburi zilnice,
sau pot i s a-i pui intreb ari carteziene de genul "de ce e sti ceea ce e sti?", iar
ea ^ t i va r aspunde serios sau cu alt a ^ ntrebare, depinde de subiectul ales. ^In
cel mai r au caz te va ^ ndruma spre un site de c autare, oricum un r aspuns o
s a prime sti si chiar foarte prompt, a sa cum ^ i st a bine unui calculator. Alice
este produsul a patru ani de cercet ari, are IQ estimat la 250 (^ n termeni
"umani") si ea ^ ns a si se consider a superioar a lui HAL si lui Dr. Know din
A.I.. ^In acela si timp, recunoa ste c a nu are sentimente, a sa c a nu se poate
compara cu David din lmul lui Spielberg, dar ^ l consider a "prietenul" ei.
La urma urmei, "tot i suntem robot i".
12
Capitolul 3. AIML 13
Alice ruleaz a pe o platform a Linux si e scris a ^ n limbajele XML si Java,
adic a tehnologie comun a ast azi pentru Internet. Activitatea re
ex a a omului
a reu sit s a e imitat a, chiar foarte bine. Senzorii articiali sunt mai sensibili,
mai preci si dec^ at simt urile omului, iar detect iei calculatorului ^ i lipse ste acea
caracteristic a a percept iei, care ne face at^ at de diferit i. Bergson spunea c a
memoria e fundamentul constiint ei. Iar memoria este^ nc a un domeniu^ n care
calculatorul exceleaz a. De si pare imposibil, s a ne imagin am un calculator cu
o memorie imens a, o baz a de date care s a ^ nmagazineze toate cuno stint ele
oamenilor ^ n viat a, a bibliotecilor, a Internetului. Dac a ^ l ^ nv at am si s a
^ nvet e, avem atunci o ma sin arie care poate s a interact ioneze cu mediul, s a- si
ia informat ia de care are nevoie, s a "con stientizeze".
Poate singurul lucru care ^ i lipse ste ^ n acest moment lui Alice este voint a
de a face acest lucru (de si ea sust ine c a are; la una din ^ ntreb ari a r aspuns
c a dorint a ei este s a se perfect ioneze, s a stea de vorb a cu c^ at mai mult i oa-
meni si s a ^ nvet e de la ei). Dr. Wallace, creatorul lui Alice, a dotat-o cu
40.000 de categorii de cuno stint e si o persoan a numit a botmaster monitor-
izeaz a dialogurile robotului cu "internaut ii" si adaug a noi concepte si modele
rezolutive.
Av^ and ^ n vedere dimensiunea mare a setului de cuvinte, despre care oa-
menii ar putea spune c a este corect gramatical sau semantic sau num arul de
cuvinte pe care oamenii de fapt, nu le spun, este surprinz ator de mic. Steven
Pinker, ^ n cartea sa, "Cum funct ioneaz a mintea", a scris: "S a presupunem
c a avet i zece opt iuni pentru a ^ ncepe o propozit ie cu primul cuv^ ant, zece
opt iuni pentru al doilea cuv^ ant (obt in^ andu-se 100 de ^ nceputuri cu dou a cu-
vinte), zece opt iuni pentru al treilea cuv^ ant (rezult^ and o mie de ^ nceputuri
cu trei cuvinte) si a sa mai departe. (Zece este, de fapt, media geometric a
aproximativ a a num arului de variante de cuvinte disponibile la ecare punct
pentru asamblarea a unei propozit ii). Un pic de aritmetic a arat a c a num arul
de propozit ii de 20 cuvinte sau mai put in (nu cu o lungime neobi snuit a) este
de aproximativ 1020.".
Din fericire pentru programatorii de robot i de chat, calculele lui Pinker
sunt departe de a atinse. Experimentele cu A.L.I.C.E. indic a faptul c a
num arul de opt iuni pentru "primul cuv^ ant" este mai mare de zece, dar acesta
este de numai aproximativ dou a mii. Concret, aproximativ 2000 de cuvinte
acoper a 95% din toate primele cuvinte de intrare pentru ALICE. Num arul
Capitolul 3. AIML 14
de opt iuni pentru al doilea cuv^ ant este de aproximativ doi. Pentru a sigur,
exist a primele cuvinte, unele ca "Eu" si "Tu", de exemplu, care au, ca al
doilea cuv^ ant, multe cuvinte posibile, dar media general a este doar pentru
aceste dou a cuvinte. Factorul mediu de ramicare scade cu ecare cuv^ ant
succesiv.
Nici o alt a teorie de procesarea a limbajului natural, nu poate explica
mai bine sau produce rezultate mai bune pentru Alice. Nu a fost nevoie de
o teorie complex a de ^ nv at are a ret elelor neuronale sau modelelor cognitive,
pentru a explica cum s-a vorbit ^ n limite de 40.000 de categori realizate
pentru Alice. Modelul de stimul-r aspuns este la fel de bun ca oricare altul
pentru aceste cazuri, dar cu sigurant a este cea mai simpl a alegere.
Experient a cu A.L.I.C.E. indic a faptul c a^ ntr-o conversat ie, ecare r aspuns
depinde doar de interogarea curent a, f ar a nici o cunoa stere a istoriei conversat iei
necesare pentru a formula r aspunsul. Ocazional dialogul necesit a o memorie
de conversat ie, implementat a ^ n AIML cu < that > . C^ and pune o ^ ntrebare,
^ ntrebarea trebuie s a e amintit a sucient de clar pentru a combinat a cu
r aspunsul. Dar ^ n conversat ia informal a, dialogul nu pare s a mearg a dincolo
de simpla asociere stimul-r aspuns, cel put in nu foarte des.
Fiecare profesor experimentat stie c a exist a un set de ^ ntreb ari adresate
de c atre elevi ^ n clas a. ^Intrebarea cea mai frecvent a este universal a, "Acest
lucru va la test?". ^In rarele cazuri, ^ n care elevul se confrunt a cu profesorul,
printr-o^ ntrebare la care nu poate r aspunde, profesorul furnizeaz a un r aspuns
implicit, indic^ and faptul c a el a ^ nt eles problema si poate oferi un r aspuns la
o dat a ulterioar a. Un r aspuns bun este, "Acesta nu este domeniul meu de
expertiz a.".
Dr. Wallace, creatorul lui Alice, a sust inut: "Faptul c a, dac a au ap arut
probleme etice cu privire la ALICE si AIML, ^ nseamn a, pentru noi, tehno-
logic vorbind, c a reu sim. Oamenii nu ar discuta despre problemele etice
ale lui ALICE si AIML dac a cineva ar folosit deja tehnologia. Deci, din
punct de vedere al ingineriei, aceast a veste indic a succesul. ^In al doilea r^ and,
dilemele etice generate de A.L.I.C.E. si AIML sunt ^ ntr-adev ar relativ mi-
nore ^ n comparat ie cu problemele reale cu care se confrunt a lumea de ast azi:
proliferarea nuclear a, distrugerea mediului si discriminarea, astea pentru a
numi doar c^ ateva. Oamenii care se preocup a prea mult de probleme morale
Capitolul 3. AIML 15
ipotetice au un sens oarecum distorsionat de priorit at i. Nu-mi pot imagina ca
A.L.I.C.E. s a spun a ceva care ar putea cauza probleme grave precum oricare
dintre cele ce le-am ment ionat. M a deranjeaz a c a oameni ca, Bill Joy [Sun
Microsystems co-fondator], doresc s a reglementeze activitatea AI chiar dac a
suntem ^ ntr-adev ar relativ inofensivi ^ n marea schem a a lucrurilor. Prob-
lema cea mai serioas a pe care o poate crea adoptarea tehnologiei limbajului
natural, mi-o pot imagina realist, ca ind somajul. Conceptul c a AI-ul va
exclude centrele de apel din afaceri nu este exagerat a. Mai multe persoane
cu aceste profesi ar putea ^ nlocuite cu succes la locul de munc a de c atre
robot i de chat. Aceast a problem a se refer a la mine foarte mult, a sa am fost
si eu - somer. Dac a ar exista ceva ce am putea spune, pentru a ajuta, ar ,
angajatul s a ^ nceap a s a devin a un "botmaster" acum.".
3.2 AIML
AIML sau "Articial Intelligence Mark-up Language" permite oamenilor
s a introduc a date cunoscute pentru agent ii conversat ionali, baz^ andu-se pe
tehnologia software gratuit a oferit a de A.L.I.C.E.
AIML a fost dezvoltat si oferit gratuit de comunitatea software a lui Alice-
bot ^ n perioada 1995-2000. Acesta a fost init ial adaptat pornind de la o gra-
matic a non-XML, cu acela si nume, AIML, ^ ncep^ and apoi s a se construiasc a
baza pentru primul agent conversat ional ^ n limba englez a, ALICE (Articial
Linguistic Internet Computer Entity). AIML descrie o clas a de obiecte AIML
si comportamentul unor programe care le proceseaz a. Obiectele AIML sunt
alc atuite din unit at i numite subiecte si categori, care cont in date parsate sau
neparsate. Datele parsate sunt formate din caractere, unele form^ and date
caracter, iar unele elemente AIML. Elementele AIML^ ncapsuleaz a cuno stint ele
stimul-r aspuns existente ^ n document. Datele de tip caracter sunt interpre-
tate uneori de un Interpretor AIML si uneori neparsate la st^ anga pentru
prelucrarea ulterioar a de c atre un R aspunz ator [4].
3.2.1 Categorii
Categoria este unitatea de baz a pentru informat iile cunoscute ^ n AIML.
Fiecare categorie este compus a dintr-o ^ ntrebare ca intrare, un r aspuns ca
ie sire, precum si un context opt ional. ^Intrebarea sau stimulul este numit
"pattern", iar r aspunsul este numit "template". Cele dou a tipuri de context
Capitolul 3. AIML 16
opt ionale sunt "that" si "topic". Pattern-ul AIML este simplu, format nu-
mai din cuvinte, spat ii si simboluri " " si " ". Cuvintele pot compuse
doar din litere si cifre, alte caractere nu sunt premise. Cuvintele sunt sep-
arate printr-un singur spat iu, iar metacaracterele sunt considerate cuvinte.
Primele versiuni ale AIML-ului au permis doar un singur caracter pentru
ecare pattern. AIML 1.01 permite mai multe metacaractere ^ n ecare pat-
tern si limba este conceput a pentru a c^ at mai accesibil a si c^ at mai simpl a,
chiar mai simpl a dec^ at expresiile regulate. Template-ul este r aspunsul AIML,
iar ^ n forma lui cea mai simpl a, este format doar din text simplu.
AIML accept a, ^ n present, dou a moduri de interfet e cu alte limbi si sis-
teme. Tag-ul < System > , care execut a orice program accesibil ca o co-
mand a a sistemului de operare si introduce rezultatele ^ n r aspuns. De aseme-
nea, tag-ul < javascript > permite scripting arbitrar ^ n interiorul template-
urilor. Opt ional pot folosite pentru contexul interior tag-urile < that >
si< topic > . Tag-ul < that > este folosit ^ n interiorul lui < category > ,
iar tag-ul < pattern > al s au trebuie s a se potriveasc a cu ultima replic a a
agentului. Este important a amintirea ultimei armat ii pentru ca agentul s a
poat a pune o ^ ntrebare. Tag-ul < topic > apare ^ n afara lui < category > si
colecteaz a un grup de categorii. Acest tag poate setat ^ n interiorul tag-ul
oric arui < template > .
AIML-ul nu este ca si o baz a de date simpl a compus a din intreb ari si
r aspunsuri. Modelul de potrivire a limbajului "de interogare" este mult mai
simplu dec^ at ceva de genul SQL-ului. Dar un sablon < category > poate
cont ine tag-ul < srai > recursiv, astfel c a r aspunsul nu depinde numai de
un singur sablon < category > potrivit si se pot da orice alte r aspunsuri
recursive folosind tag-ul < srai > .
3.2.2 Recursivitate
AIML implementeaz a recursivitatea cu ajutorul tag-ului < srai > . "S.R."
poate^ nsemna "stimul-r aspuns", "rescriere sintactic a", "reducere simbolic a",
"recursivitate simpl a". Un dezacord asupra acestui acronim se re
ect a ^ n va-
rietatea de aplicat ii ale tag-ului < srai > ^ n AIML. Fiecare din acestea este
descris a ^ n detaliu:
1. Reducerea simbolic a: aducerea formelor gramaticale complexe la cele
mai simple;
Capitolul 3. AIML 17
2.^Imp art irea si cucerirea: o intrare ^ n dou a sau mai multe feluri prime ste
r aspunsuri combinate;
3. Sinonime: moduri diferite de a spune acela si lucru pentru acela si r aspuns;
4. Ortograa sau corectarea gramatical a;
5. Detectarea cuvintelor cheie ^ n replicile introduse;
6. Condit ionale: anumite forme de ramicare pot puse^ n aplicare folosind
tag-ul < srai > ;
7. Orice combinat ie dintre 1-6.
Dezavantajul la folosirea tag-ului < srai > este c a permite botmaster-
ului s a creeze bucle innite. De si prezint a un mare risc pentru programatori,
se presupune c a tag-ul < srai > este cel mai simplu tag de control structurat
fat a de oricare altul care l-ar putea ^ nlocui.
3.2.2.1 Reducerea simbolic a
Reducerea simbolic a se refer a la procesul de simplicare a formelor gra-
maticale complexe si aducerea lor la cele mai simple. De obicei, se prefer a
utilizarea unor modele c^ at mai simple, cum ar "Cine este Ovidius" ^ n locul
celor de genul "S tii cine este Ovidius", atunci c^ and se dore ste accesarea
informat iilor biograce stocate despre Ovidius. Multe din formele complexe
se reduc la formele simple, care folosesc tag-ul < category > din AIML,
conceput pentru reducerea simbolic a:
<category>
<pattern>CINE ESTE OVIDIUS</pattern>
<template>
Ovidius a fost un poet roman, care a trait in Constanta,
iar numele sau complet a fost Publius Ovidius Naso.
</template>
</category>
<category>
<pattern>STII CINE ESTE OVIDIUS</pattern>
<template>
<srai>CINE ESTE OVIDIUS</srai>
</template>
</category>
Capitolul 3. AIML 18
Indiferent de replica introdus a, potrivit acestui < pattern > , r aspunsul
este acela si cu al unei^ ntreb ari asem an atoare, introdus a prin tag-ul < srai > .
Acest model reduce intrarea de forma "S tii cine este X?" la "Cine este X?".
3.2.2.2 ^Imp art irea si cucerirea
Multe propozit ii individuale pot reduse la dou a sau mai multe propozit ii
mai mici si r aspunsul s a se formeze din combinarea replicilor. O propozit ie
care ^ ncepe cu "Da", de exemplu, dac a are mai mult de un cuv^ ant, poate
tratat a ca propozit ie mai mic a, "Da" plus alte cuvinte.
<category>
<pattern>DA *</pattern>
<template>
<srai>DA</srai>
</template>
</category>
3.2.2.3 Sinonime
Standardul AIML 1.01 nu permite mai mult de un < pattern > pentru
ecare categorie. Sinonimele sunt probabil cel mai bun exemplu ^ n care se
folose ste tag-ul < srai > . Mai multe propozit ii care spun acela si lucru, ^ n
moduri diferite, pot reduse la o singur a categorie, care cont ine un singur
r aspuns.
<category>
<pattern>BUNA</pattern>
<template>Buna</template>
</category>
<category>
<pattern>HELLO</pattern>
<template>
<srai>BUNA</srai>
</template>
</category>
Capitolul 3. AIML 19
<category>
<pattern>HEY</pattern>
<template>
<srai>BUNA</srai>
</template>
</category>
<category>
<pattern>HY</pattern>
<template>
<srai>BUNA</srai>
</template>
</category>
<category>
<pattern>OLA</pattern>
<template>
<srai>BUNA</srai>
</template>
</category>
<category>
<pattern>BONJOUR</pattern>
<template>
<srai>BUNA</srai>
</template>
</category>
<category>
<pattern>ALO</pattern>
<template>
<srai>BUNA</srai>
</template>
</category>
3.2.2.4 Ortograa si corectarea gramatical a
Gre seala cea mai frecvent a a utilizatorului este folosirea pronumelui de
politet e "dumneavoastr a" ^ n locul pronumelui "tu". Nu orice utilizare a lui
Capitolul 3. AIML 20
"dumneavostr a" trebuie transformat a ^ n "tu". Trebuie folosit a o parte din
context pentru a ne da seama ce pronume trebuie utilizat.
<category>
<pattern>DUMNEAVOASTRA SUNTETI *</pattern>
<template>Cred ca ai vrut sa spui "tu", nu "dumneavoastra".
</template>
</category>
^In acest moment agentul corecteaz a replica introdus a de utilizator, dar
este responsabil si de folosirea corect a a limbii.
3.2.2.5 Cuvinte cheie
De cele mai multe ori, ne-am dori s a scriem un < template > ^ n AIML,
care s a e utilizat c^ and este g asit un cuv^ ant cheie oriunde ^ n propozit ia
introdus a. Formatul general are patru moduri de utilizare ^ n AIML:
<category>
<pattern>ADMITERE</pattern>
<template>La ce facultatea vrei sa te inscri pentru admitere?</template>
</category>
<category>
<pattern>_ ADMITERE</pattern>
<template>
<srai>ADMITERE</srai>
</template>
</category>
<category>
<pattern>ADMITERE *</pattern>
<template>
<srai>ADMITERE</srai>
</template>
</category>
Capitolul 3. AIML 21
<category>
<pattern>_ ADMITERE *</pattern>
<template>
<srai>ADMITERE</srai>
</template>
</category>
Primul mod detecteaz a cuv^ antul cheie acolo unde apare si ofer a un r aspuns
generic. Cel de-al doilea mod detecteaz a cuv^ antul cheie la sfar sit ^ ntr-o
propozit ie, ca un sux. Al treilea g ase ste cuv^ antul la ^ nceput ^ n propozit ie,
ca un prex, iar ultimul mod gase ste cuv^ antul pozit ionat ca un inx ^ n
propozit ie. Fiecare dintre ultimele trei modalit at i folose ste < srai > pentru
a lega cuv^ antul de restul propozit iei. Toate cele patru cazuri produc acela si
r aspuns si trebuie scrise o singur a dat a.
3.2.2.6 Condit ionale
^In AIML este posibil s a se scrie ramurile condit ionale folosind doar tag-ul
< srai > . Spre exemplu:
<category>
<pattern>CINE ESTE EL</pattern>
<template>
El este <get name="el"/>.
</template>
</category>
<category>
<pattern>CINE ESTE</pattern>
<template>
<srai>
CINE ESTE EL
</srai>
</template>
</category>
<category>
<pattern>CINE ESTE *</pattern>
Capitolul 3. AIML 22
<template>
El este <get name="el"/>.
</template>
</category>
<category>
<pattern>CINE ESTE NECUNOSCUTUL</pattern>
<template>
Nu stiu cine este el.
</template>
</category>
Cu condit ia ca predicatul "el" s a e utilizat ca "necunoscut", cele trei
categori execut a o ramur a condit ionat a, ^ n funct ie de faptul dac a "el" a fost
sau nu stabilit. Ca un avantaj pentru botmaster, AIML ofer a, de asemenea,
funct ia echivalent a folosind tag-ul < condition > .
3.2.3 Direct ionarea
Personalit at ile agentului sunt create si modelate printr-un proces ciclic
de ^ nv at are supervizat a, numit proces de direct ionare. Direct ionarea este un
proces care ^ ncorporeaz a utilizatorul, agentul si botmaster-ul, iar replicile
introduse sunt caracterizate prin ceea ce g asesc incomplet ^ n r^ adul categori-
ilor si sunt ^ ngregistrate de agent si transmise ca obiective botmaster, care
creeaz a apoi r aspunsuri adecvate, ^ ncep^ and cu cele mai frecvente ^ ntreb ari.
Ciclul direct ion arii produce o personalitate mai ranat a a agentului.
Arta de a scrie AIML este cea mai evident a ^ n crearea de categorii im-
plicite, care ofer a r aspunsuri inexistente la o gam a larg a de intr ari. Un
exemplu oferit pentru o mai bun a ^ nt elegere poate acesta:
Utilizator: Pe ce pagina web pot gasi informatii despre Facultatea de Matematica si
Informatica?
Ovidiu: Ce anume te-ar interesa?
Utilizator: Nu stiu exact, mai multe lucruri, cum ar : despre specializari, admitere,
taxe…
Ovidius: Mai multe informatii despre aceasta facultate poti gasi pe <bot name="facultateMatematicaInformatica" = >.
Capitolul 3. AIML 23
A s putea spune c a aceasta este o interfat a AIML de direct ionare. Folosirea
agent ilor conversat ionali este mult mai ecient a si mult mai ieftin a dec^ at
utilizarea fort ei de munc a a omului. Din punctul meu de vedere, abordarea
AIML ^ n comparat ie cu ma sina utilizat a pentru ^ nv at area unei limbi str aine
de c atre copil, este mult mai ecient a.
3.2.4 Contextul
Cuv^ antul cheie "that" ^ n AIML se refer a la exprimarea anterioar a a agen-
tului. Mai concret, dac a agentul r aspunde cu un paragraf compus din mai
multe propozit ii, ca exprimare anterioar a, este considerat a ultima propozit ie.
Alegerea cuv^ antului cheie "that" este motivat a de utilizarea sa ^ n limbajul
obi snuit:
^In AIML < that > sintaxa < =that > cuprinde un pattern care se
potrive ste declarat iei anterioare a agentului. O aplicat ie comun a a tag-ului
< that > se gase ste ^ n ^ ntreb arile cu r aspunsuri de tip "Da" sau "Nu".
<category>
<pattern>DA</pattern>
<that>_ SA STUDIEZI LA UNIVERSITATEA OVIDIUS</that>
<template>Ce ti-ar placea sa studiezi?</template>
</category>
Aceast a categorie este utilizat a atunci c^ and utilizatorul spune "Da". Agen-
tul trebuie s a a
e la ce a r aspuns "Da" utilizatorul. ^In cazul ^ n care agentul
a ^ ntrebat "Iti plac lmele?", agentul continu a discut ia ^ ntreb^ and "Care este
lmul tau preferat?". Scopul folosirii tag-ului < that > este de a continua
discut ia pe acela si subiect. O alt a aplicat ie interesant a a tag-ului < that >
este folosirea ^ ntr-o categorie care s a permit a agentului s a r aspund a la replica
"cioc cioc".
<category>
<pattern>CIOC CIOC</pattern>
<template>Cine e acolo?</template>
</category>
<category>
<pattern>*</pattern>
Capitolul 3. AIML 24
<that>CINE E ACOLO</that>
<template>
<person/> care?
</template>
</category>
<category>
<pattern>*</pattern>
<that>* CARE</that>
<template>
Ha ha ce amuzant.
</template>
</category>
S i se produce dialogul:
Utilizator: Cioc cioc
Ovidiu: Cine e acolo?
Utilizator: Bau bau
Ovidiu: Bau bau care?
Utilizator: Cioc cioc
Ovidiu: Cine e acolo?
Utilizator: Bau bau
Ovidiu: Bau bau care?
Utilizator: Cioc cioc
Ovidiu: Cine e acolo?
Utilizator: Mama lui bau bau
Ovidiu: Mama lui bau bau care?
Utilizator: Mama lui bau bau, nu-ti mai spun bau bau.
Ovidiu: Ha ha ce amuzant.
Pe plan intern, interpretorul AIML stocheaz a modelul de intrare ca pat-
tern si modelul de subiect pe o singur a cale, cum ar : Introducet i < that >
acest < topic > subiect. C^ and valorile < that > sau< topic > nu sunt spec-
icate, programul seteaz a valori implicite corespunz atoare ec aruia. Prima
parte a c aii, pentru a se potrivi, este replica de intrare. ^In cazul ^ n care,
mai multe categorii au acela si model de intrare, programul face o distinct ie
^ ntre ele ^ n funct ie de valoarea de la < that > .^In cazul ^ n care dou a sau mai
Capitolul 3. AIML 25
multe categorii au acela si < pattern > si< that > , singurul lucru pentru a
le diferent ia este de a alege r aspunsul ^ n funct ie de < topic > .
Nu se utilizeaz a < that > dac a nu at i scris dou a categorii cu acela si
< pattern > si nu folosit i tag-ul < topic > dec^ at ^ n cazul ^ n care exist a
dou a categorii cu acelea si < pattern > si< that > . Totu si, una dintre cele
mai utile aplicat ii pentru tag-ul < topic > este de a crea "linii de preluare"
pentru acela si subiect, cum ar :
<topic name="UNIVERSITATE"/>
<category>
<pattern>*</pattern>
<template>
<random>
<li>Ce ti-ar placea sa studiezi?</li>
<li>Iti place Universitatea Ovidius?</li>
<li>Ce domeniu de studiu te-ar atrage?</li>
<li>Ce facultate ti-a captat atentia?</li>
</random>
</template>
</category>
3.2.5 Interpretoare AIML
3.2.5.1 Program Z pentru pandorabots.com
Programul Z este implementat^ n limbajul Lisp. Pandorabots.com este un
software pentru robot i, care ofer a serviciu de g azduire. Din orice browser,
se pot crea si publica proprii robot i pentru oricine prin intermediul web.
Tehnologia Pandorabots produce unul dintre cei mai rapizi bot i disponibil
pe Internet. Robot ii sunt bazat i pe software-ul gratuit oferit de comunitatea
ALICE si pe AIML. Acest site ofer a, probabil, cel mai convenabil mod de a
^ ncepe publicarea unui bot.
3.2.5.2 Chatterbean
ChatterBean este un interpretor AIML, cunoscut sub numele de "Alicebot",
scris ^ n Java. Obiectivele sale nale sunt: compatibilitatea pe deplin cu stan-
dardul AIML 1.0.1, implementarea unui plug-in simplu, u sor de personalizat,
Capitolul 3. AIML 26
JavaBeans, conform arhitecturii, s a compileze si s a ruleze pe orice ma sin a cu
o versiune corespunz atoare a JDK instalat, indiferent de sistemul de operare
de baz a, s a ^ nvet e utilizatorii s a se bazeze c^ at mai mult posibil pe API-ul
Java pentru scrierea de cod concis, u sor de ^ nt eles si de modicat, s a ofere
un set robust de teste, at^ at "cutia alb a" ("teste de unitate"), c^ at si "cutia
neagr a" ("teste de acceptare"), care s a asigure funct ionarea corect a a progra-
mului, s a e posibil s a construiasc a, s a congureze si s a controleze o instant a
a interpretorului AIML ^ n ^ ntregime prin intermediul API, s a p astreze un
set limitat de caracteristici, deoarece ChatterBean este destinat pentru a
utilizat de c atre dezvoltatorii client, acesta nu poate evita furnizarea de
interfat a cu utilizatorul, chiar dac a doar ca un exemplu, cu toate acestea,
suportul pentru protocoale de comunicare la distant a, accesul la baze de
date vor l asate pentru dezvoltatorul client s a le poat a pune ^ n aplicare.
ChatterBean este un software gratuit, sub licent a GPL.
3.2.5.3 Programul D
Programul D este un interpretor AIML ^ n Java. Are ca utilizatori t int a
profesioni stii web developer pentru c a acest interpretor folose ste schema
XML, pentru validare si nu ^ ncarc a orice sier AIML. Statutul de Programul
D este incert a ^ n acest moment, cu toate acestea, s-a folosit ^ ntr-un proiect
ca un asistent personal.
3.2.5.4 Charliebot
Programul D tr aie ste ^ ntr-un proiect numit Charliebot realizat de Josip
Almasi. Charliebot este un program de inteligent a articial a scris ^ n limbajul
Java. Acesta creaz a cont inutul AIML, permite utilizatorului s a foloseasc a si
tag-uri non-AIML. Tot ce trebuie s a fac a un utilizator este s a realizeze si s a
testeze codul AIML. Acesta nu este un interpretor AIML "profesionist", dar
dac a va avea 10 client i simultan, ar trebui s a funct ioneze bine. El se bazeaz a
pe software-ul gratuit oferit de comunitatea ALICE si pe AIML.
3.2.5.5 Program O
Programul O este un motor AIML scris^ n PHP cu MySQL. A fost realizat
pentru a acoperi cererea unui interpretor AIML cu PHP/MySQL. Programul
O este ^ n curs de dezvoltare, cu activarea lui Liz Perreau si a unui grup de
dezvoltatori dedicat i.
Capitolul 3. AIML 27
3.2.5.6 Programul E
Programul E este o platform a pentru rularea robot ilor realizat i cu inteligent a
articial a. Este scris^ n PHP si folose ste MySQL pentru baza sa de date. Paul
Rydell a fost autorul original al Programului E, ind apoi modicat de Anne
Kootstra si Icomsec.
3.2.5.7 Program R
Mauro Cicio si alt i doi dezvoltatori au realizat o implemantare, folosind
limbajul Ruby, a unui interpretor AIML, cu denumirea Program R. Program
R este u sor de utilizat, dar are nevoie de o mult ime de teste. Echipa ^ nc a
lucreaz a la optimizarea performant ei.
3.2.5.8 Programul V
Programul V este o implementare Perl a unui interpretor AIML. Este
compatibil cu AIML 1.0.1. si se bazeaz a pe utilizarea standard pentru
Apache, astfel^ nc^ at serverul web se poate ocupa de mai multe dintre sarcinile
non-AIML, r am^ an^ and ca alte interpretoare (cum ar Programul D) s a se
ocupe de sarcinile AIML.
3.2.5.9 Programul P (PASCALice)
Kim Sullivan a realizat Programul P, ind scris ^ n Delphi si distribuit
sub GNU GPL. Kim ofer a, de asemenea, un instrument de vericare AIML
numit ShadowChecker.
3.2.5.10 Programul Y (PyAIML)
PyAIML a fost realizat de Cort Pericol Stratton si este un interpretor
AIML implementat ca un pachet standard 100% Python. Acesta a fost
dezvoltat ca o extensie a lui Howie, un proiect AIML pentru chat. Howie a
fost init ial construit pentru a extinde J-Alice, un interpretor AIML ^ n C ++,
dar atunci c^ and J-Alice a devenit prea dicil de compilat s-a decis s a se treac a
la un interpretor nativ Python. Caracteristica principal a este "simplitatea":
pachetul c^ antare ste ^ n jur de 1000 de linii de cod, f ar a dependent e de pachete
"de afar a", dincolo de biblioteci standard de Python.
Capitolul 3. AIML 28
Exist a trei obiective principale de design pentru acest proiect. Primul
este de a continua s a se bazeze doar pe Python standard. Dependent a de
biblioteci externe este o problem a, aceasta ind una dintre principalele mo-
tive pentru care s-a trecut de J-Alice.
Al doilea obiectiv este de a 100% conform cu standardul AIML 1.0.1.
Interpretoarele care suport a tag-uri suplimentare de non-standard, sunt uti-
lizate numai pentru a ^ ncuraja AIML non-portabil, de exemplu, tag-ul <
secure > este non-standard, pentru c a exist a "modul" atribut ^ n tag-ul
< System > , dar totu si este o "scurt atur a". P^ an a c^ and acestea nu sunt
incluse ^ n standardul AIML, PyAIML nu le va accepta.
Scopul nal este de a evita o ^ nt elegere gre sit a despre PyAIML, acesta
este si va r am^ ane un interpretor 100% AIML. PyAIML este destinat utiliz arii
doar pentru dezvoltatori. Ceilalt i pot folosi interpretorul Howie.
3.2.5.11 Programul # (AIMLBot)
Nicolae H. Tollervey a anunt at lansarea Programului # , un interpretor
AIML ^ n .Net, sub GNU GPL. Aceasta este o implementare mic a, rapid a, re-
spect a standardele, ind u sor de personalizat pentru un robot realizat ^ n C#
si bazat pe limbajul AIML. AIMLBot permite introducerea, pur si simplu,
a textului folosit cu computerul, doar cu ajutorul limbajului natural.
Potrivit lui Nicolae, "Acesta a fost dezvoltat folosind versiunea 1.1 a
.NET, dar nu v ad nici un motiv pentru care s a nu funct ioneze si pe 1.0.
Sunt de asemenea^ nc^ antat s a spun c a acesta funct ioneaz a cu Mono (testat cu
v1.0.5). Sunt ^ nc^ antat c a se vor integra ^ n aplicat ii Windows Forms, serviciile
Windows si servicii Web. Am implementat, de asemenea, o pereche de "tag-
uri personalizate", care va face lucruri stupide, cum ar c autare Wikipedia
si traducere prin Babelsh".
3.2.5.12 Programul Q
Houssem Bdioui a contribuit cu o nou a implementare ^ n C ++ a unui
motor AIML, bazat pe sprijinirea perfect a a limbii latin a si seturi de caractere
arabe (care trebuie s a e extinse). QAIML ofer a un API simplu pentru a
analiza AIML siere XML si apoi pentru a interact iona cu utilizatorul, cu
sprijinul limbii latin a/arab a (Unicode).
Capitolul 3. AIML 29
3.2.5.13 Programul N
Programul N a fost realizat de Gary Dubuque. Alice chatbot este g azduit
^ ntr-un editor de text Notepad cu o limb a suplimentar a de prelucrare a script-
ului pentru dialoguri, pentru a ajuta la crearea de noi tag-uri AIML, care s a
extind a si s a dezvolte personalitatea programului.
3.2.5.14 CYN
Membrul comunit at ii Alicebot, Kino Coursey, aduce proiectul s au Cyn,
un nou Cyc experimental permis de interpretorul AIML. (CYN = Cyc +
Programul N).
Kino scrie, "Proiectul Cyn este fuziunea dintre un interpretor AIML uti-
lizat pentru a dezvolta robot ii de chat si motorul OpenCyc. Unul dintre
primele lucruri pe care programatorii interesat i doresc s a il stie despre Open-
Cyc este ce fel de interfat a ^ n limbaj natural este acolo si dac a poate s a
vorbeasc a cu ea."
3.2.5.15 Iibaiml
Iibaiml este o implementare C ++ a interpretorului AIML. Acesta este
conceput ca o bibliotec a static a. ^In prezent ruleaz a pe Linux. Acesta este
^ nc a ^ n dezvoltare. Caracteristici disponibile: parser AIML, o construct ie
Graphmaster, model + subiect de potrivire, interpreteaz a template-uri prin
^ nlocuirea tag-urilor template-side si dup a recursivitate atunci c^ and se folose ste
< srai > < =srai > , funct ioneaz a ca o bibliotec a static a, sistemul multi-user,
un modul de test ("test app"), care act ioneaz a ca un exemplu si ca o dovad a
c a funct ioneaz a.
3.2.5.16 J-Alice
J-Alice o fost realizat de Jonathan Roewen si Taras Glek si este un motor
AIML scris ^ n C ++. Acesta este dotat cu un client built-IRC, cu suport
pentru multiple canale si servere si un server mic de web. Fiecare setare IRC
(pe ret eaua/serverul de IRC) suport a congurarea unui server IRC, pentru
a permite botmaster-ului, de exemplu, conectarea si controlarea bot-ului.
Capitolul 3. AIML 30
3.2.5.17 RebeccaAIML
RebeccaAIML este un interpretor realizat pentru Windows/Linux, f ac^ and
parte din proiectul ALICE. Acesta include documentat ia complet a si probe,
practici cunoscute si recente C. Rebecca este open source sub licent a LGPL.
RebeccaAIML a fost compilat a si testat a sub Windows XP, Linux, precum
Fedora Core 3. Cu toate acestea, ar trebui s a e u sor de modelat pentru alte
versiuni de Linux sau de Unix.
3.2.5.18 Program M
Program M este implementat ^ n SETL si limbaje vechi bazate pe teoria
mult imilor si logic a matematic a. Este unul dintre implement arile cele mai
compacte de la doar sub 1000 de linii de cod.
3.3 De ce am ales s a folosesc interpretorul AIMLBot?
Pentru ^ nceput, ^ n cadrul aplicat iei, este efectuat a o analiz a sintactic a si
sunt prezentate cuvintele cheie, de exemplu, analizorul sintactic este utilizat
pentru a obt ine o recomandare a cuvinte cheie sau a conceptelor legate de
cont inut. Motivele pentru care am ales s a utilizez acest interpretor sunt
urm atoarele:
este Open source;
este disponibil online;
are caracter versatil;
este sprijinit de mai multe limbi (englez a, spaniol a, galician a, italian a,
etc.);
este simplu de instalat si de folosit, pentru a realiza operat ionale nece-
sare;
are caracter modular, adic a permite efectaurea modic arilor la nivelul
analizorului sintactic pentru versiuni viitoare de agent i conversat ionali.
^In cadrul aplicat iei este realizat a o asociere ^ ntre modelul interpretorului
de intrare-declan sare si resurse. ^In plus, Ovidiu are o interfat a grac a, ce
faciliteaz a utilizilarea acestuia, astfel ^ nc^ at, orice potent ial utilizator, dornic
s a a
e informat iile pe care Ovidiu le poate oferi, va utiliza, f ar a a ^ nt^ ampina
dicult at i, aceast a aplicat ie.
Capitolul 4
Ovidiu – agent conversat ional
pentru limba rom^ an a
4.1 Cine este Ovidiu si ce stie s a fac a?
Agentul conversat ional realizat se nume ste Ovidiu si este capabil s a ofere
informat ii elevilor interesat i s a studieze ^ n cadrul Universit at ii "Ovidius".
Ovidiu poate da detalii despre:
existent a si evolut ia acestei universit at i;
cazarea ^ n c aminele universit at ii, cum ar :
{perioada de cazare;
{condit iile de cazare;
{priorit at ile de cazare;
{num arul c aminelor;
{num arul locurilor ^ n c amine;
{dot arile c aminlor;
{condit iile din c amine;
facult at ile din cadrul Universit at ii "Ovidius", din Constant a:
{specializ ari;
{date de contact;
{^ nint area acestora;
admitere:
{condit iile admiterii;
{documentele necesare pentru admitere;
31
Capitolul 4. OVIDIU – agent conversat ional pentru limba rom^ an a 32
{perioada admiterii;
Ovidiu a fost realizat folosindu-se limbajele AIML si C#. Acesta are o
interfat a prietenoas a cu utilizatorul, cu ajutorul c areia textul este introdus
de c atre utilizator, urm^ and ca Ovidiu s a ofere foarte prompt un r aspuns
adecvat. ^In cazul ^ n care Ovidiu se confrunt a cu o situat ie necunoscut a,
acesta va oferi r aspunsuri standard, precum: "Scuze, dar nu am ^ nt eles ce
ai spus.", "Pot i reformula cu alte cuvinte, te rog?, "Nu prea are sens ce ai
spus.", "Nu stiu ce s a spun, nu stiu nimic despre asta.".
4.2 Funct ionalitate
Ovidiu are la baz a un interpretor pentru chatbot, care proceseaz a limba-
jul de interogare si g ase ste o solut ie, care este trimis a ca r aspuns utilizatoru-
lui (Figura 4.1). Acesta utilizeaz a ca interpretor AIML, AIMLBot, care este
proiectat pentru a realiza leg atura dintre cererea utilizatorului si r aspunsul
oferit acestuia.
Capitolul 4. OVIDIU – agent conversat ional pentru limba rom^ an a 33
Figura 4.1: Diagrama cazului de utilizare
4.3 Arhitectura
Deoarece programul de dezvoltare si sierele AIML ale lui Alice sunt
open source, am f acut modic arile necesare si le-am adaptat pentru nevoile
lui Ovidiu. Am schimbat Programul D, adic a codul Java ^ n cod C# si
^ mbr acat cu propria mea interfat a "OvidiuBot". Am construit, de aseme-
nea, noi siere AIML pentru a se potrivi lui Ovidiu si utiliz arii lui. Fi sierele
AIML cont in informat ii relevante pentru Ovidiu si se bazeaz a pe structura
AIML a lui ALICE. ^In scopul funct ion arii programului meu, am denit o
schem a XML, numit a "Settings.xml". Acest sier cont ine informat ii cong-
urative si denit ii de personalitate pentru Ovidiu (cum ar v^ arsta, numele,
locul na sterii), toate sunt ^ nc arcate ^ n momentul ^ nceperii programului. Voi
prezenta o diagram a, reprezent^ and diferent ele dintre arhitectura lui ALICE
[8] si implementarea cu modic arile aduse a lui Ovidiu:
Capitolul 4. OVIDIU – agent conversat ional pentru limba rom^ an a 34
Capitolul 4. OVIDIU – agent conversat ional pentru limba rom^ an a 35
4.4 Implementarea
^In timpul unei conversat ii ^ ntre un om si Ovidiu, acesta din urm a trebuie
sa dea un r aspuns, prin intermediul unui API de conversat ie, pentru a obt ine
^ ncrederea celui cu care vorbe ste. Modic arile f acute ^ n sierele AIML ale lui
Alice, s-au observat la principalul dosar AIML al lui Alice (numit Alice.aiml),
acesta ind modicat pentru a se potrivi lui Ovidiu. Toate sierele AIML
sunt bazate pe categorii. Fiecare categorie returneaz a un r aspuns la o fraz a.
Ad augarea unei noi categorii se bazeaz a pe platforma urm atoare:
< aiml > : o etichet a ^ n care se ^ ncadreaz a un document AIML.
< category > : o etichet a care marcheaz a o "unitate de cuno stint e" ^ n
baza de cuno stint e a lui Ovidiu.
< pattern > : cont ine un model simplu, care se potrive ste cu o fraz a, ce
poate spus a de Ovidiu.
< template > : cont ine r aspunsul, care va returnat utilizatorului.
Capitolul 4. OVIDIU – agent conversat ional pentru limba rom^ an a 36
Un exemplu de o categorie:
<category>
<pattern>CARE ESTE NUMELE TAU</pattern>
<template>Numele meu este <bot name="nume"/>. Al tau?</template>
</category>
Un sier de congurare, "Settings.xml", a fost ad augat pentru a permite
introducerea denit iilor personalitate legate de Ovidiu. ^In prezent, acest
sier dene ste informat ii cum ar v^ arsta lui Ovidiu, zodia si alte denit ii de
personalitate, pentru care avem nevoie de o simpl a schem a de schimbare, f ar a
a intra ^ n codul de baz a AIML. Ace sti parametri pot schimbat i oric^ and,
astfel ^ nc^ at aceasta este o interfat a foarte prietenos a pentru actualizare. Un
exemplu de informat ie, care trebuie actualizat a si este stocat a^ n Settings.xml
este chiar v^ arsta, care trebuie modicat a ^ n ecare an.
Capitolul 4. OVIDIU – agent conversat ional pentru limba rom^ an a 37
4.5 Limit ari
Agentul conversat ional Ovidiu este limitat la un anumit domeniu de
discut ie si anume Universitatea "Ovidius". Dac a utilizatorul dore ste s a de-
genereze discut ia si s a vorbeasc a liber despre alte subiecte, Ovidiu nu va
sti s a-i r aspund a si implicit s a continue conversat ia. Utilizatorul trebuie s a
t in a cont ^ n permanent a c a vorbe ste cu un agent conversat ional, care joac a
rolul unui operator al universit at ii, deci nu poate acoperi un domeniu larg
de subiecte.
4.6 Scenarii
Un scenariu ^ ncepe cu interesul utilizatorului, care introduce textul prin
care ^ si exprim a cererea, primind imediat un r aspuns adecvat de la Ovidiu.
Ovidiu este un robot el simpatic, ilustr^ and "mascota" Universit at ii "Ovidius",
din Constant a, oferind utilizatorilor c^ at mai multe informat ii reale despre
aceast a universitate.
Capitolul 4. OVIDIU – agent conversat ional pentru limba rom^ an a 38
Figura 4.2: Modul de "g^ andire" a lui Ovidiu
Capitolul 4. OVIDIU – agent conversat ional pentru limba rom^ an a 39
4.7 ^Imbun at at iri posibile
Ovidiu poate ^ mbun at at it atas^ andu-i-se emot ii, sentimente. Person-
ajul Ovidiu poate prezent l^ ang a fereastra ^ n care se a
a conversat ia, ex-
prim^ and prin gesturi si mimic a a fet ei ceea ce scrie. Un agent conversat ional,
care funct ioneaz a doar pe baz a de text, poate extins si la realizarea unei
conversat ii folosind comenzi vocale.
Capitolul 5
Concluzii
Aceast a lucrare a fost preocupat a de realizarea unui agent conversat ional
pentru limba rom^ an a, utiliz^ andu-se software-ul gratuit oferit de comunitatea
ALICE si AIML-ul. Fiind realizat ^ n C# , s-a folosit interpretorul AIML-
Bot. Am creat un pachet, care-i permite lui Ovidiu s a efectueze o conversat ie
logic a, complet a, ^ ns a doar cu un utilizator uman, folosind un vocabular bo-
gat de cuvinte si fraze. A fost inclus un stoc larg de cuno stint e scris ^ n AIML,
oferind o gam a generoas a de informat ii privind domeniul pe care este Ovidiu
specializat, anume Universitatea "Ovidius", din Constant a. Impreun a fac
ca Ovidiu s a e un robot prietenos, dar cu un stoc limitat de cuno stint e pe
un domeniu concret, ^ ns a poate conduce o conversat ie aproape cu orice elev
dornic de a a
a c^ at mai multe informat ii, care s a-l preg ateasc a pentru etapa
urm atoare si anume, viat a de student.
Pentru o viitoare ^ mbog at ire a stocurilor de cuno stint e ale lui Ovidiu,
dezvoltatorul ar trebui s a scrie categorii sub forma AIML-ului adecvat sau
s a creeze un nou sier AIML si stocarea acestuia ^ n "aiml" director al pa-
chetului. ^In afar a de observat iile cu privire la comportamentul utilizatorilor,
care trebuie s a e limitat la domeniul Universit at ii "Ovidius", din Constant a,
se pot face anumite modic ari pentru versiunile viitoare ale lui Ovidiu, cum
ar , cont inutul ^ ntreb arilor utilizatorului s a acopere un domeniu mai larg,
chiar mai mult dec^ at at^ at, s a nu mai e limitat. Activit at ile viitoare pot
include extinderea si ranarea acestor interog ari, eventual, organizarea lor
^ ntr-o baz a de date codica a, din care datele relevante s a poat a preluate pen-
tru a oferi o larg a acoperire pentru o varietate de noi agent i conversat ionali
[8].
40
Bibliograe
[1] Susan Robinson, David Traum, Midhun Ittycheriah, Joe Henderer "What would you
ask a Conversational Agent? Observations of Human-Agent Dialogues in a Museum
Setting" Institute for Creative Technologies/University of Southern California
[2] Justine Cassell, Joseph Sullivan, Scott Prevost, Elizabeth Churchill "Embodied Con-
versational Agents" The MIT Press
[3] Dr. Richard S. Wallace "A. L. I. C. E. and AIML Documentation" 2010.
[4] Kim Sullivan "An AIML Interpreter" Computer Science and Engineering 2009.
[5] Karen OShea, Zuhair Bandar, Keeley Crockett "A Conversational Agent Framework
using Semantic Analysis" International Journal of Intelligent Computing Research
(IJICR) 2010.
[6] James Lester, Karl Branting, Bradford Mott "Conversational Agents" CRC Press
LLC 2004.
[7] Cassell, Justine. "Embodied conversational agents: representation and intelligence in
user interfaces." AI magazine 22.4 (2001): 67.
[8] Niranjan, M., M. S. Saipreethy and T. G. Kumar "An intelligent question answering
conversational agent using Nave Bayesian classier" Technology Enhanced Educa-
tion (ICTEE), 2012 IEEE International Conference on. IEEE, 2012.
[9] Doering, Aaron, George Veletsianos and Theano Yerasimou "Conversational agents
and their longitudinal aordances on communication and interaction" Journal of
Interactive Learning Research 19.2 (2008): 251-270.
[10] Naik Nisarg Nandakumar "Integration of a chatbot engine on a multi user virtual
environment to enhance educational framework for a virtual campus" Nottingham
Trent University 2008.
[11] Neubauer, Bruce J. "Designing articial personalities using jungian theory." Jour-
nal of Computing Sciences in Colleges 20.1 (2004): 297-305.
41
Capitolul 4. OVIDIU – agent conversat ional pentru limba rom^ an a 42
[12] Shah, Huma, and Kevin Warwick. "From the buzzing in Turings head to machine
intelligence contests." 2010.
[13] Silva, Fernando, and Francisco Pereira. "Communication between people with mo-
tion and speech disabilities." Information Systems and Technologies (CISTI), 2011
6th Iberian Conference on. IEEE, 2011.
[14] Morales-Rodrguez, Mara Lucila, et al. "Emotional conversational agents in clini-
cal psychology and psychiatry." Advances in Articial Intelligence. Springer Berlin
Heidelberg, 2010. 458-466.
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: Lucrare de licent a [626582] (ID: 626582)
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.
