Upload
normunds-gruzitis
View
595
Download
0
Embed Size (px)
Citation preview
Tekstu analīzeLU specseminārs Web Science
Normunds Grūzītis
15.11.2012.
Semantiskā analīze?• Valodas vienību nozīmes (LLVV)
– Vārda nozīme (paradigmatiskā analīze)
• Lexical semantics
– Teikuma nozīme (sintagmatiskā analīze)
• Lexical semantics, Frame semantics, Computational semantics
– Teksta nozīme (pragmatiskā analīze)
• Computational semantics, Discourse semantics, Anaphora resolution
• Automātiska semantiskā analīze– Formalizēti leksiksko un “pasaules” zināšanu avoti
– Sistemātiskas formālās (surface) pazīmes likumi
• manuāli / statistiski (data-driven)
– Formālisms
Valodas saprašana un ģenerēšana
isa(alien01,Foreigner),isa(boulder01,Bowlder),isa(drop01,Drop),isa(speed01,Velocity),isa(distance01,Distance),isa(height01,Height),isa(cliff01,Cliff),agent(drop01,alien01),object(drop01,boulder01),value(speed01,[0,*m/s]),speed(boulder01,speed01),...
equal(distance01,height01),distance(drop01,distance01),height(cliff01,height01).
• An alien drops a boulder.• The initial speed of the boulder is
0 m/s.• The boulder drops for 23 seconds.• The acceleration of the boulder is
7.9 m/s^2.• The distance of the drop equals
the height of the cliff.• What is the height of the cliff?
Computer Processable English:An alien measures the height of a cliff by dropping a boulder from rest and measuring the time it takes to hit the ground below. The boulder fell for 23 seconds on a planet with an acceleration of gravity of 7.9m/s2.Assuming constant acceleration and ignoring air resistance, how high was the cliff?
Unrestricted English: Boeing Language Understanding Engine:
Inte
rpre
tēša
naVerbalizēšana
Komunicēšana
ModelisTeksta semantika
Teikuma semantikaSintakse
Morfoloģija
Secināšana
Runa
patvaļīga / kontrolēta valodadeterministiska / varbūtiska analīze
Daudznozīmība visos līmeņos
• Morfoloģiskā analīze– „es”: {pron,sg,pers1,”es”}– „ceļu”: {v,indic,pres,pers1,”celt”} VAI {n,sg,acc,”ceļš”} VAI
{n,pl,gen,”ceļš”} VAI {n,pl,gen,”celis”}– „māju”: {n,sg,acc,”māja”} VAI {n,pl,gen,”māja”} VAI
{v,indic,pres,pers1,”māt”}
• Sintaktiskā analīze– „es”SUBJEKTS + „celt”PREDIKĀTS + „māja”OBJEKTS
– „es”SUBJEKTS + „ceļš”OBJEKTS + „māt”PREDIKĀTS
• Semantiskā analīze– leksiskā semantika: „māja” ir hiponīms „celtne”BUILDING, bet „celt” ir sinonīms „būvēt”BUILD
VAI hiponīms “pārvietot”MOVE
– verba tipiskie paplašinātāji:• „māt”WAVE ir intransitīvs – parasti tiek lietots kopā ar netiešo objektu (piem., ar ko?), nevis tiešo objektu (ko?)
• „celt”BUILD un „celt”MOVE ir transitīvi – parasti tiek lietoti kopā ar tiešo objektu; netiešais objekts – neobligāts
– fona zināšanas: Tas, ko kāds būvē, ir celtne. Ikviena celtne ir nekustamais īpašums. Tas, ko kāds pārvieto, ir kustamais īpašums. Kustamais īpašums nav nekustamais īpašums.
Zifa likums
"the" 100 3500 75000
102030405060708090
100
Parādās visos teksta analīzes līmeņos: no morfoloģisko pazīmju līdz pat diskursa referentu noteikšanai.
Jo augstāks līmenis, jo nosacīti valodneatkarīgākas problēmas/risinājumi (bet ne resursi!).
Daudznozīmība: fenomenāls līdzeklis, kas valodas lietošanu padara ērtu cilvēkam.
Vārdu, vārdformu un sintaktisko konstrukciju klāsts valodā ir galīgs, taču to kombinēšanas un interpretācijas iespējas teorētiski ir bezgalīgas.
Zipf’s law:• salīdzinoši maz vārdu tiek lietoti bieži — lielākā daļa tiek lietoti reti• dažādos kontekstos vārdi tiek intensīvi atkalizmantoti
Ierobežots skaits vārduNeierobežots skaits jēdzienu (nozīmju)
Teksta klasificēšana – semantiska problēma?
• Derīgo vēstuļu un mēstuļu šķirošana• Anonīma autora noteikšana (t.sk. plaģiātisma atklāšana)• Autora vecuma/dzimuma noteikšana• Emocionālās ekspresijas noteikšana (sentiment analysis)• Teksta tematikas noteikšana
• Dots dokuments d un fiksēta klašu kopa C={c1, .., cn} (n≥2)– Noteikt d atbilstošo cj
• Vai tam ir nepieciešama semantiskā analīze?– Vai tas izklausās pēc teksta nozīmes analīzes?
• Vienkāršoti risinājumi (balstīti uz atslēgvārdiem/frāzēm):– manuāli definēti likumi, heiristika (dārgi, lēni)– mašīnmācīšanās no piemēriem (nepieciešama treniņpiemēru kopa)
Mašīnmācīšanās• Programmu ģenerēšana, balstoties uz reprezentatīviem
piemēriem• Problēmas, kurām nav zināmas precīzas metodes, kā tās
risināt, vai arī zināmās metodes ir pārāk “dārgas”• Programma mācās no pieredzes E attiecībā pret uzdevumu
klasi T un precizitātes/veiktspējas mēru P, ja laika gaitā P uzlabojas ar jaunu pieredzi E– Veiktspējas uzlabošanu bieži var reducēt uz kādas mērķa funkcijas
mācīšanos– Vispārīgā gadījumā varam cerēt iegūt tikai ideālās mērķa funkcijas
aproksimāciju
• Viena no vienkāršākajām un efektīvākajām ML metodēm– Tekstu klasificēšanai
• Bayes likums:– P(c|d) = P(d|c)*P(c) / P(d)
• Varbūtība, ka c, ja d• “/ P(d)” var atmest, jo tas nav atkarīgs no c (konstante)
• Vienkāršots (aplams!) pieņēmums:
– bag of words: d = w1, w2, .., wn (pazīmju vektors)
– conditional independence: P(wi|cj) P(w1,..,wn|cj) = P(w1|cj)*..*P(wn|cj)
– t.i., vārdi tekstā nav savstarpēji atkarīgi, secība nav svarīga
• Naive Bayes:– argmax P(cj) * Π P(wi|cj)
cj C i Pos
Naive Bayes metode
Naïve Bayes as a Language Model• Which class assigns the higher probability to the sentence s?– P(s|c) = Π P(w|c)
0.1 I
0.1 love
0.01 this
0.05 fun
0.1 film
Model pos Model neg filmlove this funI
0.10.1 0.01 0.050.10.10.001 0.01 0.0050.2
P(s|pos) > P(s|neg)0.0000005 > 0.000000001
0.2 I
0.001 love
0.01 this
0.005 fun
0.1 film
Sec.13.2.1
Kā radās P(cj) un P(wi|cj) vērtības?
klases cj relatīvais biežums treniņpiemēru kopā
cik bieži vārds wi ir lietots klases cj dokumentos / kopējais vārdu skaits cj dokumentos (treniņpiemēros)
t.i., wi relatīvais biežums cj dokumentos (treniņpiemēros)
P.S. NB klasifikatora apmācīšana savām vajadzībām bez programmēšanas: uClassify.com
Teksta normalizēšana• Kodējumi, tokenizācija, speciālo simbolu un vārdu vispārināšana utt.
• Biežumsaraksti un to analīze
– Stopvārdi, “troksnis” (Zipf’s Law)
– Vārdformas vs. pamatformas (īpaši aktuāli fleksīvām valodām)
• Treniņpiemēri un datu (pazīmju – features) izkliedētība (sparsity)
• Vārdlietojumu klasterēšana
– Naivās metodes: truncation, stemming, regex
– Morfoloģiskā analīze:
• Vārdšķiras (u.c. morf. pazīmju) noteikšana
– Atvērtās / slēgtās vārdšķiras
– Pilnnozīmes / palīgnozīmes vārdi
• Pamatformas noteikšana (“lemmatizācija”)
– Locīšanas paradigmas (piem., lietvārdi: 6 vai 60?)
Morfoloģiskā analīze vs. marķēšana
• Dots: individuāla (ārpus konteksta) vārdforma vs. teikums• Analizators vs. statistisks tageris (POS tagger)
– Baseline: ~90%– State of the art: ~97%
• LU MII tageris: ~93%– Vārdšķiras noteikšana: 97%– Drīzumā gaidāma uzlabota versija
• LU MII analizators– Morf. leksikons (~50K sugasvārdu, ~180K īpašvārdu)– Nezināmo vārdu minēšana pēc galotnes– Atgriež visus variantus, sakārtojot pēc dotās formas biežuma morf. korpusā
(precizitāte: ~88%)• https://github.com/PeterisP/LVTagger