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
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
for (String word : sent) {
CoreLabel l = new CoreLabel();
l.setWord(word);
rawWords.add(l);
}
Tree parse = lp.apply(rawWords);
TokenizerFactory
PTBTokenizer.factory(new CoreLabelTokenFactory(), "");
List
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
for (String word : sent) {
CoreLabel l = new CoreLabel();
l.setWord(word);
rawWords.add(l);
}
Tree parse = lp.apply(rawWords);
TokenizerFactory
PTBTokenizer.factory(new CoreLabelTokenFactory(), "");
List
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
for (String word : sent) {
CoreLabel l = new CoreLabel();
l.setWord(word);
rawWords.add(l);
}
Tree parse = lp.apply(rawWords);
TokenizerFactory
PTBTokenizer.factory(new CoreLabelTokenFactory(), "");
List
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