1 Universitatea Politehnica Bucureti 2 Institutul de Cercetri n Inteligena Artificial al Academiei Romne E-mail: trausan@cs.pub.ro Rezumat. Lucrarea prezint dou abordri de analiz a dialogurilor purtate n cadrul unui chat, n vederea identificrii actelor de vorbire. Amndou adnoteaz semiautomat un corpus de dialog, dup care, n cea de-a doua se folosete un model Marlov ascuns pentru a nva probabilitti de succesiune a actelor de vorbire. Acest model este apoi folosit pentru identificarea actelor de vorbire n noi dialoguri. Cuvinte cheie: acte de vorbire, DAMSL, modele Markov ascunse. 1. INTRODUCERE nelegerea limbajului natural din transcrierea dialogurilor ridic probleme specifice fa de textele obinuite. Dialogurile au o structur asemntoare unui joc, cu mutri sau replici, (n englez,utterance), fiecrui participant venindu-i rndul s spun ceva, s joace (n englez, turn taking). Mutrile pot fi clasificate n anumite categorii, denumite acte de vorbire (n englez, speech acts) a cror succesiune nu este ntmpltoare [2,3,4]. Lucrarea de fa prezint dou abordri, una care folosete euristici de adnotare a actelor de vorbire i o a doua care nva succesiuni posibile de acte de vorbire din sesiuni de chat adnotate semiautomat n limbajul DAMSL (Dialog Act Markup in Several Layers [1,4]). n cea de-a doua abordare se folosesc pentru nvare i apoi recunoatere modele Markov ascunse [4,5]. Adnotarea semiautomat iniial folosete euristici de adnotare care consider anumite secvene de cuvinte (n englez, cue phrases [4]), la care au fost adugate i adnotri manuale. Modelul Markov nvat este apoi folosit pentru adnotarea de dialoguri neadnotate [4]. Corpusul de dialog este constituit din mai multe sesiuni de chat n care se discuta rezolvarea unor probleme de matematic. Aceste sesiuni au fost realizate n
* A aprut ntr-o versiune puin modificat n tefan Truan-Matu, Costin Pribeanu (Eds.), Interaciune Om- Calculator 2004, ISBN 973-718-053-4, Editura Printech, Bucureti, 2004, pp. 206-214. cadrul proiectului Virtual Math Teams (vezi, http://mathforum.org/wiki/VMT/), condus de prof. Gerry Stahl de la Universitatea Drexel din Philadelphia, SUA. Acest proiect i propune s dezvolte instrumente informatice pentru asistarea rezolvrii distribuite de probleme. Lucrarea conine n continuare o prezentare a problematicii actelor de vorbire i a limbajului de adnotare DAMSL. Seciunile 3 i 4 prezint cele dou abordri. Lucrarea este ncheiat de concluzii i direcii de continuare. 2. ADNOTAREA ACTELOR DE VORBIRE Teoria actelor de vorbire a fost introdus de Austin i dezvoltat de Searle [2,3]. Actele de vorbire au fost clasificate n diferite feluri. De exemplu, J. Austin face o distincie ntre actele constatative, care descriu, relateaz, consemneaz o stare de fapt i performative, care presupun efectuarea unei aciuni sau a unei schimbri a strii de fapt. Cele din urm folosesc verbe de genul a ordona, a promite, a jura etc., i li se poate evalua rezultatul prin reuit sau eec. Plecnd de la verbele performative (din limba englez), Austin distinge cinci clase de acte ilocuionare [2]: verdictive, care dau un verdict, folosesc a considera, a estima; exercitive, decizionale, folosesc a ordona, a cere; comisive (promisive), care exprim o angajare (a garanta, a plnui); comportamentative, exprim o atitudine, un comportament (a critica, a mulumi); expozitive, (a obiecta, a rspunde).
John R. Searle identific mai multe tipuri de acte de vorbire:
ilustrative (representatives), care reprezint o stare de fapt: aseriuni, descrieri; comisive (commisssives), care implica vorbitorul ntr-un curs viitor de aciuni: promisiuni, amenintari; directive ce atrag atenia asupra efecturii unei aciuni: comenzi, cereri; declaraii, care aduc o anumita stare de lucruri: denumire, arestare, casatorie, binecuvntare; expresive, care indica starea psihologica sau atitudinea mental a vorbitorului: felicitri, mulumiri, scuze; verdicative, care dau o apreciere: judecat, iertare.
O ncercare recenta de a dezvolta schemele de adnotarea actelor de vorbire este arhitectura DAMSL care codific pe diferite nivele informaiile referitoare la replicile unui dialog. Dou dintre aceste nivele, funcia de anticipare (FLF, n englez, forward looking function) i funcia de adaptare regresiv (BLF n englez, backward looking function) sunt extensii ale actelor de vorbire ce extrag notiuni legate de structura dialogului cum ar fi perechile de adiacenta sau notiunile de grupare. Funcia de anticipare a unei notiuni corespunznd unor acte de vorbire de genul Searle/Austin e bazat pe tipul actelor ce pot aprea ntr-un dialog [1,4]:
Afirmaii o afirmaie fcut de cel ce vorbete
Cerere de informaie ntrebare pus de cel ce vorbete Confirmare ntrebare pentru confirmarea unor informaii
Influena asupra asculttorului = directivele lui Searl Opiune o sugestie slab sau o list de opiuni Ordin este de fapt o comand
Influena asupra vorbitorului = directivele lui Austin Ofert vorbitorul se ofer s fac ceva i ateapt confirmarea Execuie vorbitorul face ceva
Acte Convenionale Deschidere mesaje de ntmpinare Incheiere mesaje de nchidere Mulumire multumiri i rspunsuri la mulumiri
Funcia de adaptare regresiv se bazeaza pe relatia dintre notiunea curenta si alte notiuni care au fost enuntate inainte de catre alte personae. Aceasta include acceptarea/refuzarea propunerilor precum si notiuni de grupare [1,4]:
Acord rspunsul vorbitorului la o propunere anterioar Accept acceptarea propunerii Accept Parial accept o parte a propunerii Poate nici nu accept, dar nici nu refuz Refuz refuzarea propunerii Refuz Parial refuzarea parial a propunerii Abinere aman/evit rspunsul
Rspuns rspunsul la o ntrebare
nelegere dac vorbitorul nelege noiunea anterioar Semnal de nenelegere vorbitorul nu a neles Semnal de nelegere vorbitorul a neles Aprobare demonstrare prin continuare Repetare/Reformulare demonstrare prin repetiie/reformulare Completare demonstrare prin completare prin colaborare 3. EURISTICI DE ADNOTARE SEMIAUTOMAT Algoritmul folosit realizeaz recunoaterea actelor de vorbire dintr-o discuie de tip chat. S-au grupat actele de vorbire n categoriile FLF i BLF (conform modelului DAMSL). Recunoaterea actelor de vorbire se bazeaz pe recunoaterea verbelor din propoziie (folosind WordNet [6]), precum i a unor expresii standard (cue phrases) pentru anumite acte de vorbire. Deoarece programul de recunoatere este conceput pentru o discuie de tip chat (cu replici scurte), s-a tratat fiecare replic n funcie de primul verb gsit n propoziie. Verbele sunt grupate de asemenea n dou categorii: auxiliare (be, have, do) i neauxiliare (orice alt verb). Tipurile de acte de vorbire recunoscute de algoritm i condiiile care trebuie ndeplinite pentru fiecare tip sunt: Funcia de anticipare a) Statement (afirmaie) trebuie s ndeplineasc una din urmatoarele condiii: - primul verb din propoziie (auxiliar sau nu) s fie precedat de un pronume, substantiv sau adverb. Ex: I hope we can solve this. This problem is difficult. I already done that. - propoziia s conin o form prescurtat, de gen pronume + verb auxiliar (pentru aceste prescurtri s-a creat o baz de date local, deoarece nu sunt recunoscute de WordNet). Ex: Im new at that. Theres one variable. Thats why we are doing this. - orice alt propoziie care conine un verb i nu a putut fi incadrat n nici o categorie de acte de vorbire. Ex: Tried that. Checking b) Info_request (ntrebare) trebuie s ndeplineasc una din urmatoarele condiii: - propoziia s se termine cu semn de ntrebare. Ex: Any other replies? - propoziia s nceap cu un verb auxiliar urmat de un pronume sau substantiv. Ex: Did you send the picture Can somebody help me - propoziia s nceap cu un adverb specific (where, when etc.) sau cu o prescurtare de gen adverb + verb auxiliar. Ex: How long is the segment Wheres the picture c) Action_directive (comand/rugaminte) trebuie s ndeplineasc una din urmatoarele condiii: - propoziia s conin o expresie specific (lets, please etc). Ex: Lets try to solve the problem. Please make sure everyone understands the answer. - propoziia s nceap cu un verb (auxiliar sau nu) aflat n forma de baza (la infinitiv). Ex: Feel free to ask about anything that seems unclear. Check this out. - Action_directive Checking - Statement - propoziia s nceap cu dont urmat de un verb. Ex: Dont try to calculate. Dont be sad. d) Conventional (formule de salut, mulumiri, scuze etc.) - propoziia s conin o expresie specific (hi, hello, bye, thanks, sorry etc.) e) Other_forward_function orice propoziie care nu a putut fi ncadrat n nici o alt categorie de acte de vorbire. Funcia de adaptare regresiv a) Agreement (Accept, Maybe, Reject) - propoziia s conin o expresie specific pentru fiecare tip de acord (agreement) i s nu existe nici un verb n propoziie, nainte de expresia respectiv. Ex: Yes, there is. - Accept, Statement He said yes. - Statement b) Understanding (Acknowledge) - propoziia s conina o expresie specific (ok, okay, alright etc.) i s nu existe nici un verb in propoziie, nainte de expresia respectiv. Ex: OK guys, I have to go. - Acknowledge, Statement I feel alright. - Statement c) Answer (rspuns) - replica s fie de tip agreement i s fie precedat de o replica tip info_request a altui user (caut un info_request in ultimile 10 replici). Ex1: Are you all there? - Info_request Yes - Answer Ex2: That means two equations. - Statement Yes - Accept - replica s fie de tip statement, action_directive sau other_forward_function i s fie precedat direct de un info_request al altui utilizator (verific doar ultima replic). Ex: Wheres the picture - Info_request I cant get it - Statement, Answer 4. IDENTIFICAREA ACTELOR DE VORBIRE PE BAZA UNUI MODEL MARKOV ASCUNS A doua abordare folosete pentru recunoaterea actelor de vorbire modelul canalului comunicaional cu perturbaii introdus de teoria informaiei a lui Shannon [4,5]. Se consider c avem un mesaj iniial, format din acte de vorbire, ce intr n canal i textul dialogului care este ieirea din acesta. n aceste condiii, pentru a determina efectul perturbaiilor din canal, se vor calcula (pentru fiecare semnal in parte) probabilitile de a fi un anumit semnal, iar dupa accea se va lua n considerare semnalul a crei probabilitate este maxim. n cazul identificrii actelor de vorbire avem mai multe semnale care pornesc de la surs i mai multe semnale care ajung la destinaie, iar n acest caz se pune ntrebarea: Care este cea mai probabil secven ce a pornit de la surs i care a ajuns la destinaie n forma dat? Fie D=d 1 d 2 d 3 ..d n secventa de semnale care porneste de la sursa si E=e 1 e 2 e 3 ..e n
secventa de semnale care ajunge la destinatie. Se pune problema calcularii unei secvene D*, care maximizeaza probabilitatea ca la iesire sa se obtina secventa E condiionta de intrri:
D*=argmaxP(D|E)=argmax ((P(E|D)*P(D)) / P(E))
Cum ieirea este ntotdeauna aceeai, nseamna c P(E) este constant i cum pe noi ne intereseaz de fapt secven maxim i nu valoarea maxim, nu vom mai tine cont de P(E). Ne intereseaza, prin urmare, maximul produsului dintre probabilitatea P(E|D)*P(D), adica:
D*=argmax(P(E|D)*P(D))
Dac expandm P(D) obinem:
P(D)=P(d 1 )*P(d 2 |d 1 )*.P(d n |d 1 ,d 2 )
Aceasta probabilitate este greu de calculat i atunci ea se aproximeaza considerand ipoteza unui lan (model) Markov de ordin k, adic faptul ca fiecare semnal in parte depinde doar de k semnale anteriore, cu valori tipice k=1 (cnd avem practic un automat finit cu tranziii probabiliste, caz de multe ori denumit model Markov fr a mai preciza un ordin) sau k=2. Pentru k=1 se va calcula P(D) c:
unde P(d i ) este probabilitatea de aparitie a fiecarui tip de semnal in parte i P(d i |d i-1 ) este probabilitatea condiionat s avem di dac am avut nainte d i-1 , altfel spus, s avem bigrame. n concluzie trebuie s calculm probabilitatile bigramelor. Dac se consider k=2, avem o formul similar n care intervine P(d i |d i-1 ,d i-2 ), adic avem nevoie de probabilitile trigramelor.
Pentru P(E|D) se face o simplificare similar:
P(E|D)= P(e 1 |d 1 )*P(e 2 |d 2 )*P(e n |d n )
Pentru calculul bigramelor s-a procedat n urmtorul mod: Iniial s-au numrat toate tagurile din text: nr_total. Dupa aceea, s-au numrat tagurile din fiecare tip (nr_act_vorbire ) n parte: nr_accept, nr_reject, nr_maybe, nr_accept_part, nr_reject_part, nr_none. In continuare s-au calculat probabilitile de apariie ale fiecarui tip ca fiind:
prob_act_vorbire=nr_act_vorbire/nr_total
Valorile obinute pentru un corpus de chat i un subset de acte de vorbire au fost:
Act de vorbire secvene tipice de cuvinte Numr apariii Probabilitate ACCEPT PARIAL ok, but; k, but; yeap, but; yes, but 8 0.003579 REFUZ PARIAL not really
1 4.47427E-4 ACCEPT
k, ok, yeap, yes, yup, right, yeah, ya, okay, true, exactly, alright, probably 391 0.174944 REFUZ nope, no, nop, don't want, disagree, don't think, nah 71 0.031767 POATE maybe, don't know, guess, whatever 27 0.012081 Neadnotat 1737 0.777181
Tabelul de mai sus este folosit i pentru calculul probabilitilor P(e i |d i ), unde ei sunt secvene tipice de cuvinte. Pasul urmator a fost numrarea succesiunilor nr_Act1_Act2, adic nr_AP_AP; nr_AP_RP; nr_AP_A; nr_AP_R; .a.m.d. Ultimul pas a fost calculul probabilitilor :
prob_Act1_Act2=nr_Act1_Act2/nr_Act1
Valorile obinute au fost:
probabilitate AP RP A R P N AP 0 0 0.25 0 0 0.75 RP 0 0 0 0 0 1 A 0.00767 0 0.25575 0.01279 0.01279 0.711 R 0 0 0.21127 0.15493 0 0.6338 P 0 0 0.22222 0.03704 0.03704 0.7037 N 0.00288 0.00058 0.15429 0.03109 0.01209 0.7985
Similar s-a procedat pentru calculul trigramelor. Deoarece multe valori sunt 0, a fost fcut o netezire folosind metoda lui Katz [4]. Tabelele cu probabiliti ale actelor de vorbire, a bigramelor i trigramelor pot fi folosite ca model pentru adnotarea unui dialog nou, pe baza alegerii argumentului care maximizeaz formula anterioar D*=argmax(P(E|D)*P(D)), pentru un caz particular dat. n acest scop a fost folosit algoritmul Viterbi, bazat pe o schem de programare dinamic [4,5]. Mai jos este artat un fragment din dialogul adnotat n DAMSL, n care atributul agreement a fost pus automat de sistem:
<Turn Id="T272" Speaker="AvrilLR" time="8:52:46 PM"> <Utt Id="Utt272" Info-level="" Conventional="" Time="8:52:46 PM" Influence-on-listener="" Influence-on-speaker="" Agreement="None" Answer="">I just ignored the other number</Utt> </Turn> <Turn Id="T273" Speaker="SuperEvo88" time="8:52:56 PM"> <Utt Id="Utt273" Info-level="" Conventional="" Time="8:52:56 PM" Influence-on-listener="" Influence-on-speaker="" Agreement="Accept" Answer="">my iq right now is like in the negatives</Utt> </Turn> <Turn Id="T274" Speaker="AvrilLR" time="8:53:01 PM"> <Utt Id="Utt274" Info-level="" Conventional="" Time="8:53:01 PM" Influence-on-listener="" Influence-on-speaker="" Agreement="None" Answer="">I had 10.39 instead of 10.392</Utt> </Turn> <Turn Id="T275" Speaker="AvrilLR" time="8:53:11 PM"> <Utt Id="Utt275" Info-level="" Conventional="" Time="8:53:11 PM" Influence-on-listener="" Influence-on-speaker="" Agreement="Reject Part" Answer="">My IQ is 206...not joking...but that's off topic</Utt> </Turn> <Turn Id="T276" Speaker="AvrilLR" time="8:53:17 PM"> <Utt Id="Utt276" Info-level="" Conventional="" Time="8:53:17 PM" Influence-on-listener="" Influence-on-speaker="" Agreement="None" Answer="">so now we add the two areas</Utt>
5. EVALURI I CONCLUZII In urma testelor efectuate pe 3 fisiere exemplu (aproximativ 1200 replici), pentru prima abordare, bazat pe euristici, s-au obtinut urmatoarele rezultate: Statement - precizie 92% - acoperire 79% Info_request - precizie 92% - acoperire 92% Action_directive - precizie 67% - acoperire 69%
Cea de-a doua abordare, bazat pe modele Markov, a recunoscut 80 % din actele de vorbire pe unul din fisierele cu dialoguri chat. O prim mbuntire care poate fi adus algoritmului euristic este recunoaterea prii de vorbire folosind unul din adnotatoarele existente gratuit pe web. Recunoaterea numelor utilizatorilor care apar n interiorul replicilor este o a doua problem care va fi abordat n viitorul imediat, mai ales c majoritatea adresrilor pe un chat se fac cu prescurtri sau pri din numele vorbitorilor (nu cu numele complet). Abordarea a doua este n curs de finalizare, n viitor extinzndu-se numrul de acte de vorbire considerate.
REFERINE 1. Allen, J., Core, M., Draft of DAMSL: Dialog Act Markup in Several Layers, ftp://ftp.cs.rochester.edu/pub/packages/dialog-annotation/manual.ps.gz 2. Austin, J.L., Cum s faci lucruri cu vorbe, Editura Paralela 45, 2003. 3. Boboc, Al., Limbaj i ontologie, Ed. Didactic i Pedagogic, 1997 4. Juravsky, D., Martin, J., Speech and Language Processing: An Introduction to Natural Language Processing, Computational Linguistics and Speech Recognition, Prentice Hall: San Francisco 2000 5. Manning, C., Schutze, H., Foundations of Statistical Natural Language Processing, MIT Press: Cambridge (Mass.) 1999 6. WordNet, http//www.cogsci.princeton.edu/~wn