PRELUCRAREA LIMBAJULUI NATURAL
Din punct de vedere stiintific, limbajul natural (uman) constituie obiectul de cercetare a numeroase discipline si, in primul rand, al lingvisticii sau 'stiintei limbii'. Acelasi obiect de investigatie intereseaza insa si filozofia, psiholingvistica, lingvistica matematica, lingvistica computationala, prelucrarea limbajului natural.
Lingvistica matematica ca disciplina, urmareste sa gaseasca un formalism matematic prin care sa descrie limbajul natural si concepe, teoreme, leme, corolare etc. prin care vrea sa descrie fenomenele, schimbarile limbii. Ea nu foloseste tehnici computerizate. Lingvistica matematica inseamna, de fapt, studiul fenomenelor din limba cu mijloace matematice.
Lingvistica computationala aplica tehnici computerizate in cercetarea lingvistica implicand, in felul acesta, utilizarea de algoritmi, structuri de date si modele formale ale reprezentarii si rationamentului, precum si tehnici ale inteligentei artificiale (in special metode de reprezentare si de cautare). Unele dintre problemele specifice pe care le trateaza sunt: identificarea structurii propozitiilor, modelarea rationamentului si a cunoasterii, stabilirea modului in care poate fi folosit limbajul natural pentru realizarea acestor obiective, traducerea asistata de calculator, prelucrari statistice ale limbajului.
Procesarea limbajului natural reprezinta o tehnologie (adica un ansamblu de procese, metode, operatii) care creeaza si implementeaza modalitati de a executa diferite sarcini referitoare la limbajul natural (cum ar fi constructia unor interfete - bazate pe limbaj natural - cu baze de date, traducerea automata s.a.). Procesarea limbajului natural reprezinta si astazi o problema dificila si in cea mai mare parte nerezolvata. Gasirea unei tehnologii adecvate este extrem de grea datorita naturii multidisciplinare a problemei, fiind implicate urmatoarele stiinte si domenii: lingvistica, psiholingvistica, lingvistica computationala, filozofie, informatica, in general si inteligenta artificiala, in mod special, etc. I
Aplicatiile procesarii limbajului natural se inscriu in trei mari categorii:
· aplicatiile bazate pe text, dintre care amintim:
· clasificarea documentelor (si respectiv gasirea documentelor legate de anumite subiecte);
· regasirea informatiei (cautarea unor cuvinte-cheie sau concepte);
· extragerea informatiei (legate de un anumit subiect, deci de un anumit cuvant-cheie);
· intelegerea textelor (care presupune o analiza profunda a structurii acestora);
· traducerea automata si traducerea asistata de calculator dintr-o limba in alta;
· alcatuirea de sinteze;
· achizitia de cunostinte.
· aplicatiile bazate pe dialog, care implica comunicarea intre om si masina, aplicatii cum ar fi sistemele de invatare, sistemele de interogare si raspuns la intrebari, rezolvarea problemelor, controlul (bazat pe limba vorbita) al unui calculator s.a.
Este important sa facem distinctia intre problemele de recunoastere a vorbirii si cele de intelegere a limbajului. Astfel, trebuie sa remarcam inca de la inceput faptul ca un sistem de recunoastere a vorbirii nu foloseste nici un element de intelegere a limbajului. Recunoasterea vorbirii se ocupa numai de identificarea cuvintelor vorbite provenind de la un semnal dat, nu si de intelegerea mesajului, adica a modului in care aceste cuvinte sunt folosite in procesul de comunicare. Pentru a deveni un sistem de intelegere a limbajului, un dispozitiv de recunoastere a vorbirii trebuie sa furnizeze intrarea sa unui sistem de intelegere a limbajului natural, operatie care produce un asa-numit 'sistem de intelegere a limbajului vorbit'. Caracteristica de baza a oricarui sistem de intelegere este aceea ca el realizeaza o reprezentare a intelesului propozitiilor intr-un limbaj de reprezentare, care poate fi utilizat in vederea unei procesari ulterioare).
Reprezentarea cunoştinţelor
Reprezentarea cunoştinţelor înseamnă modelarea lumii înconjurătoare într-o formă recunoscută de către calculator1. Ideea este de a analiza cunoştinţele despre lumea reală şi apoi a crea un model/standard după reguli şi tipuri de relaţii bine stabilite, de a traduce limbajul (natural) uman într-un format pe înţelesul atât al calculatorului cât şi al omului.
Deşi reprezentarea cunoştinţelor este unul din cele mai familiare concepte în inteligenţa artificială, mulţi cercetători se întreabă în continuare: ce este de fapt reprezentarea cunoştinţelor? Au fost scrise numeroase lucrări cu privire la diferite aspecte sau metode de reprezentare a cunoştinţelor însă foarte rar a fost dat un răspuns direct. La această întrebare încearcă să răspundă şi autorii Randall Davis, Howard Shrobe and Peter Szolovits2 care sunt de părere că răspunsul poate fi înţeles în funcţie de cinci roluri importante şi distincte pe care le poate avea reprezentarea şi anume:
-
Reprezentarea cunoştinţelor (KR – knowledge representation) este în mod fundamental un surogat, un substitut pentru obiectul în sine, folosit pentru a permite unei entităţi de a determina consecinţe mai degrabă prin raţionament decât prin acţiune – de a efectua raţionamente despre ”lume” în defavoarea participării active în această „lume”;
-
Este un set de enunţuri ontologice, un răspuns la o întrebare de genul: în ce termeni trebuie să gândesc despre lume? Acest lucru duce la o selecţie a ceea ce este important sau relevant de surprins despre lumea înconjurătoare. Reprezentarea poate fi codificată în diferite moduri folosindu-se diferite notaţii, însă partea importantă nu este forma ci conţinutul. Totuşi forma, modalitatea de reprezentare este şi ea importantă deoarece foloseşte reguli care implică inferenţe logice despre triplete de forma obiect – atribut – adjectiv;
-
Este un fragment din teoria raţionamentului inteligent exprimată în termeni de trei componente: concept fundamentale al raţionamentului inteligent, setul de inferenţe necesar pentru reprezentarea cunoştinţelor, şi setul de inferenţe recomandate;
-
Este un mediu de calcul pragmatic eficient. Atunci când folosim o reprezentare, calculatorul va realiza procesări pe modelul folosit, ceea ce înseamnă că eficienţa calculului devine un punct de importanţă majoră în noţiunea de reprezentare a cunoştinţelor. De regulă, orice model de reprezentare a cunoştinţelor este destinat unui anumit mod de structurare şi organizare a cunoştinţelor pentru a oferi eficienţă în procesarea electronică;
-
Este un mediu pentru expresia umană – un limbaj în care facem afirmaţii despre lumea înconjurătoare. Oamenii sunt cei care adună şi organizează cunoştinţele în baze de cunoştinţe, iar pentru asta trebuie să creeze un mod de reprezentare „pe înţelesul” atât al calculator cât şi al oamenilor. De aici apar întrebări de genul: cât de bună este reprezentarea? cât de precisă? cât de uşor pot comunica oamenii folosind acest tip de reprezentare? etc.
Întrebarea care se pune este cum putem modela realitatea din perspectiva calculatorului pentru a descrie modul cum sunt lucrurile în realitate? Cum putem crea un mediu de exprimare umană sau, cu alte cuvinte, cum putem să ne reprezentăm cunoştinţele astfel încât calculatorul să le poată înţelege, să le poată procesa automat?
Modele de reprezentare a cunoştinţelor
Tripletele Obiect-Atribut-Valoare
Tripletele de tip O-A-V sunt un model de reprezentare folosit pentru a modela fapte despre obiecte şi atributele lor. Concret, se atribuie valori pentru atributele unui obiect.
De exemplu, cunoaşterea faptului că „Acest standard se numeşte XML” poate fi reprezentat ca un triplet O-A-V precum in Figura 1.1 de jos:
Figura 1.1: Model O-A-V
Logica Fuzzy
Logica Fuzzy este folosită pentru a reprezenta incertitudinea prin termeni imprecişi folosiţi în mod obişnuit în limbajul natural uman.
Fie declaraţia: „ Salarul este mic ”, aceasta poate fi interpretată diferit în funcţie de semnificaţia termenului mic pentru fiecare persoană în parte. Pentru acest exemplu presupunem T un interval de valori pentru salar cuprins între 500 şi 2000 lei şi funcţia µ : T -> [0,1] unde µ(t) cu tT, este gradul de „mic” asociat pentru salarul s.
Sistemul fuzzy este constituit dintr-un subsistem de extragere a regulilor fuzzy pornind de la datele problemei (etapa de fuzzificare), un subsistem de efectuare a inferenţelor fuzzy (raţionamentul) şi un subsistem de transformare a cunoştinţelor fuzzy în date efective (etapa de defuzzificare).
Reguli de producţie
Regulile de producţie reprezintă cea mai folosită metodă de reprezentare a cunoştinţelor. Există mai multe tipuri şi anume: reguli de producţie, reguli de producţie cu excepţii şi reguli de asociere. În continuare ne vom ocupa doar de regulile de producţie.
Această metodă de reprezentare a cunoştinţelor asociază una sau mai multe premise sau situaţii, la una sau mai multe concluzii sau acţiuni. Este alcătuită din reguli de forma IF – THEN, unde premisele sunt conţinute în partea IF din sintaxa regulii, iar concluziile în partea THEN din regulă, astfel încât concluziile pot fi deduse din premise atunci când sunt adevărate. Mai sunt cunoscute şi sub forma: cauză-efect, premisă-concluzie, condiţie-acţiune, IF-THEN.
O astfel de regulă este de forma:
IF condiţie1 [operator logic de forma AND, OR, NOT] condiţie2 ...
THEN acţiune1 [operator logic de forma AND, OR, NOT] acţiune2 ...
Exemplu: IF Inflaţia creşte
THEN Puterea de cumpărare scade
Sau
IF Inflaţia creşte AND TVA creşte
THEN Rata dobânzii creşte
Cunoştinţele dintr-un sistem inteligent pot fi reprezentate folosind un număr de reguli. În acest caz, regulile sunt de obicei grupate într-o ierarhie de seturi de reguli, fiecare set conţinând reguli relative la acelaşi subiect.
Reţele semantice
Reţelele semantice sunt grafuri orientate în care nodurile sunt obiecte, concepte şi situaţii ale unui anumit domeniu al cunoaşterii, iar arcele reprezintă relaţiile între obiecte sau atributele obiectelor punctând spre noduri care conţin valori ale acestor atribute3.
Un exemplu de reţea semantică este prezentată în Figura 1.2:
Figura 1.2: Exemplu de reţea semantică
În acest exemplu reţeaua modelează declaraţii de tipul: Popescu este un (IS A) specialist IT, care este un tip de (Kind Of) funcţie. Alte tipuri de (Kind Of) funcţii sunt economist şi manager. Un specialist IT are (Has) salariu în valoare de (Value of) 4.
Arcurile sunt etichetate pentru a arăta relaţiile dintre concepte. Se poate vedea faptul că nodurile reprezintă concepte (clase) şi obiectele (instanţe ale clasei), atribute ale obiectelor şi valori ale atributelor. O reţea semantică poate include şi alte modele de reprezentare precum tripletul O-A-V (Salariu – valoare de – 2000) observat în exemplul de mai sus.
Reţelele semantice sunt foarte uşor de învăţat şi folosit de către specialişti însă sunt slabe în reprezentarea şi captarea excepţiilor pentru domeniul de cunoştinţe modelat.
Limbaje de reprezentare
Limbajul este intim legat de gândire şi este unul din lucrurile importante care deosebesc oamenii de animale.
Într-un sistem multiagent, pentru atingerea unor obiective comune, agenţii trebuie să comunice unul cu altul prin:
-
interogarea altui agent despre anumite aspecte ale lumii
-
informarea reciprocă despre lume - prin întrebări reprezentative şi răspunsuri la întrebări
-
confirmarea unor cunoştinţe despre lume
-
promiterea sau angajarea la un plan
Fiecare act de vorbire afectează lumea/mediul, schimbând starea mentală şi eventual acţiunile viitoare ale celorlalţi agenţi.
Un limbaj formal este definit ca o mulţime de şiruri (posibil infinită), fiecare şir fiind o concatenare de simboluri terminale, uneori numite cuvinte. Spre deosebire de limbajele formale care au definiţii matematice stricte, limbajele naturale rezultă din comunicarea interumană. Multe din limbajele naturale (limbile engleză, franceză, română, rusă etc.) se bazează pe un alfabet, pe când altele (chineză, japoneză) nu. Acestea din urmă constituie frazele din simboluri cu semantici mai complexe şi folosesc foarte des metafore pentru a da sens anumitor fraze. Noi ne vom ocupa de limbajele bazate pe alfabet.
Pentru obţinerea de rezultate în tratarea automată a limbajelor naturale, adesea acestea vor fi privite precum limbajele formale, deşi primele sunt mult mai complexe.
O gramatică este o mulţime finită de reguli care specifică un limbaj. Limbajele formale au întotdeauna o gramatică oficială, pe când cele naturale nu, dar lingviştii se străduie să descopere proprietăţi ale limbajului şi apoi să le codifice într-o gramatică.
Atât limbajele formale, cât şi cele naturale asociază un înţeles sau o semantică fiecărui şir corect. În limbajele naturale, este important şi de înţeles pragmatica unui şir, adică înţelesul actual al şirului aşa cum este el spus într-o situaţie dată. Înţelesul nu este doar în cuvintele însele, ci şi în interpretarea acestora in situ.
În tratarea formalizată a limbajului natural se folosesc adesea nişte structuri formate din subşiruri de categorii diferite. Acestea se numesc grupuri, expresii sau constituenţi frazali. De exemplu, "o carte", "o carte de pe masă" sunt exemple de grupuri nominale.(NP).
Există două motive de a identifica grupurile în acest fel. Mai întâi, grupurile corespund în mod uzual elementelor de semantică naturală de la care poate fi construit înţelesul unei exprimări, de exemplu, grupul nominal se referă la obiecte din lume. În al doilea rând, categorizarea grupurilor ne ajută să descriem şirurile permise ale limbajului. Putem spune că orice grup nominal se poate combina cu un grup verbal (sau VP) precum "is deal" pentru a forma un grup de categoria propoziţie (sau S). Fără noţiunile intermediare de grup nominal şi grup verbal, ar fi dificil de explicat de ce "the wumpus is dead" este o propoziţie, pe când "wumpus the dead is" nu este.
Logica predicatelor de ordin întâi
Acesta este un limbaj care foloseşte logica matematică şi foloseşte simboluri pentru a reprezenta cunoştinţele, respectiv operatori logici pentru a construi declaraţii. Simbolurile pot fi variabile, constante, predicate şi funcţii, iar operatorii sunt cei binecunoscuţi din logica matematică: , , AND, OR, NOT etc. Declaraţiile din baza de cunoştinţe sunt descompuse în propoziţii numite aserţiuni, iar fiecare astfel de aserţiune este apoi descompusă în obiecte care pot fi variabile sau constante şi predicate cu număr finit de locuri (aritatea predicatului).
Propoziţiile sunt reprezentate prin folosirea de argumente – obiecte ale propoziţiilor şi predicate – afirmaţii despre obiecte.
De exemplu fie propoziţiile:
„Angajaţii firmei au credite. Ei plătesc ratele dacă primesc salariul sau dacă împrumută bani.”
Pentru prima propoziţie avem aserţiunea A1, iar următoarea frază este alcătuită din:
aserţiunea A2 – „Ei plătesc ratele”,
aserţiunea A3 – „primesc salariul” şi
aserţiunea A4 – „împrumută bani”.
Se poate observa faptul ca A3 A4 A2.
Mai departe descompunem fiecare aserţiune în obiecte şi predicate astfel
predicat(obiect1, obiect2, ...):
A1: au(angajaţii, credite)
A2: plătesc(ei, ratele)
A3: primesc(salariu)
A4: împrumută(bani)
În final descrierea devine:
Au(Angajaţii, credite)
Primesc(salariu) Împrumută(bani) Plătesc (ei, ratele)
Presupunem acum că descrierea are caracter de generalitate, atunci aserţiunea A1 are şi ea caracter de generalitate ceea ce înseamnă că se poate repeta pentru fiecare instanţă a conceptului Angajaţi. În acest caz avem de a face cu o clasă de obiecte numită Angajaţi, iar pentru instanţierea fiecărui obiect avem predicatul Angajaţi(x) unde x este instantă a clasei. Caracterul de generalitate este modelat prin cuantificatorul . Aserţiunile vor avea în final forma următoare:
x ( Angajaţi(x) Au(x, credite))
Primesc(salariu) Împrumută(bani) n(Rata(n) Plătesc(x, n) )
Logica predicatelor de ordin întâi este un limbaj simplu care foloseşte predicate, reguli şi operatori logici de bază. Este considerat ca limbaj de bază în crearea altor limbaje din inteligenţa artificială4.
Logici de descriere
Logici de Descrierii (DL – Description Logic) reprezintă numele pentru o familie de limbaje de reprezentare a cunoştinţelor. Construcţiile de bază ale unui DL sunt conceptele şi rolurile5. Un concept este un set de obiecte dintr-un domeniu. De exemplu, conceptul Persoană şi Femeie reprezintă setul de persoane şi respectiv setul de femei. Un rol este o relaţie binară dintre două obiecte din domeniu. De exemplu, rolul areCopil reprezintă relaţia dintre părinţi şi copii lor.
Conceptele şi rolurile corespund predicatelor unare (o aritate) din logica predicatelor şi respectiv binare (aritate doi). Conceptele şi rolurile mai complexe (de aritate superioară, se considera predicatul P(x,z,y) ca fiind de aritate 3) pot fi construite din cele deja cunoscute folosind operatorii: intersecţia , negaţia , şi cuantificatorii universal şi existenţial .
Pentru a înţele mai bine conceptele fie următorul exemplu:
Fie axiomele: Angajat Persoană Salariat
Manager Persoana (≥ 1 areSubordonat).Angajat
unde conceptul Angajat este definit din intersecţia dintre Persoană şi Salariat şi Manager din conceptul Persoană cu cel puţin un subordonat.
DL cuprinde formalisme semantice logice prin urmare cunoştinţele reprezentate în aceste limbaje exprimate ca şi seturi de formule DL nu pot fi interpretate diferit de persoane diferite. DL este folosit atât pentru reprezentarea cunoştinţelor cît şi pentru a raţiona pe baza lor. Acest lucru înseamnă că putem infera noi cunoştinţe pe baza celor existente folosind reguli de inferenţă oferite de DL. Una din aceste reguli este subsumarea. Aceasta se bazează pe clasificarea conceptelor care determină subconcepte sau superconcepte. Regula aplicată exemplului de mai sus oferă deducţiile: Angajat este dedus din Persoană şi Manager din Angajat Femeie. Această regulă este folosită pentru a face inferenţe şi a afla dacă un obiect este instanţă a unui concept.
DL lucrează pe baze de cunoştinţe. O baza de cunoştinţe – KB este formată din TBox şi ABox.
TBox include cunoştinţele terminologice, cunoştinţe despre concepte şi roluri. Axiomele din exemplu de mai sus intră în această categorie.
ABox conţine aserţiuni despre obiecte şi rolurile dintre ele. Exemplu: areCopil(A,B). Obiectele pot fi considerate indivizi (constante), iar conceptele seturi de indivizi şi rolurile, relaţii binare între indivizi.
Scopul raţionamentelor pentru o terminologie (TBox) este de a determina dacă o descriere este suficientă sau satisface6 o bază de cunoştinţe sau, altfel spus, dacă o descriere este mai generală decât alta sau dacă prima o deduce pe cealaltă. Problema de bază pentru ABox este verificarea faptului dacă setul de aserţiuni este consistent, dacă oricare ar fi aserţiunea ea trebuie să reprezinte o instantă a unui concept.
Prin urmare o KB semnificativă = suficienţă + consistenţă.
Notaţii ( adaptare după Baader Franz):
Fie: KB – bază de cunoştinţe cu KB = T+A, unde T - set de terminologii TBox (axiome terminologice) şi A - set de aserţiuni sau ABox (axiome individuale);
C şi D descrieri de concepte C, D T,
CD – axiomă de incluziune,
CD – axiomă de echivalenţă,
R – rol,
a,b – aserţiuni, a,b A de forma C(a) şi D(b) cu (a,b) : R sau R(a,b).
Fie I interpretarea care constă din setul nevid I (domeniul interpretării) şi o funcţie de interpretare care atribuie fiecărui concept atomic A un set de interpretări: AI cu AI I şi fiecărui rol o relaţie binară de forma: RI I x I. Spunem că două concepte sunt echivalente dacă CIDI pentru I.
Exemplu: areCopil.Feminin areCopil.Student areCopil(Feminin Student)
Verificăm KB să fie semnificativă dacă se îndeplineşte suficienţa şi consistenţa.
Verificarea suficienţei:
Terminologiile sunt de forma CD sau CD. Spunem că interpretarea I satisface:
-
incluziunea CD dacă CIDI
-
echivalenţa CD dacă CIDI.
La modul general spunem că: T set de axiome terminologice, atunci I satisface T dacă I satisface fiecare element din T : t T , tI I.
Verificarea consisteţei:
Indivizii din ABox au nume şi proprietăţi. Fie indivizii a,b,c şi avem conceptul C descris în TBox şi rolul R. Putem face aserţiunile: C(a) şi R(b,c) a aserţiune pentru C şi c are rolul R pentru b.
Fie A set finit de aserţiuni. I satisface aserţiunile despre C, C(a) dacă aI CI şi satisface aserţiunile despre rolul dintre a şi b: R(a,b) dacă (aI, bI) RI. O interpretare satisface A dacă satisface fiecare aserţiune în A.
Abilitatea de a exprima taxonomii sub formă de clasificări ierarhice şi abilitatea de a realiza raţionamente oferite de DL a condus la un număr de propuneri care folosesc DL pentru a reprezenta şi raţiona cu informaţiile de pe Web sau, altfel spus, de a modela structuri Web şi de a achiziţiona noi informaţii de pe Web7.
Limbaje de reprezentare bazate pe reguli
Limbajele de reprezentare bazate pe reguli sunt foarte utilizate în aplicaţii ale domeniului de inteligenţă artificială, deoarece sunt uşor de înţeles, iar sintaxa lor permite realizarea de reguli de tip IF-THEN.
Datorită interesului faşă de limbajele bazate pe reguli pentru reprezentare în spaţiul Web, a fost definit limbajul RuleML de către Rule Markup Initiative. RuleML – Rule Markup Language codifică diferite reguli cu XML pentru deducţii, rescrieri şi alte modificări viitoare. Categoriile de reguli considerate de către Rule Markup Initiative includ8:
-
Reguli de producţie;
-
Reguli de integritate sau constrângeri de integritate;
-
Reguli de reacţie – se execută regulile doar atunci când toate evenimentele necesare, condiţiile, sunt observate, tratate, cu alte cuvinte sunt reguli care specifică comportamentul unui sistem ca răspuns la realizarea unui trigger;
-
Reguli de derivare – reguli cu una sau mai multe condiţii şi o concluzie derivată din ele; reguli pentru definirea unor concepte derivate;
-
Reguli de transformare.
Un exemplu de reprezentare utilizând RuleML este următorul9:
Fie propoziţia „Dacă cuiva îi place economia, atunci profesorul îl place pe acel student”, regula va arăta astfel:
<_head>
place
profesor
x
<_body>
place
x
economia
Gramatici formale pentru analiza sintactică
Gramatică Chomsky
Înainte de a realiza o analiză semantică a limbajului natural, trebuie să definim lexicul şi regulile sintactice ale unei gramatici formale folositoare pentru generarea de propoziţii simple în limba considerată (de exemplu engleză).
Vom considera următoarea gramatică simplă [AIMA]
Lexicul:
Noun -> stench | breeze | glitter | nothing | agent | wumpus | pit | pits | gold | east | ...
Verb -> is | see | smell | shoot | feel | stinks | go | grab | carry | kill | turn |
Adjective -> right | left | east | dead | back | smelly | ...
Adverb -> here | there | nearby | ahead | right | left | east | south | back | ...
Pronoun -> me | you | I | it | ...
Name -> John | Mary | Boston | Aristotle | ...
Article -> the | a | an | ...
Preposition -> to | in | on | near | ...
Conjunction -> and | or | but | ...
Digit -> 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
Gramatica (reguli sintactice) cu exemple de constituenţi frazali pentru fiecare regulă
S -> NP VP
| S Conjunction S
|
I + feel a breeze
I feel a breeze + and + I smell a wumpus
|
NP -> Pronoun
| Name
| Noun
| Article Noun
| Digit Digit
| NP PP
| NP RelClause
|
I
John
pits
the + wumpus
3 4
the wumpus + to the east
the wumpus + that is smelly
|
VP -> Verb
| VP NP
| VP Adjective
| VP PP
| VP Adverb
|
stinks
feel + a breeze
is + smelly
turn + to the east
go + ahead
|
PP -> Preposition NP
|
to + the east
|
RelClause -> that VP
|
that + is smelly
|
Figura 1.3. Lexicul şi sintaxa pentru un fragment al limbii engleze [AIMA]
Această gramatică generează propoziţii corecte în limba engleză precum
John is in the pit
The wumpus that stinks is in 2.2
Mary is in Boston and John stinks
dar supragenerează, adică generează propoziţii care nu sunt gramatical corecte, precum "Me go Boston" şi "I smell pit gold wumpus nothing east". De asemenea, ea subgenerează, adică există multe propoziţii în limba engleză pe care gramatica le rejectează, precum "I think the wumpus is smelly".
Analiza sintactică sau parsarea unui şir de cuvinte poate fi văzută ca un proces de căutare a unui arbore de derivare. Acest lucru se poate realiza fie plecând de la S şi căutând un arbore care să aibă cuvintele şirului drept funze (parsare top-down), fie plecând cu cuvintele şi căutând un arbore cu rădăcina S. (parsare bottom-up).
Să considerăm următoarele două propoziţii:
Have the students in section 2 of Computer Science 101 take the exam.
Have the students in section 2 of Computer Science 101 taken the exam?
Deşi primele 10 cuvinte le sunt comune, aceste propoziţii au parsări foarte diferite, deoarece prima este o comandă, iar a doua o întrebare.
Un algoritm de parsare eficientă are la bază programarea dinamică: de fiecare dată când analizăm subşirul, stocăm rezultatul aşa să nu mai trebuiască să-l reanalizăm mai tărziu. De exemplu, de îndată ce am descoperit că "the students in section 2 of Computer Science 101" este un NP, putem înregistra rezultatul într-o structură de date numită chart. Algoritmii care fac acest lucru sunt numiţi chart-parsere. Algoritmul chart-parser foloseşte un timp polinomial şi un spaţiu polinomial.
WordNet - o bază de date lexicală on-line
WordNet (http://www.cogsci.princeton.edu/~wn/) este o reţea de sensuri ale cuvintelor dintr-o limbă. Organizarea sa diferă de cea a unui dicţionar din mai multe motive ce vor fi lămurite în cele ce urmează. Vom arăta totodată şi avantajele unei astfel de organizări într-o exploatare interactivă, cât şi diferitele aplicaţii ce pot fi dezvoltate o dată ce avem un WordNet.
Dintr-un anumit punct de vedere, un WordNet este o reţea ontologică a sensurilor cuvintelor unei limbi. Wordnet-urile trebuiesc privite ca ontologii lingvistice mai mult decît ontologii semantice, deci inferenţiale (Vossen, 1999). Diferenţa este indusă de faptul că într-un WordNet conceptele ce participă în ierarhie sunt efectiv cuvinte ale limbii, deci potenţial mai multe ori mai puţine decât conceptele semantice ce pot descrie eficient anumite domenii. Deşi putem pune în evidenţă această diferenţă teoretică, faptul că suntem în măsură să exprimăm în cuvinte raţionamente asupra oricărui domeniu al cunoaşterii, cred că este o dovadă că reprezentările noastre conceptuale se pot mapa pe taxonomii lingvistice augmentate cu relaţii meronimice.
Primul proiect al unui WordNet a început în 1985 la Universitatea din Princeton de către un grup de lingvişti şi psiholingvişti. Idea de bază era aceea a unui dicţionar în care căutarea să poată fi făcută conceptual iar nu alfabetic şi întreaga organizare să fie cea a unei baze de date accesibilă on-line.
WordNet este divizat în secţiuni pentru substantive, verbe, adjective şi adverbe. S-a renunţat la cuvintele funcţionale, deoarece cercetările asupra vorbirii pacienţilor afazici au arătat că în creierul uman ele sunt mai degrabă memorate separat ca parte a unei componente sintactice a limbii, decât una semantică. Fiind organizat pe părţi de vorbire, WordNet diferă fundamental în organizare faţă de un dicţionar clasic. Fireşte, un acelaşi cuvânt poate să apară de mai multe ori în mulţimi de sensuri asociate unor părţi de vorbire diferite. Avantajul însă constă într-o separare principială a reprezentării pe categorii sintactice. O mare diferenţă faţă de un dicţionar clasic este că WordNet-ul este organizat pe sensuri şi nu pe cuvinte.
5.1. Matricea lexicală
În WordNet se ţine cont de deosebirea dintre forma scrisă şi semnificaţie (vezi distincţia semnificant – semnificat din semiologie). În matricea următoare, numită matrice lexicală sau matrice sensuri-forme, M1, …, Mm, etichetele capetelor de linii reprezintă sensuri iar W1, …, Wn, etichetele capetelor de coloane reprezintă cuvinte (forme). Celula de la intersecţia liniei Mi cu coloana Wj semnifică faptul că forma Wj poate fi folosită într-un anumit context cu sensul Mi.
Sensuri
|
Cuvinte
|
W1
|
W2
|
W3
|
…
|
Wn
|
M1
|
|
|
|
|
|
M2
|
|
|
|
|
|
M3
|
|
|
|
|
|
…
|
|
|
|
|
|
Mm
|
|
|
|
|
|
Figura 5.1. Matricea sensuri-cuvinte
Pentru o limbă dată, matricea sensuri-forme este evident o matrice rară pentru că cele mai multe intrări sunt goale: pentru un cuvânt dat există doar un număr mic de sensuri ale lui, după cum pentru un sens dat, doar puţine cuvinte îl exprimă. Dacă există mai multe intrări (puncte în matrice) într-o coloană Wj, cuvântul Wj e polisemantic, iar dacă există mai multe intrări în linia Mi, sensul Mi poate fi exprimat prin mai multe cuvinte, ceea ce înseamnă că ele sunt sinonime pentru acel sens. În acest mod polisemia şi sinonimia pot fi explicate ca noţiuni complementare în matricea sensuri-forme.
Figura 5.2. Un exemplu de utilizare online a lui WordNet
5.2. Reprezentarea cuvintelor şi sensurilor în WordNet
Există două căi de acces în WordNet. Într-una se pleacă dinspre sensuri pentru a se obţine forma – acces diferenţial (vezi Figura 5.3.) iar în cealaltă se pleacă de la cuvinte pentru a se obţine sensul – acces constructiv (vezi Figura 5.4). O clasificare diferenţială/constructivă este una care reflectă punctul de vedere al unui acces ce are în vedere sensurile iar nu formele, pentru că se are în vedere fie diferenţierea între sensuri într-un acces care pleacă de la ele (input), fie recuperarea lor prin construcţie, deci ca rezultat (output) al accesului.
Reprezentarea cuvintelor nu pune nici o problemă, forma lor scrisă fiind suficientă pentru identificare atât într-un tip de accesare cât şi în celălalt. Dar cum am putea reprezenta sensurile? Pentru identificarea sensurilor nu există simboluri predefinite, iar inventarea unora artificiale, de înţeles atunci când se pune problema reprezentării în calculator, nu ar fi de nici un folos nici într-un proces de diferenţiere şi nici într-unul de construcţie.
Necesităţile unei teorii diferenţiale sunt modeste pentru că înţelesul ar putea fi reprezentat prin orice simbol ce ar permite unui analist distingerea lor cu unicitate.
Pe de altă parte, într-o teorie constructivă reprezentarea sensurilor trebuie să conţină suficientă informaţie pentru a permite construcţia cu acurateţe a conceptelor (fie de către o persoană, fie de către maşină). Reprezentarea sensurilor este realizată în dicţionarele clasice prin definiţie. există însă motive care fac pe lexicografi să creadă că o reprezentare prin definiţie nu e satisfăcătoare: de exemplu imposibilitatea evitării circularităţilor în definiţii [CRISTEA]
Sensuri
|
Cuvinte
|
W1
|
W2
|
W3
|
…
|
Wn
|
M1
|
|
|
|
|
|
M2
|
|
|
|
|
|
M3
|
|
|
|
|
|
…
|
|
|
|
|
|
Mm
|
|
|
|
|
|
Figura 5.3. Un acces diferenţial
Sensuri
|
Cuvinte
|
W1
|
W2
|
W3
|
…
|
Wn
|
M1
|
|
|
|
|
|
M2
|
|
|
|
|
|
M3
|
|
|
|
|
|
…
|
|
|
|
|
|
Mm
|
|
|
|
|
|
Figura 5.4. Un acces constructiv
Într-un acces diferenţial subiectul cunoaşte sensul şi caută doar un identificator scris pentru el. Pentru un astfel de acces, o reprezentare prin setul de sinonime este complet satisfăcătoare. De exemplu, pentru cineva care ştie că brâu semnifică fie o cingătoare, fie o parte a corpului (mijloc), fie un ornament colorat cu care se înconjoară uşile şi ferestrele sau se încinge un zid (dungă), fie un şir sau un lanţ muntos, e suficient să notăm aceste sensuri cu seturile de simboluri: {brâu, cingătoare}, {brâu, mijloc}, {brâu, dungă}, {brâu, şir, lanţ}. Aceste mulţimi de sinonime pot constitui designatori neambigui pentru desemnarea sensurilor. Ele nu definesc sensurile ci numai le numesc, certifică existenţa unor concepte. Un vorbitor de limbă română se presupune că posedă cunoaşterea acestor sensuri şi problema pentru el este numai a le identifica.
5.3. Relaţii lexicale în WordNet
1. Sinonimia este o relaţie între cuvinte şi are un rol primordial în WordNet. Seturile de sinonimii, numite synset-uri, sunt reprezentate între acolade.
Două cuvinte sunt cu adevărat sinonime când ele sunt echivalente în orice context, dar de cele mai multe ori două cuvinte pot fi sinonime doar în anumite contexte, iar în altele să nu fie. Miller şi Fellbaum exprimă o relaţie de sinonimie mai slabă: “două expresii sunt sinonime într-un context lingvistiv dacă substituţia unuia prin celălalt în C nu alterează valoarea de adevăr”.[MILLER]
Navigarea pe relaţii de sinonimie dintr-un cuvânt într-altul poate duce la alterarea considerabilă a sensului între cel al cuvântului iniţial şi cel al cuvântului final, adică relaţia de sinonimie nu e tranzitivă:
{brâu, şir, lanţ} {şir, desfăşurare de idei, fir} {fir, sârmă}
De aceea, relaţia de sinonimie trebuie considerată ca fiind una continuă şi nu discretă. Ea este în general acceptată de filosofi şi psiholigvişti ca o manifestare a similarităţii semantice a conceptelor.
Acceptarea relaţiei de sinonimie în WordNet drept una din relaţiile de bază în organizare are ca urmare necesară partiţionarea lui după părţi de vorbire (substantive, adjective, verbe, adverbe). Acest lucru este impus de faptul că nu putem avea cuvinte aparţinând la părţi de vorbire diferite care să fie sinonime.
2. Antonimele. Două cuvinte în general sunt considerate antonime dacă sensul unuia este contrar sensului altuia. Şi totuşi antonimul unui cuvânt c adesea nu este not-c. De exemplu antonimul lui alb nu este ne-alb, care poate fi orice de la gri la negru, ci pur şi simplu negru. De asemenea, deşi opusul lui bogat este sărac, negatul lui bogat nu este neapărat sărac, pentru că multă lume nu se consideră bogată, fără a fi în acelaşi timp săracă.
Nu orice cuvânt are un antonim. Cuvintele ce au antonime sunt de obicei cuvinte ale căror semnificaţii pot fi aşezate într-o plajă continuă ori discretă de valori şi nu oricare cuvinte din plajă au antonime. De exemplu, în plaja:
matusalemic, străvechi, bătrân, între două vârste, matur, tânăr, adolescent, puber
doar bătrân şi tânăr sunt antonime. [CRISTEA]
Antonimia nu poate fi atribuită sensurilor. Ea este o relaţie lexicală între cuvinte. Lucrul devine evident dacă considerăm synset-uri ale unor cuvinte ce posedă antonime:
{gras, corpolent} faţă de {slab, subţiratic}
Dacă gras slab şi corpolent subţiratic sunt antonime, opunerea lui gras lui subţiratic ori a lui corpolent lui slab nu sunt în aceeaşi măsură reuşite.
5.4. Relaţiile între sensuri în WordNet
Hiponimia - hipernimia. Spunem că un concept c1 este un hiponim al lui c2 sau că c2 este un hipernim al lui c1 dacă c1 este un concept mai particular decât c2, sau dacă c2 este un concept mai general decât c1.
Relaţiile de hiponimie/hipernimie sunt relaţii semantice doarece ele au loc între sensuri ale cuvintelor şi nu între cuvinte, deci între synset-uri şi nu elemente ale acestora. Deoarece conceptele sunt identificate prin cuvinte, va trebui să ne ferim să transferăm relaţia de hiponimie/hipernimie asupra cuvintelor în defavoarea conceptelor omonime. Verificarea acestor relaţii poate fi făcută prin includerea cuvintelor w1 şi w2 care definesc conceptele c1 şi c2 aflate în această relaţie în exprimări de tipul “w1 este un w2” sau “w1 este un tip de w2” (ISA în engleză). De exemplu pentru că atât un cal cât şi un câine sunt animale, cal şi câine sunt hiponime ale lui mamifer care este un hiponim al lui animal care este un hiponim al lui vietate.
Relaţia de hiponimie/hipernimie este tranzitivă (adică dacă c1 este un hiponim al lui c2, iar c2 este un hiponim al lui c3, atunci c1 este un hiponim al lui c3) şi asimetrică (adică dacă c1 este un hiponim al lui c2, atunci c2 nu este un hiponim al lui c1).
Relaţia de hiponimie se foloseşe în reprezentarea cunoştinţelor pe baza moştenirii proprietăţilor. Într-adevăr un hiponim moşteneşte toate trăsăturile unui hipernim, în acelaşi timp diferenţiindu-se de alte hiponime ale aceluiaşi hipernim prin anumite trăsături specifice numai lui.
Relaţia de hiponimie stă la baza organizării substantivelor în WordNet. Ea structurează conceptele (reprezentate ca mulţimi synset) ca un arbore. În această ierarhie de concepte există un cel mai general concept, care trebuie să fie entitatea semantică cea mai generală, cea mai săracă în proprietăţi, în aşa fel încât orice altceva să fie, prin tranzitivitate, şi acel ceva. În acest arbore, cu cât coborâm mai mult în ierarhie conceptele devin tot mai particulare, tot mai bogate în proprietăţi. Astfel de ierarhii au avantajul reprezentării economice a proprietăţilor ce sunt comune unei clase întregi de entităţi şi care se grupează către rădăcina arborelui. [CRISTEA]
Meronimia – holonimia. Meronimia este relaţia parte-întreg (HasAsPart în engleză). Astfel spunem că un concept c1 este un meronim al unui concept c2 dacă putem accepta exprimări de genul: “c1 este o parte a lui c2” sau “c2 are ca parte pe c1”. Invers, vom spune că c2 este un holonim al lui c1. De exemplu, pentru că mâna este parte a corpului omenesc, concepul mînă este un meronim al conceptului corp omenesc. Ca şi relaţia de hipo/hipernimie, relaţia de mero/holonimie este tranzitivă şi asimetrică. De data aceasta tranzitivitatea trebuie privită cu o oarecare rezervă, pentru că, de exemplu, deşi filamentul de Wolfram este o parte a becului, iar acesta este o parte a casei noastre, să spunem că filamentul de Wolfram este o parte a casei e bizar.
Referinte
-
Hristea, Fl., "Introducere in procesarea limbajului natural cu aplicatii in Prolog", Editura Universitatii din Bucuresti, 2000.
-
Dan Cristea - "Curs de Lingvistică computaţională", Facultatea de Informatică, Universitatea "Alexandru Ioan Cuza" Iaşi, 2003
Dostları ilə paylaş: |