Ce este 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 este un termen general folosit pentru un numar de aplicatii ale modelelor si procedurilor matematice in studiul lingvistic. Ca disciplina, lingvistica matematica 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. Au fost examinate, spre exemplu, tipurile de opozitii lingvistice in corelatie cu tipurile de multimi (finite sau infinite), problema de interes in toate compartimentele limbii, dar cu precadere utila in studiul lexicului. Modelele matematice ale limbii (asupra carora vom reveni), sunt analitice si generative si reprezinta constructii matematice care retin unele aspecte relationale ale fenomenelor lingvistice. Rolul lor este de a sistematiza unele notiuni si relatii deja cunoscute, precum si de a descoperi relatii si moduri noi de organizare, care nu au putut fi puse in evidenta prin alte mijloace.

Noua disciplina s-a constituit relativ recent (in jurul anului 1960), perioada al carei vis lingvistic a fost reprezentat in mare masura de traducerea automata, fiind bine reprezentata de oamenii de stiinta rusi, dar si de alte nationalitati. Ea apare ca o disciplina de intersectie, care este privita ca reprezentand atat lingvistica, cat si matematica.

In directia fundamentarii unei discipline autonome, cu baze teoretice, dar si cu o larga aplicabilitate practica, se remarca si scoala romaneasca, prin aportul profesorului Solomon Marcus si al colaboratorilor sai.

Din punct de vedere stiintific, dezvoltarea lingvisticii matematice a fost favorizata, pe de o parte, de lingvistica structurala si de utilizarea metodei axiomatic-deductive iar, pe de alta parte, de importanta dobandita in matematica de teoria multimilor. Astfel, descrierea matematica a notiunilor de baza ale lingvisticii s-a facut cu precadere prin aplicarea teoriei multimilor. In unele cazuri se apeleaza la teoria algebrelor lui Boole si la teoria codurilor. Alte aplicatii ale algebrei (in special teoria semigrupurilor libere) in lingvistica descriptiva sunt corelate cu studiul distributiei si al contextului. Un aspect important al lingvisticii matematice este legat de statistica (teoria probabilitatilor in general, lanturi Markov, legea lui Zipf) si a condus la conceperea unei noi metode de cercetare a vocabularului sau lexicului, numita statistica lexicala.

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 (spre exemplu, parsing statistic sau analiza sintactica de natura stocastica) s.a.

Scopul lingvisticii computationale este, asadar, acela de a dezvolta o teorie computationala a limbajului folosind elemente ale informaticii (algoritmi, structuri de date etc.). Se pot desprinde cel putin doua motivatii pentru dezvoltarea modelelor computationale, cea de natura stiintifica si cea de natura practica sau tehnologica.

Motivatia stiintifica urmareste sa obtina o intelegere mai buna asupra modului cum functioneaza limbajul. Este un fapt bine cunoscut acela ca nici una dintre celelalte discipline traditionale nu dispune de mijloacele necesare pentru a trata aceasta problema in totalitate. O teorie completa, obtinuta prin combinarea tuturor ipotezelor dezvoltate de catre diverse discipline ar fi mult prea complexa pentru a putea fi studiata exclusiv cu metodele traditionale. Se incearca, de aceea, modelarea algoritmica a acestor teorii complexe, pentru ca ele sa poata fi programate si apoi testate pe calculator. Se crede ca, prin intermediul calculatorului, se va putea obtine o mai completa si mai profunda intelegere asupra modului cum actioneaza limbajul uman. Modelele computationale pot oferi idei deosebit de utile referitoare la comportamentul lingvistic (si deci uman) atat in prezent, cat si in viitor, idei care pot fi exploatate de catre psiholingvisti. In acelasi timp, nu putem sa nu remarcam faptul ca limbile naturale au fost adesea studiate in special cu scopul de a fi predate altora, fiind ignorate principiile generale care stau la baza tuturor limbilor naturale. Intre lingvisti nu exista inca un consens cu privire la multe dintre faptele, notiunile si conceptele lingvistice de baza. Toate acestea au facut sa fie resimtita si mai mult necesitatea existentei unor modele computationale generale referitoare la limbajul natural. Pe de alta parte, motivatia practica sau de natura tehnologica enunta ideea ca, datorita capacitatilor sale, utilizarea limbajului natural va revolutiona modul de folosire a calculatoarelor. In acest context, reamintim faptul ca prin procesarea limbajului natural se intelege acea tehnologie care creeaza si implementeaza modalitati de a efectua diferite sarcini referitoare la limbajul natural. Spre exemplu, aceasta tehnologie poate fi utilizata pentru a construi interfete (bazate pe limbajul natural) cu baze de date, pentru a realiza traducerea automata (in special in domenii tehnice restranse) s.a.

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. Ingineria limbajului natural se ocupa de implementarea unor sisteme de mare anvergura.

Aplicatiile procesarii limbajului natural se inscriu in trei mari categorii:

Niveluri ale procesarii limbajului natural

Structura oricarei limbi naturale (umane) se imparte in cinci niveluri diferite: fonologie, morfologie, sintaxa, semantica si pragmatica. Aceste niveluri coincid cu formele de cunostinte relevante si, in acelasi timp, necesare pentru intelegerea limbajului natural. Dintre toate acestea, lucrarea de fata se concentreaza asupra nivelului sintactic si a celui semantic, precum si a legaturii existente intre acestea. Inainte de a trece la studiul sintaxei si al semanticii computationale, ne propunem o scurta incursiune la toate nivelurile analizei limbajului.

Fonologia se ocupa cu studiul fonemelor (ca entitati abstracte, care se realizeaza printr-o infinitate de sunete). Cunostintele fonetice si fonologice sunt cruciale pentru sistemele bazate pe vorbire (in procesarea vorbirii).

Morfologia, in gramatica traditionala, este o stiinta a cuvantului urmarit sub aspect gramatical, adica sub aspectul variatiei formei sale (al flexiunii) pentru exprimarea diverselor categorii gramaticale, prin opozitie cu sintaxa, care studiaza combinarea cuvintelor si functiile pe care acestea le iau in cadrul combinatiilor. Odata cu aparitia structuralismului, interesul cercetatorilor s-a deplasat de la cuvant la morfem, ca unitate minimala de expresie purtatoare de semnificatie lexicala sau gramaticala . Efectul acestei deplasari il constituie estomparea granitei prea rigide dintre morfologie si sintaxa, caci ambele discipline studiaza combinatii de morfeme si comporta tipuri asemanatoare de relatii, avand ca efect aparitia morfosintaxei. In masura in care unii structuralisti (L. Bloomfield, J. Vendryes) pastreaza autonomia celor doua discipline, morfologia studiaza regulile care guverneaza structura interna a cuvintelor atat in cadrul flexiunii, cat si al formarii cuvintelor, incluzand o morfologie flexionara si una derivationala.

Granita dintre flexiune (care furnizeaza diferitele forme ale unui cuvant) si derivare (care produce cuvinte noi pornind de la cele existente) este uneori neclara. O diferenta esentiala o constituie aceea ca numai derivarea poate introduce o schimbare de sens (prin introducerea de cuvinte noi). O alta deosebire consta in faptul ca formele derivative ar putea sa nu existe, in timp ce formele flexionare nu lipsesc aproape niciodata.

In limba engleza, pentru care s-au dezvoltat aproape toate teoriile computationale, flexiunea este mult mai simpla decat derivarea (prin contrast, de pilda, cu limba latina, dar si cu unele limbi ca rusa, japoneza sau finlandeza). Simplitatea flexiunii in limba engleza face ca majoritatea cercetatorilor din domeniul lingvisticii computationale sa neglijeze morfologia. Pentru procesarea eficienta a altor limbi naturale, inclusiv a limbii romane, este insa necesara dezvoltarea unor modele computationale adecvate ale morfologiei fiecarei limbi. In cazul limbii romane, un model al morfologiei ei flexionare este creat si implementat la Centrul de Studii Avansate al Academiei Romane sub coordonarea lui D. Tufis.

Indiferent daca avem de-a face cu morfologia flexionara sau cu cea derivationala, putem spune ca, din punct de vedere computational, nivelul morfologic al limbii se ocupa de modul in care sunt alcatuite cuvintele pornindu-se de la unitatile de baza numite morfeme.

Sintaxa reprezinta, intr-o conceptie asupra organizarii stratificate, pe niveluri, a limbii, acel nivel a carui organizare se desfasoara intre cuvant, ca unitate minimala si combinatiile acestuia: propozitii/fraze, ca unitati maximale. Cunostintele sintactice se refera la modul in care pot fi alaturate cuvintele pentru a forma propozitii corecte si determina care este rolul structural al fiecarui cuvant in cadrul propozitiei, precum si ce grupuri sintactice intra in componenta altor grupuri sintactice. Prin urmare, nivelul sintactic determina rolul structural al fiecarui cuvant in interiorul unei propozitii, precum si relatiile dintre propozitii in cadrul frazei.

Sintaxa (constructia propozitiilor) reprezinta nivelul cel mai de jos la care limbajul natural (uman) este, in mod constant, creator. Vorbitorii unei limbi creeaza mult mai rar unitati fonice si lexicale. In schimb, sunt concepute in mod constant noi propozitii si fraze. Acest tip de creativitate deosebeste sintaxa atat de fonologie, cat si de morfologie. (In timp ce putem alcatui o lista cu fonemele unei limbi, cu unitatile ei lexicale si cu regulile morfologice, nu exista nici o modalitate de a intocmi o lista similara a structurilor de propozitie admisibile intr-o limba data. Atata timp cat nu este impusa o limita asupra lungimii propozitiilor, se poate demonstra ca numarul structurilor de propozitie admisibile este infinit.)

Noam Chomsky (1957) este primul care evidentiaza aceasta idee. El introduce gramatica generativa, care descrie propozitiile furnizand reguli de constructie a lor. Astfel de reguli vor deveni standard nu numai in lingvistica, ci si in informatica, cu precadere in proiectarea compilatoarelor. Ceea ce este interesant si, in egala masura, crucial, in cadrul acestei teorii, este faptul ca o multime finita de reguli poate descrie un numar infinit de propozitii.

Procesul de recunoastere a structurii unei propozitii de catre un calculator se numeste parsing. Aceasta este analiza sintactica computationala. In esenta, vom spune ca, pentru a analiza sintactic o propozitie, un calculator trebuie sa o imperecheze pe aceasta cu regulile care o genereaza. Acest proces de imperechere poate fi realizat in maniera top-down (de sus in jos) sau bottom-up (de jos in sus) precum si prin unele combinatii ale lor care si-au dovedit eficienta.

Analiza sintactica de acest tip a propozitiilor englezesti a fost studiata pe larg si este practic considerata o problema incheiata. Astazi se poarta discutii exclusiv asupra modului cel mai eficient in care se poate realiza procesul de parsing in cazul limbii engleze si nu referitor la faptul ca acest lucru este sau nu posibil. Analiza sintactica computationala referitoare la alte limbi nu a fost investigata la fel de riguros si ea ramane, in multe cazuri, o problema deschisa. Cu atat mai mult cu cat majoritatea tehnicilor de parsing existente se bazeaza pe ordinea fixata a cuvintelor si nu lucreaza la fel de eficient pentru limbile in care ordinea cuvintelor este extrem de variabila, cum ar fi latina, rusa sau finlandeza.

Semantica este o ramura a lingvisticii, dar si a altor stiinte (filozofie, logica, psihologie) al carei obiect de studiu este sensul , unitate greu de abordat dintr-o perspectiva unica si unitara. Ca disciplina lingvistica, semantica este ultima creata (in sec. al XIX-lea). In functie de diversele aspecte ale sensului luate in consideratie, se delimiteaza semantica lingvistica si semantica apartinand altor stiinte, chiar daca interferentele dintre diferitele tipuri de semantica sunt curente.

Retinem, inca de la inceput, faptul ca nivelul semantic se refera la sensul cuvintelor si al propozitiilor, precum si la modul de combinare a semnificatiilor cuvintelor pentru a forma semnificatia unei intregi propozitii. La acest nivel, semantica computationala face un studiu al sensului independent de context. Cu alte cuvinte, intereseaza sensul pe care o propozitie il are fara legatura cu contextul in care ea a fost utilizata.

Pragmatica se ocupa de utilizarea limbii in context. Astfel, pragmatica este o disciplina al carei obiect il constituie limba, privita nu ca sistem de semne, ci ca actiune si interactiune comunicativa. Pragmatica examineaza, cu precadere, efectele diverselor componente ale contextului asupra producerii si receptarii enunturilor, atat sub aspectul structurii, cat si al semnificatiei acestora. In procesarea limbajului natural nivelul pragmatic trateaza folosirea propozitiilor in diverse situatii (contexte), precum si modul in care contextul influenteaza interpretarea unei propozitii.

Pragmatica a aparut ca o reactie atat fata de lingvistica chomskyana, cat si fata de pozitivismul logic, iar domeniul ei de investigatie a cunoscut ulterior o continua extindere si diversificare.

Intre semantica si pragmatica exista o relatie de complementaritate, ultima atribuind un rol esential contextului. Pragmatica are o problematica proprie , care include aspecte referitoare la: organizarea pragmatica a discursului (acte de vorbire, forme ale implicitului conversational - presupozitii, implicaturi etc.), principiile si strategiile comunicative, analiza conversatiei. Un asemenea tip de analiza este ingreunat de diversi factori, cum ar fi relatia de referinta, extrem de frecventa in fragmentele de discurs apartinand limbajului natural. Astfel, se stie ca, intr-o limba data, un enunt comporta o referinta la o anumita stare de lucruri sau la o anumita persoana. Relatia de referinta, ca relatie particulara dintre limba si lume, nu se poate realiza decat prin context. Contextul localizeaza in timp si spatiu, cuantifica, determina gradul de generalitate al unui cuvant.

Referinta poate interveni in cadrul aceleiasi propozitii (Ion a afirmat ca el nu crede asta) sau cu privire la propozitii diferite, in virtutea diverselor proceduri de anaforizare existente. In propozitia 
                                                                               Ion crede ca a gasit palaria lui. 
pronumele lui ar putea sa se refere la Ion (care intervine in aceeasi propozitie) sau la un alt posesor al palariei, o cu totul alta persoana, care a fost mentionata intr-o propozitie anterioara. Numai contextul poate ajuta in dezambiguizare.

Foarte delicata este elucidarea referintelor si a coreferintelor realizate prin intermediul pronumelor. Tocmai de aceea, la nivelul discursului, care se ocupa de modul in care propozitiile imediat premergatoare afecteaza interpretarea propozitiei urmatoare, un aspect important se refera la interpretarea pronumelor si la aspectul temporal al informatiei vehiculate.

O alta forma de cunoastere relevanta pentru intelegerea si prelucrarea limbajului natural o constituie cunoasterea universului, prin care intelegem cantitatea vasta de cunostinte necesare in vederea intelegerii textelor. Acestea includ cunostintele generale despre structura lumii inconjuratoare la care face referire vorbitorul pentru ca, spre exemplu, sa poata face fata conversatiei, precum si informatiile pe care trebuie sa le aiba un vorbitor despre partenerii sai de discutie.

Actualmente, in domeniul procesarii limbajului natural, exista trei mari directii reprezentate de sintaxa computationala, semantica computationala si generarea limbajului (care studiaza modul in care masina genereaza text coerent).

Un curs introductiv in domeniul procesarii limbajului natural, in limba romana, este:

Hristea, Fl., "Introducere in procesarea limbajului natural cu aplicatii in Prolog", Editura Universitatii din Bucuresti, 2000.