Sunteți pe pagina 1din 36

Inteligenţă

artificială
Cursul nr. 8
Despre dialog
 Dialogul sau conversaţia este un domeniu
privilegiat al LN.
 Există în acest moment aplicaţii numeroase
pentru comunicarea cu utilizatorii în limbaj
natural.
 Domeniul agenţilor conversaţionali
(conversational agents) ca şi participanţi la un
dialog în limbaj natural reprezintă în acest
moment un domeniu foarte ’’fierbinte” al IA.
 O aplicaţie de acest tip poate să fie un simplu
sistem question- answering sau orice interacţiune
om-maşină utilizând limbajul natural.
Componentele unui agent
inteligent:
 percepţie (perception): agentul trebuie să fie capabil să
perceapă lumea înconjurătoare;
 cunoştinţe (beliefs): agentul trebuie să aibă o reprezentare a
stării curente a lumii înconjurătoare;
 iniţiativă (desire/wants): agentul trebuie să aibă răspunsuri
pozitive sau negative la diferiţii stimuli ai lumii înconjurătoare;
 decizie (commitment): agentul trebuie să aibă posibilitatea să
decidă acţiunea necesară pentru a ajunge într-o anumită stare;
 continuitate (intention): agentul trebuie să poată să menţină
cursul unei acţiuni asupra căreia s-a decis;
 raţionament (planning/reasoning): agentul trebuie să poată să
facă raţionamente asupra modului de a atinge o altă stare;
 acţiune (acting): agentul trebuie să poată să acţioneze pentru
a schimba o stare.

Atunci când este vorba de un dialog, toate aceste caracteristici


au moduri specifice de rezolvare.
 Dialogul prezintă caracteristicile oricărui discurs,
dar are în plus câteva caracteristici importante.
 Ca şi trăsături comune, un dialog este
caracterizat
 prin prezenţa fenomenului de anaphora şi
 prin coerenţă.
 Trăsăturile specifice sunt
 alternarea,
 partajarea de cunoştinţe şi
 implicarea.
Trăsături specifice dialogului
 Alternarea: pentru ca un participant la dialog să ia la
cunoştinţă că este rândul sau să formuleze fraze, trebuie să
existe câteva reguli specifice care ţin cont de durata
intervalului de la ultima fraza formulată în dialog, de
anumite cuvinte cheie care apar la sfârşitul sau începutul
unei participări la dialog (deci, aşa dar, etc, intonaţie
pentru dialogul vorbit), etc.
 Partajarea de intenţii: trebuie să existe moduri de a
indica faptul că un participant la dialog înţelege, acceptă,
ceea ce celalalt participant îi comunică. Acestea sunt
atenţia acordată, cuvinte de aprobare, reformulare,
completare sau reproducere.
 Implicarea: informaţia comunicată de vorbitor este de
obicei mai mare decât cea conţinută strict de fraza
formulată.
Speech act
 Un speech act poate fi clasificat în mai multe categorii.
 Pentru a putea discuta de interfeţele în limbaj natural, vom
considera că orice frază este din unul din următoarele tipuri:
 Întrebare (Question);
 Afirmaţie (Statement) prin care vorbitorul sugerează, afirmă,
con­cluzionează etc. ceva;
 Directivă sau cerere (Request) prin care vorbitorul cere,
invită, avertizează, etc. ceva;
 Confirmare (Acknowledgement) prin care vorbitorul confirmă,
promite, planifică, neagă, etc.

 Nu întotdeauna este simplu de clasificat o frază la una din


aceste categorii. De exemplu, întrebarea: ”Poţi să îmi spui
dacă ti-ai îndeplinit sarcina?” pare a fi o întrebare, când în
realitate este o cerere (directivă).
Gramatici semantice
 Proiectul ATIS (Air Traffic Information System)
construit în 1990 , este o aplicaţie care poate să
răspundă la un moment dat la o singură întrebare
formulată în limbaj natural, întrebare asupra
traficului aerian al unei companii aviatice.
 Exemplu:
 Utilizator:” List all flights from Boston to Las Vegas after 5”.
 ATIS: ” The list of flights is ”
 O aplicaţie asemănătoare este proiectul ’’BusTuc”
realizat la Institutul de Informatică al Universităţii
Norvegiene de Ştiinţă şi Tehnologie( NTNU), care
răspunde întrebărilor formulate în limbaj natural
despre traficul autobuzelor din Trodheim, Norvegia.
 Vom vedea în continuare gramatica (numită
gramatică semantică) care descrie propoziţiile care
pot fi formulate într-un dialog în sistemul ATIS.
 Regulile acestei gramatici (de tip ’’context free”)
arată cum se grupează cuvintele în constituenţi
(noun phrase, verb phrase, etc) şi cum se combină
propoziţiile pentru a forma fraze.
 Se ştie că există mai multe părţi de vorbire
principale: substantiv (noun), verb (verb), pronume
(pronoun), prepoziţie (preposition), adverb
(adverb), conjuncţie (conjunction), adjectiv
(adjective), articol sau determinant (article).
Cele mai importante clase
utilizate în limba engleză
 prepoziţiile (prepositions): on, under, over, near,
by, at, from, to, with, etc,
 articolul (determiner): a, an, the, some, etc,
 pronumele (pronoun): she, he, I, you, others,
etc,
 conjuncţiile (conjunctions): and, but, or, as, if,
when, etc,
 verbele auxiliare (auxiliary verbs): can, may,
should, are, etc,
 particule adjectivale sau adverbiale
(particles):up, down, on, off, in, out, at, by, etc,
 numeralele (numerals): one, two, first,
second,etc.
Categorii:
 Părţi de vorbire din
 categoria inchisă şi
 categoria deschisă.
 Categoria închisă cuprinde prepoziţiile,
conjuncţiile, prenumele, articolele iar cea
deschisă conţine restul părţilor de vorbire.
 Denumirea provine din faptul că părţile de vorbire
’’închise” ale unui limbaj natural nu se modifică,
în timp ce la categoria părţilor de vorbire
deschise se adaugă elemente noi, odată cu
lărgirea orizontului cognitiv al vorbitorilor.
 Categoria închisă diferă de la o limbă la alta mai
mult decât categoria deschisă.
Gramatica semantică a
aplicaţiei ATIS
Notaţiile sunt cele uzuale:
 S pentru sentence
 NP pentru noun phrase,
 VP pentru verb phrase,
 PP pentru prepositional phrase.
Gramatica semantică a
aplicaţiei ATIS. Reguli
 S  NP VP (ex.: I prefer a morning flight)
 NP  Pronoun
 NP  Det Nominal (ex.:a flight)
 NP  ProperNoun
 NP  (Det) (Card) (Ord) (AP)Nominal
 Nominal  Noun Nominal (ex.:morning
flight)
 Nominal  Noun (ex.:flights)
Gramatica semantică a
aplicaţiei ATIS. Reguli
 VP  Verb
 VP  Verb NP (ex.:want a flight)
 VP  Verb NP NP (ex.:Show me the
airlines with flights from Boston)
 VP  Verb NP PP (ex.:leave Boston in the
morning)
 VP  Verb PP (ex.:leaving on Thursday)
 VP  Verb S (ex.: were two flights that
were the cheapest)
 PP  Preposition NP (ex.:from Boston)
 După un Nominal pot să apară aşa numiţii
postmodiftcatori.
 Aceştia pot să fie:
 prepositional phrase PP: all flights from
Boston, sau any flight arriving after eleven am
 o construcţie la gerunziu: the flight leaving
London, flights arriving after eleven.
Regulile pentru Nominal
 Nominal  Nominal PP (PP) (PP) (all flights from
Boston)
 Nominal  Nominal GerundVP any flight arriving
after eleven am.
 GerundVP  GerundV NP
 GerundVP  GerundV PP
 GerundVP  GerundV
 GerundVP  gerundV NP PP
 GerundVP  GerundV Timepp GerundVP.
 GerundV  being\preffering\arriving\leaving...
 PP  From_to_pp Time_pp
 PP  Time_pp From_to_pp
 Al treilea tip de postmodificator îl constituie
clauzele relative, intro­duse cu who sau that.
Deci pentru Nominal avem şi:
 Nominal  Nominal RelCl
 RelCl  who VP/that VP. (ex.: flights that
leave in the morning)
 Gramatica independentă de context introdusă
până acum nu oferă nici o informaţie semantică.
 Toate terminalele, în cazul nostru cuvinte, deci
unităţi lexicale, sunt tratate ca simpli constituienţi
ai unei propoziţii sau fraze.
 Anumite reguli pot însă să introducă construcţii
tipice folosite in anumite interogări.
 Gramatica semantică a unei aplicaţii poate
conţine de asemenea expresii idiomatice (ca de
exemplu I would like to..,”As vrea”).
 Propoziţiile descrise până acum au avut o structură
declarativă. În afară de aceasta există structura
imperativă:
 S  VP (show the lowest price)
 şi structura interogativă, frecvent utilizată într-un dialog.
Propoziţiile interogative pot fi introduse cu verbe
auxiliare, ca în structura ”da-nu”:
 S  Aux NP VP (ex.: Do any of these flights have
stops?)
 sau cu aşa numitele wh-words: who, where, what, which,
how, why. În acest ultim caz, frazele pot avea o structură
identică cu cea a frazelor declarative, cu diferenţa că ele
încep cu un wh-word, în cazul wh-subject-question. În
cazul acestora, wh-word reprezintă subiectul frazei: What
airlines fly from Boston to Denver?.
Structura frazelor este dată de
regula:
 S  Wh_NP VP.
 Wh_NP  Wh NP.
 Wh  what/which/...

 În structurile wh-non-subject-question
constituentul introdus cu wh-word nu este
subiect, şi deci fraza include un alt
subiect, introdus cu Aux.
 S  Wh_NP Aux NP VP (ex.:What flight do
you have from Boston to Denver?)
Atât constituenţii NP cât şi cei VP pot să fie
legaţi prin diferite conjuncţii: and, or, but,
etc. De aceea mai introducem regulile
următoare:
 NP  NP and NP (ex.: the flights and the
costs)
 VP  VP and VP(ex: leaving Boston and
arriving San Francisco)
O posibilă realizare a unui
sistem de tip ATIS
 Gramatica CFG construită mai sus serveşte analizei sintactice
prin care se decide dacă o interogare este sau nu corectă şi
are şanse de a fi înţeleasă de către aplicaţie. În caz afirmativ,
o interogare este analizată după cuvintele pe care le conţine.
De exemplu : List all flights from London to Edinburgh after 8.
conţine informaţii care se atribuie predicatelor: from(london),
to(edinburgh), after(8).
 Valorile acestor predicate sunt deci definite analizând
întrebarea pusă de utilizator. Ele pot fi apoi utilizate pentru
consultarea unei baze de date care conţine predicatele flight şi
route:
 flight(flight_no, frequency, route, flying_time)
 route(from, to, dep_time, arr_time, flight_no,
transfer_city)
 De exemplu, extrăgând din interogare
 from(Departure_City).
 To(Destination_City).
 after(Dep_Time).
aceste informaţii pot să fie căutate în baza de
date reprezentată de predicatul route.
 Pe lângă aceste informaţii trebuie stabilit şi tipul
interogării: imperative, wh-interogări. Şi acest
lucru se va realiza pe baza cuvintelor existente în
interogare.
 Analiza interogării se face şi pe baza informaţiilor
furnizate cu ajutorul unor predicate: is_a, has_a.
Exemplu
 Fie interogarea următoare:
 List all flights from Boston to Chicago.
 În primul rând se identifică propoziţia ca fiind
imperativă datorită ver­bului list.
 Se verifică apoi că token-ul Boston este într-
adevăr un oraş existent in baza de date, analog
pentru token-ul Chicago.
 Dacă nu există astfel de zboruri, un răspuns
’’cooperant” ar trebui să fie de genul: There are
no flights from Boston to Chicago.”
 Baza de date conţinând zborurile companiei este
dată de o succesiune de fapte pentru predicatele
flight şi route. Acestea permit obţinerea
următoarelor informaţii:
 despre zborul în sine( utilizatorul intreabă dacă există zbor
de la X la Y),
 despre orele de zbor, despre zilele de zbor,
 despre tipul zborului (un zbor poate fi direct, sau cu escala,
caz in care utilizatorul cere informaţii despre oraşul de
transfer),
 despre durata zborului.
 Deci ele vor fi definite astfel:
 route(from, to, dep_time, arr_time, flight_no, transfer_city)
 flight(f light_no, frequency, route, flying_time)
 De asemenea, se pot prescurta denumirile oraşelor
prin predicatul code.
Exemplu
 route(bos, ny, 14.25,16.00, BA425, []).
arată că este vorba de un zbor direct de la Boston la
New York, care are plecarea şi sosirea la orele 14,25
respectiv 16,00, are numărul BA425 şi nu face
escală.
 route(ny, ams, 10.10,19.35,2M133, [16.50, lon,
17.25]).
indică un zbor cu escală la Londra, intre orele 16,50
şi 17,25 , de la New York la Amsterdam.
 flight(MAQ71, [3,6], [bos, lon], 9.50).
se referă la zborul cu numărul MA071, care circulă
doar miercuri (3) şi sambată (6), pe ruta Boston-
London, durata zborului fiind 9 ore si 50 minute.
 Aplicaţia va trebui să conţină, aşa cum am
precizat deja, predicate care permit extragerea
din interogare a unor date punctuale despre
zboruri, rute, ore/ timp, aşa cum sunt ele cerute
de utilizator:
 from(Departure_City).
 to(Destination_City).
 after(Departure_Time).
 before(Arrival _Time).
 on(Day).
 in(Month).
 Type_answer (Answer_type).
 Type_quest(Question_type).
 Să presupunem că se doreşte lista zborurilor de
la Boston la Londra după orele 5. Interogarea
sună astfel:
 List all flights from Boston to London after 5.
 Informaţiile extrase din interogare, care trebuie
unificate cu argumentele corespunzătoare ale
predicatelor flight şi route sunt:
 from(boston).
 to(london).
 after(5).
 type_answer(from_after).
 type_quest(which).
O posibilă definiţie a
predicatului type_answer
 type_answer(dest_after) : —
from(_), to(_), after(_).
 type_answer(dest_after) : —

from(_), to(_).
 type_answer(all) : —

from(_), to(_), after(_), before(_).


Predicatul complete_answer_no_time
ar putea fi definit:
 complete_answer_no_time(Rasp):-
from(City1),
to(City2),
code(From, City1),
code(To, City2),
route(From, To,_,_, X,flight_no, X, transfer_city),
string_concat(X_flight_no, From, L),
string_concat(‘and to’, To, L1),
string_concat(L, L1, Rasp).

 Analog pentru un răspuns complet cu informaţii


despre timp.
Structura şi coerenţa dialogului
 Modelul BDI furnizează o altă modalitate (numită
intenţională) de definire a structurii și coerenţei
discursului faţă de modalitatea stabilirii relaţiilor
de coerenţă pe care am prezentat-o anterior.
 În această abordare, aplicată mai ales la dialog,
frazele sunt privite ca acţiuni care sunt urmate de
reacţii ale celui care le ascultă. Deasemenea, se
consideră că întregul dialog are un scop principal
(SP) în timp ce fiecare segment interior al
discursului are un rol principal propriu, numit
scop principal al segmentului (SPS).
Câteva scopuri posibile:
 scopul ca un anumit agent să realizeze o anumită
acţiune;
 scopul ca un anumit agent să cunoască un anumit
fapt;
 scopul ca un anumit agent să identifice un obiect, o
situaţie, etc. sau proprietăţi ale lor.

 În locul relaţiilor de coerenţă introduse pentru un


discurs ca mai sus, se pot introduce relaţii de
dominare între două SPS astfel: DSP1 domină pe
DSP2 dacă realizând DSP2 se realizează o parte din
DSP1, sau dacă pentru realizarea lui DSP1 trebuie
realizat întâi DSP2.
 Să considerăm cazul rezervării unui loc la
un avion. Agentul A trebuie să cunoască o
mulţime de parametri despre un zbor,
inclusiv data plecării, originea, destinaţia,
etc. Iniţial, cel care începe dialogul, C,
specifică o parte din informaţie, de
exemplu destinaţia şi o parte din data
plecării. Agentul va solicita restul
informaţiei.
 Să considerăm următorul dialog între un
client C şi un agent A
 C1 Trebuie să călătoresc în mai
 A1. În ce zi din mai doriţi să călătoriţi?
 C2. Trebuie să fiu acolo pentru o conferinţă între 12 şi 15.
 A2. În ce oraş trebuie să călătoriţi?
 C3. Boston
 A3. Când doriţi să plecaţi din Bucureşti?
 C4. Nu ştiu ce oferte sunt non-stop.
 A4. Există trei zboruri non stop în acest moment.
 C5. Care sunt acestea?
 A5. Primul pleacă la ora... şi ajunge la ora... , al doilea pleacă la
ora... şi ajunge la ora... , al treilea pleacă la ora... şi ajunge la
ora…
 C6. OK, voi lua zborul de la ora 5 în noaptea dinaintea lui 11.
 A6. In 11? Pleacă la ora 5,05 din Bucureşti şi ajunge la ora 19 în
Boston. Zborul US Air 115.
 C7. OK.
 În mod colaborativ, agentul şi clientul caută un zbor care
să satisfacă cerinţele clientului. Să notăm cu I1 scopul final
al dialogului şi cu Ii intenţiile intermediare care vor
contribui la satisfacerea lui I1.
 I1. (Intenţie C (Intenţie A ( A găseşte un zbor pentru C)))
 I2. (Intenţie A (Intenţie C ( C spune lui A data plecării)))
 I3. ( Intenţie A ( Intenţie C ( C spune lui A oraşul de
destinaţie)))
 I4. (Intenţie A ( Intenţie C ( C spune lui A ora plecării)))
 I5. ( Intenţie C ( Intenţie A ( A găseşte un zbor non-stop
pentruC))
Relaţiile de dominare între
intenţii sunt:
 I1 domină pe I2
 I1 domină pe I3
 I1 domină pe I4
 I1 domină pe I5

 In timp, I2, I3 şi I4 preced pe I5.


 Să notăm segmentele de discurs astfel:
DS1 este întregul dialog, DS2 este A1—C2,
DS3 este A2—C3, DS4 este A3, DS5 este
C4—C7. Un arbore care sugerează relaţiile
de dominare între segmente este
următorul:
DS1

C1 DS2 DS3 DS4 DS5

S-ar putea să vă placă și