12
Tekstu analīze LU specseminārs Web Science Normunds Grūzītis 15.11.2012.

LU specseminārs Web Science: Tekstu analīze

Embed Size (px)

Citation preview

Page 1: LU specseminārs Web Science: Tekstu analīze

Tekstu analīzeLU specseminārs Web Science

Normunds Grūzītis

15.11.2012.

Page 2: LU specseminārs Web Science: Tekstu analīze

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

Page 3: LU specseminārs Web Science: Tekstu analīze

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

Page 4: LU specseminārs Web Science: Tekstu 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.

Page 5: LU specseminārs Web Science: Tekstu analīze

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)

Page 6: LU specseminārs Web Science: Tekstu analīze

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)

Page 7: LU specseminārs Web Science: Tekstu analīze

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

Page 8: LU specseminārs Web Science: Tekstu analīze

• 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

Page 9: LU specseminārs Web Science: Tekstu analīze

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

Page 10: LU specseminārs Web Science: Tekstu analīze

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

Page 11: LU specseminārs Web Science: Tekstu analīze

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?)

Page 12: LU specseminārs Web Science: Tekstu analīze

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