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 i ci:
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 Ortogra a  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
Bibliogra e 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 veri carea 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 veri ca abilitatea de a da r aspunsurile corecte, el veri c 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 de nit,
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
a rmat 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 arti cial.
^In anul 1936, lozoful Alfred Ayer a considerat ^ ntrebarea loso c 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 a rma 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 dactilogra ate 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 identi ce 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 identi carea 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 veri care
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. Filoso a mint ii, psi-
hologia  si neuro stiint ele moderne au fost ^ n m asur a s a ofere de nit ii pentru
"inteligent  a"  si "g^ andire", care sunt su cient de precise  si generale, pentru
a aplicate la ma sini. F ar a aceste de nit ii, ^ ntreb arile centrale ale loso ei
despre inteligent a arti cial 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 loso c a di cil 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 su cient 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 arti ciale 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 "Arti cial 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 di cile sau de a veni
cu perspective originale. De fapt, se cere ^ n mod speci c ^ 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 arti cial 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 speci ce sau pot acoperi o gam a larg a de subiecte. ^In ultimii
ani s-a ^ nregistrat o semni cant 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 modi c 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:
Identi carea 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 speci c.
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 arti cial 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 con gurezi 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 arti cial 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 arti cial 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.(Arti cial Linguistic Internet Computer Entity) este un soft-
ware gratuit pentru agent i conversat ionali, creat ^ n AIML(Arti cial 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 arti ciali 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 rami care 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 su cient 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 "Arti cial 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 (Arti cial
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 a rmat 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. Ortogra a sau corectarea gramatical a;
5. Detectarea cuvintelor cheie ^ n replicile introduse;
6. Condit ionale: anumite forme de rami care 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 in nite. 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 simpli care 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 biogra ce 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 Ortogra a  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 su x. Al treilea g ase ste cuv^ antul la ^ nceput ^ n propozit ie,
ca un pre x, iar ultimul mod gase ste cuv^ antul pozit ionat ca un in x ^ 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 ra nat 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 e cient 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 e cient 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-
i cate, 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 modi cat, 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 con gureze  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 arti cial 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
arti cial 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 modi cat 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 veri care 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 di cil 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 Babel sh".
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 con gurarea 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 modi c 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 gra c 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
di cult 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;
{^ n int 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 modi c 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 de nit o
schem a XML, numit a "Settings.xml". Acest  sier cont ine informat ii con g-
urative  si de nit 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 modi c 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. Modi c arile f acute ^ n  sierele AIML ale lui
Alice, s-au observat la principalul dosar AIML al lui Alice (numit Alice.aiml),
acesta ind modi cat 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 con gurare, "Settings.xml", a fost ad augat pentru a permite
introducerea de nit iilor personalitate legate de Ovidiu. ^In prezent, acest
 sier de ne ste informat ii cum ar v^ arsta lui Ovidiu, zodia  si alte de nit 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 modi cat 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 modi c 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 ra narea acestor interog ari, eventual, organizarea lor
^ ntr-o baz a de date codi ca 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

Bibliogra e
[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 classi er" 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 a ordances 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 arti cial 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 Arti cial Intelligence. Springer Berlin
Heidelberg, 2010. 458-466.

Similar Posts