Procesarea și Înțelegerea Limbajului Natural

Download Report

Transcript Procesarea și Înțelegerea Limbajului Natural

Slide 1

Interacțiunea om-calculator
Procesarea Limbajului Natural

© 2015 Mihaela Colhon


Slide 2

Natural Language Processing (NLP)
Natural Language Processing is a state-of-art technology that is in
huge expansion these days. The research in this field started 50
years ago, encouraged by the large commercial expansion of
developed technologies which ask for quality, still insufficient,
and for huge processing power.

© 2015 Mihaela Colhon


Slide 3

Oamenii şi-au dorit dintotdeauna să construiască maşini „inteligente” care
să le uşureze viaţa şi să comunice cu ele eventual prin limbaj natural.
În prezent calculatoarele (şi roboţii) sunt considerate cele mai „inteligente”
maşini, dar ele sunt departe de a fi atât de inteligente precum şi-au
dorit oamenii.
În încercarea de a crea inteligenţă artificială informaticienii au „programat”
calculatoarele să imite oamenii: le-au „dotat” cu cunoştinte dintr-un
domeniu anume şi cu un algoritm pentru o funcţie asociată, sperând ca
rezultatele calculatorului să egaleze sau să depăşească rezultatele
oamenilor în acel domeniu.
O tendinţă actuală în informatică este de a utiliza calculatorul pentru a
permite realizarea dialogului dintre om şi calculator în maniera cea mai
naturală - limbajul. De această problemă se ocupă Lingvistica
computaţională, ramură a Inteligenţei artificiale.

© 2015 Mihaela Colhon


Slide 4

Scop
Sistemele NLP au fost realizate pentru a extrage
informații din baze de date, pentru a controla roboții,
pentru a interacționa într-un mod cât mai natural cu
utilizatorii, mai precis, pentru a interacționa într-un
mod cât mai “prietenos” cu utilizatorul in vederea
rezolvării anumitor sarcini sau probleme.
Limbajul natural asigură cea mai “imediată” metodă de
interacțiune om-mașină, prezentând mai multe
avantaje, unele dintre ele bazându-se pe vocabularul
disponibil imediat, care nu implică o pregătire
prealabilă.
© 2015 Mihaela Colhon


Slide 5

Limbajul
Limbajul constituie fundamentul comunicării între oameni și din
acest motiv, limba maternă nu trebuie să constituie un
obstacol în calea accesului la cunoaşterea multiculturală
umană disponibilă în ciberspaţiu [Tufiș 2001] .
Din punct de vedere stiintific, limbajul natural (uman) constituie
obiectul de cercetare a numeroase discipline și, în primul
rând, al lingvisticii sau "științei limbii". Același obiect de
investigație interesează însă și filozofia, psiholingvistica,
lingvistica matematica, lingvistica computațională, prelucrarea
limbajului natural.
[Tufiș 2001] Tufiș, D.: „Promovarea limbii române în SI – SC”, în Florin Gh. Filip
(coordonator), Societatea Informațională – Societatea Cunoașterii:
Concepte, soluții și strategii pentru România, pp. 131-142, Academia
Română, Ed. Expert, Bucureşti.


Slide 6

Lingvistică
Cerintele pe care teoria lingvistica trebuie sa le indeplineasca pot fi
rezumate astfel:
Teoria lingvistica trebuie sa sublinieze descrieri relativ complete care
să reflecte structura limbii. Oamenii se diferentiaza de computere
prin modul liber de a combina cunostintele faptice cu cele ale
capacitatilor mentale și ale cunostințele acumulate. De asemenea
oamenii isi dezvolta permanent modul de a comunica si astfel
încât limba vorbita este intr-o permanenta transformare.
Putem concluziona ca nu putem avea o corespondenta
imediata/directa între teorie și sistemele automate de prelucrare
a limbajului natural.
© 2015 Mihaela Colhon


Slide 7

Prelucrarea limbajului natural
Prelucrarea limbajului natural cuprinde atât înţelegerea
cât şi generarea de mesaje în limbaj natural.
Deoarece ințelegerea implică identificarea structurii
sintactice a mesajelor, obținem că prelucrarea
limbajului natural nu se poate face fără mecanisme
puternice de reprezentare și procesare.


Slide 8

Informatizarea limbilor naturale
În ultimii ani asistăm la o explozie de informaţii pe Internet, aceasta
generând nevoia de a accede la ele prin mijloace inteligente
utilizând limba naturală proprie, indiferent de limba de
depozitare a informaţiilor [Cristea & Tufis, 2002].
Păstrarea identității limbilor și culturilor naționale în acest cadrul
globalizant al internetului readuce în actualitate avertismentul
lui Alain Danzin (1992): „În era electronica, este esential pentru
supravietuirea unei limbi ca ea sa fie folosita în sistemele de
informare electronica.”
Societatea contemporană are acum mijloace pentru a împiedica
dispariţia limbilor mici, pentru a încetini "dizolvarea" lor în
limbile mari, ori pentru a stopa deteriorarea lor prin importuri
abuzive [Cristea & Tufis, 2002].
[Cristea & Tufis, 2002] Cristea D., Tufiş D. :- Resurse lingvistice româneşti şi tehnologii informatice aplicate limbii române, în
Ichim O. și Olariu F.T. (eds.): Identitatea limbii și literaturii române în perspectiva globalizării, Academia Română, Iași,
2002.


Slide 9

Informatizarea limbilor naturale
Surse lingvistice
Sursa lingvistică – orice document
produs de lingvistica tradițională
sau de disciplinele conexe (cărți,
dicționare, atlase, glosare de
termeni, etc.)


Slide 10

Informatizarea limbilor naturale
Resurse ligvistice
Informatizarea limbilor naturale se referă într-o măsură
covârşitoare la crearea de reprezentări electronice ale
surselor lingvistice – resurse lingvistice, necesare
procesului de învăţare automată al programelor
procesatoare de texte [Tufiș 2001].

[Tufiș 2001] Tufiș, D.: „Promovarea limbii române în SI – SC”, în Florin Gh. Filip
(coordonator), Societatea Informațională – Societatea Cunoașterii:
Concepte, soluții și strategii pentru România, pp. 131-142, Academia
Română, Ed. Expert, Bucureşti.


Slide 11

Informatizarea limbilor naturale
Resurse lingvistice
Resurse lingvistice sunt colecții mari de date, cunoștinte lingvistice,
descrise într-un format exact care, într-un context multilingv,
trebuie să fie compatibil din punctul de vedere al formalizării cu
descrierile
limbilor
prezente
în
respectivul
context
comunicaţional.


Slide 12

Informatizarea limbii române

Promovarea limbii române în ciberspațiu
presupune informatizarea limbii române
- problemă de interes naţional nu numai
pentru societatea academică ci şi pentru
companiile de software ce implică
utilizarea curentă a limbii române în
tehnologiile şi serviciile informatice [Tufiș
2001].
[Tufiș 2001] Tufiș, D.: „Promovarea limbii române în SI – SC”, în Florin Gh. Filip
(coordonator), Societatea Informațională – Societatea Cunoașterii: Concepte, soluții
și strategii pentru România, pp. 131-142, Academia Română, Ed. Expert, Bucureşti.


Slide 13

Informatizarea limbii române
Crearea de aplicațiilor care utilizează limba română ca
limba de interacțiune cu calculatorul
Se intenționează:
- dezvoltarea de sisteme electronice de clasificare automată
a documentelor,
- sisteme de interogare a informației de pe WEB,
- sisteme de rezumare automată a documentelor editate în
limba română,
- traducere automată din și în limba română a limbajului
scris și vorbit, etc.
Toate aceste sisteme pot fi create prin tehnici de învățare
automată. Acestea trebuie înzestrate cu seturi mari de
cunoștințe – resurse lingvistice.


Slide 14

Cum computerele nu posedă mentalitatea umană, prin
definiţie nu pot înţelege. Bineînţeles, Procesarea
Limbajului Natural (Natural Language Processing –
NLP) este o problemă generală şi pentru a fi mai
specifici, o vom separa în categorii conform nivelului
crescut sau complexităţii acestei procesări:
– Morfologie şi procesare morfologică
– Sintaxă şi procesarea sintactică
– Semantică şi procesarea semantica
© 2015 Mihaela Colhon


Slide 15

Analiza morfologică
O analiza morfologica consta în etichetări ale parților de vorbire,
și a altor caracteristici morfologice precum și stabilirea lemei
(forma de bază a cuvântului) care corespunde acestei
etichetari.
Formele de baza ale cuvintelor nu conțin nicio derivatie
morfologica a cuvantului (precum gen, numar, timp, etc.) însă
sunt cruciale în anumite aplicații de NLP, ca de exemplu
sistemele de traducere.
Într-o limba specifică, forma unui cuvânt este în mod unic
identificata de lemma sa și informația morfo-sintactică.
Reciproca nu este întotdeauna adevarată: formei unui cuvant
îi pot corespunde mai multe interpretări morfo-sintactice care
sunt diferențiate de context (dezambiguizarea sensurilor).
© 2015 Mihaela Colhon


Slide 16

Parte de

Atribute morfologice

vorbire
Verb

Timp, persoana, numar, gen

Substantinv

Numar, gen, tip (comun sau propriu)

Adjectiv

Numar, gen, grad (pozitiv, posesiv, interogativ, demonstrativ, nedefinit,

relativ)
Pronume

Tip (personal, posesiv, interogativ, demonstrativ, nedefinit, relativ), gen,
numar, caz

Determinant

Numar, gen, tip (articulat, posesiv, demonstrativ, interogativ)

Prepozitie

Tip (loc, timp, mod)

Adverb

Tip (loc, timp, modalitate)

Numeral

Tip (cardinal, ordinal), numar

Conjunctie

© 2015
Mihaela Colhon
Tip (coordonatoare sau
subordonatoare)


Slide 17

PENN Treebank +
MULTEXT-East tagsets

© 2015 Mihaela Colhon


Slide 18

Exemplu de marcatori pentru
informații morfo-sintactice

© 2015 Mihaela Colhon


Slide 19

Part of Speech Tagging
cu Stanford Parser

© 2015 Mihaela Colhon


Slide 20

String[] sent = sentence.split(" ");
List rawWords = new ArrayList();
for (String word : sent) {
CoreLabel l = new CoreLabel();
l.setWord(word);
rawWords.add(l);
}
Tree parse = lp.apply(rawWords);
TokenizerFactory tokenizerFactory =
PTBTokenizer.factory(new CoreLabelTokenFactory(), "");
List rawWords2 = tokenizerFactory.getTokenizer(new
StringReader(sentenceTxtArea.getText())).tokenize();
parse = lp.apply(rawWords2);
TreebankLanguagePack tlp = new PennTreebankLanguagePack();
GrammaticalStructureFactory gsf = tlp.grammaticalStructureFactory();
GrammaticalStructure gs = gsf.newGrammaticalStructure(parse);
tp = new TreePrint("wordsAndTags");
Writer result = new StringWriter();
PrintWriter pw = new PrintWriter(result);
tp.printTree(parse, pw);
© 2015 Mihaela Colhon


Slide 21

Corpus
În lingvistica computațională, un corpus este o
colecție structurată de texte, stocate electronic
și reprezentate într-un anumit formalism
pentru a putea fi ușor “citite” de aplicațiile
specializate în extragerea de informații din
aceste colecții.
Un corpus poate contine texte într-o singură
limba - corpus monolingv, sau texte în mai
multe limbi - corpus multilingv. Corpusurile
multilingve în care textele sunt grupate în baza
existenței unor echivalenți de traducere se
numesc corpusuri paralele.
© 2015 Mihaela Colhon


Slide 22

Corpus
Corpusurile reprezintă baza de cunoștințe a oricărei aplicații
din domeniul NLP. Analizarea si procesarea cat mai multor
tipuri de corpusuri este subiectul multor lucrări din
Lingvistică Computațională, Recunoașterea Vorbirii (unde
corpusurile sunt adesea folosite pentru a crea modele
Markov ascunse).
În scopul de a face corpusurile utile pentru cercetarea
lingvistica, acestea sunt adeseori supuse unui proces numit
adnotare. Un exemplu de adnotare a unui corpus este
identificarea partii de vorbire pentru fiecare cuvant din
corpus, unde informatia despre partea de vorbire (verb,
substantiv, adjectiv, etc.) este atașată fiecărui cuvânt sub
forma unei etichete corespunzătoare.
© 2015 Mihaela Colhon


Slide 23

Corpus. Exemple de colocații

© 2015 Mihaela Colhon


Slide 24

Corpus. Utilizări
Probabil, cea mai importantă tendință în lingvistică este utilizarea
masivă de corpusuri mari de texte în limbaj natural. În orice
sistem NLP, corpusurile sunt adeseori utilizate pentru a furniza
date empirice si statistice.
În mod obișnuit, aplicațiile de NLP care utilizează corpusurile ca o
resursă lingvistică de bază sunt programele pentru
dezambiguizarea sensurilor (în engleza Word Sense
Disambiguation - WSD) și toate tipurile de parsere.

© 2015 Mihaela Colhon


Slide 25

Words ...
In any syntactic structure we can identify two major categories of words:
• Content words which identify objects, entities, properties, relationships or
events and syntactically are represented by nouns, adjectives, verbs and
adverbs
• Functional words that help putting words together in a correct structural
sentence form. Also, the functional words can tell how words are related to
each other. The functional words can be determiners, quantifier, prepositions
or connectives.

© 2015 Mihaela Colhon


Slide 26

Analize sintactice
Structura unei propozitii codifică relațiile de natura
sintactica care exista între cuvintele acelei propozitii.
Indica de asemenea cum cuvintele sunt grupate in
fraze sintactice sau constituenți care joaca un rol
functional și central in intelesul propozitiei.

© 2015 Mihaela Colhon


Slide 27

Parsarea unui text cu Stanford Parser

© 2015 Mihaela Colhon


Slide 28

String[] sent = sentence.split(" ");
List rawWords = new ArrayList();
for (String word : sent) {
CoreLabel l = new CoreLabel();
l.setWord(word);
rawWords.add(l);
}
Tree parse = lp.apply(rawWords);
TokenizerFactory tokenizerFactory =
PTBTokenizer.factory(new CoreLabelTokenFactory(), "");
List rawWords2 = tokenizerFactory.getTokenizer(new
StringReader(sentenceTxtArea.getText())).tokenize();
parse = lp.apply(rawWords2);
TreebankLanguagePack tlp = new PennTreebankLanguagePack();
GrammaticalStructureFactory gsf =
tlp.grammaticalStructureFactory();
GrammaticalStructure gs = gsf.newGrammaticalStructure(parse);
tp = new TreePrint("penn");
Writer result = new StringWriter();
PrintWriter pw = new PrintWriter(result);
tp.printTree(parse, pw);
© 2015 Mihaela Colhon


Slide 29

Abordări sintactice ale
Procesării Limbajului Natural
Unde sunt utile aceste abordări?
– Traducere sau rezumare automată
– Aplicații de tip întrebare-răspuns

– Dezambiguizare
– Rezoluția anaforei

– Arbori de dependență sintactică
Alexandra Cristea, Universitatea Alexandru Ioan Cuza,
Facultatea de Informatică, Iași, Iulie, 2013


Slide 30

Gramatici de Dependență
In ciuda faptului ca exista nenumarate teorii lingvistice,
care conduc la diferite modalitati de a vedea structura
propozitiilor, multi lingvisti sunt de acord cu faptul ca
scheletul de baza a structurii unei propozitii este
construit din relatiile existente intre cuvinte (Hristea si
Colhon, 2012).
Aceste relatii se refera atat la functiile gramaticale
(subiect, predicat, etc.) cat si la legaturile care se
grupeaza cuvintele in unitati mai mari cum ar fi frazele
sau chiar propozitiile. Abordarea cu gramatici de
dependență ia în considerare faptul ca fiecare cuvant
depinde de un alt cuvant care are legatura cu restul
propozitiei. Spre deosebire de gramaticile generative,
gramaticile de dependență nu sunt bazate pe notiunea
de constituent, dar sunt bazate pe relatiile directe,
gramaticale care exista între cuvinte.
© 2015 Mihaela Colhon


Slide 31

Gramatici de Dependență
Gramaticile de dependență sunt o clasă de teorii sintactice
dezvoltate de Lucien Tesnière (1959). În aceasta teorie,
structura sintactica este determinată de relatiile gramaticale
ce exista între un cuvânt si dependenții lui.

© 2015 Mihaela Colhon


Slide 32

Gramatici de Dependență
Relatia dintre cuvântul dependent și cel de care
depinde, sta la baza gramaticii de
dependenţe. În acest caz, analiza sintactica a
propozitiei trebuie să identifice relatiile de
dependență (dintre cuvantul dependent si cel
de care depinde) care exista intre cuvintele
din propozitie.
Fiecare cuvant trebuie sa depinda de exact un
singur cuvânt, cu exceptia predicatului, care
nu depinde de nici un alt cuvant. Unele
cuvinte pot depinde de un acelasi cuvânt.
© 2015 Mihaela Colhon


Slide 33

Axiomele lui Robinson
In anul 1970, Robinson a formulat patru axiome, care considera
că guvernează structurile de reprezentare cu dependențe:
- o singură radacină: într-o propoziție, doar un singur
element este independent;
- legaturi complete: toate elementele dintr-o propozitie
depind direct de un alt element;
- unicitate in dependenta: fiecare element depinde de exact
un singur alt element (exceptie face verbul care nu depinde
de niciun alt cuvant din propozitie;
- constrangere de proiecție: daca A depinde direct de B, si
un anumit element C intervine intre ele (in ordinea liniara a
sirului de cuvinte din propozitie), atunci C depinde direct de
A sau B sau de alt element care intervine.
© 2015 Mihaela Colhon


Slide 34

Scenarii de dependență
Pentru relația de atribut substantival
I

Tifsr 1:Ncms-n 2:Spsa Ncms-n Crssp Ncms-n („un vârtej de praf şi nisip”)

II

1: Mcmp-l 2: Spsa Ncmp-n („trei dintre copii”)

III

1:Pd3ms-- 2: Spsa Pp1-s-- („acela dintre noi”)

IV

1:Ncmsry 2:Ncmsoy („adîncul cerului”)

V

1:Ncmsry 2:Mc-pl („ora cincisprezece”)

VI

1:Ncfsoy 2:Afpfson Spsa Np („disputei teritoriale cu Rusia”)

VII

Di3f 1:Ncfp-n Afpfp-n 2:Rc Ncfsry Afpfsrn („alte erori genetice ca deficiența

endocrină”)
Alexandra Cristea, Universitatea Alexandru Ioan Cuza,
Facultatea de Informatică, Iași, Iulie, 2013


Slide 35

Pentru relația de atribut adjectival
I

2:Mcfp-l 1:Ncfp-n („două săptămâni”)

II

1:Ncmsry 2:Afpms-n („personajul principal”)

III

2:Di3msr- 1:Ncms-n („vreun moment”)

IV

Tifsr 1:Ncfsrn 2:Rc Pd3fsr („o muncă ca asta”)

V

1:Pd3mso 2:Afpms-n („celui Austro-Ungar”)

VI

M 2:Spsa 1:Ncmp-n Spsa Ncms-n Afpms-n („20 de ani de măcel vizual”)

Alexandra Cristea, Universitatea Alexandru Ioan Cuza,
Facultatea de Informatică, Iași, Iulie, 2013


Slide 36

Pentru relația de determinare

I

2:Tifsr 1:Ncfsrn („o muzică”)

II

Ncfsry 2:Tdfsr 1:Afpfsrn („Femeia cea măruntă

III

2:Tsms 1:Pw3fso Ncms-n („al cărei autor” )

IV

2:Td-po 1:Mcmp-l Ncmp-n Afpmp-n („celor doi piloți americani” )

Alexandra Cristea, Universitatea Alexandru Ioan Cuza,
Facultatea de Informatică, Iași, Iulie, 2013


Slide 37

Dependency Parsing cu Stanford Parser

© 2015 Mihaela Colhon


Slide 38

String[] sent = sentence.split(" ");
List rawWords = new ArrayList();
for (String word : sent) {
CoreLabel l = new CoreLabel();
l.setWord(word);
rawWords.add(l);
}
Tree parse = lp.apply(rawWords);
TokenizerFactory tokenizerFactory =
PTBTokenizer.factory(new CoreLabelTokenFactory(), "");
List rawWords2 =
tokenizerFactory.getTokenizer(new
StringReader(sentenceTxtArea.getText())).tokenize();
parse = lp.apply(rawWords2);
TreebankLanguagePack tlp = new PennTreebankLanguagePack();
GrammaticalStructureFactory gsf = tlp.grammaticalStructureFactory();
GrammaticalStructure gs = gsf.newGrammaticalStructure(parse);
tp = new TreePrint("typedDependenciesCollapsed");
Writer result = new StringWriter();
PrintWriter pw = new PrintWriter(result);
tp.printTree(parse, pw);
© 2015 Mihaela Colhon


Slide 39

Analiza semantică vs.
Analiza sintactică
În timp ce orice construcție în care:
- substantivul frazei este urmat de un verb,
- acordul dintre subiect şi predicat,
- alte acorduri între cuvinte la nivel de gen, număr, etc.
reprezintă o frază corectă din punct de vedere sintactic
O frază corectă semantic trebuie să aibă alte proprietăți
care asigură faptul că toate componentele frazei
formează împreună o idee care are sens.
© 2015 Mihaela Colhon


Slide 40

Analiza semantică
Analiza semantica sau Înţelegerea limbajului natural
tratează majoritatea task-urilor complexe precum:
- găsirea sinonimelor,
- eliminarea ambiguităţii sensului cuvintelor,
- construirea sistemelor întrebare-răspuns,
- traducerea dintr-un limbaj natural în altul,
- popularea bazei de cunoştinţe.
Fundamental trebuie finalizate analizele morfologice și
sintactice înainte de a încerca să se rezolve orice
problemă de natură semantică ce vizează construcțiile
unui limbaj natural.
© 2015 Mihaela Colhon


Slide 41

Programului AntConc
http://www.laurenceanthony.net/antconc_index.html


Slide 42

FileView


Slide 43

Concordance


Slide 44

Left Concordance


Slide 45

Right Concordance


Slide 46

Concordance Plot


Slide 47

Clusters


Slide 48

Clusters Preferences


Slide 49

Clusters


Slide 50

Collocates


Slide 51

Word List


Slide 52

Keyword List


Slide 53

Keyword Preferences


Slide 54

Q&A

© 2015 Mihaela Colhon