Sõnatähenduste automaatne määramine eestikeelsetes tekstides
Sõnatähenduste automaatne määramine eestikeelsetes tekstides
Sõnatähenduste automaatne määramine eestikeelsetes tekstides
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>Sõnatähenduste</strong> <strong>automaatne</strong> <strong>määramine</strong><br />
<strong>eestikeelsetes</strong> <strong>tekstides</strong><br />
Kaarel Kaljurand (kaarel@ut.ee)<br />
ATI doktorant<br />
Toetavad: ETF5534, EITSA/Tiigriülikool, SFDs03<br />
ATI seminar, kevad 2004
Abstrakt<br />
Seminaris kirjeldatakse meetodit, mille abil määrata sõnade tähendusi<br />
<strong>eestikeelsetes</strong> <strong>tekstides</strong>. Sõnatähendusi eristava ja kirjeldava sõnastikuna<br />
kasutatakse Eesti WordNet sõnastikku (EstWN). Sõna tähenduse<br />
määramiseks tekstis kasutatakse sõna lähikonteksti, mille süntaktilist<br />
struktuuri analüüsitakse kitsenduste grammatikaga (ESTCG).<br />
ATI seminar, kevad 2004 2/28
Kava<br />
• Sissejuhatus sõnatähenduste automaatse määramise ülesandesse<br />
(word sense disambiguation) ja selle võimalikku lahendusse<br />
• Eeldused<br />
– Sõnad ja leksikaalne semantika<br />
– Sõnade kontekst ja süntaks<br />
– Eesti keele automaattöötlusressursid<br />
• <strong>Sõnatähenduste</strong> määramise algoritm<br />
• Eksperiment ja selle tulemused<br />
• Tulevikuplaanid<br />
ATI seminar, kevad 2004 3/28
• Sõnad on mitmetähenduslikud<br />
Sõnade tähendused<br />
– kurk: TAIM vs KEHAOSA<br />
– pank: ASUTUS vs PINNAVORM<br />
– jne jne<br />
• Sõnatähendus kontekstis on reeglina ühene, see tuleks määrata<br />
– automaatselt (sest see on kasulik nt masintõlkele, infootsingule jne)<br />
– <strong>eestikeelsetes</strong> <strong>tekstides</strong> (sest ka eestlased tahavad masinaga tõlkida<br />
ja kiiresti infot leida)<br />
ATI seminar, kevad 2004 4/28
• Masintõlge<br />
Rakendused<br />
– Mu maks valutab. → My liver hurts.<br />
– Mu kurk valutab. →<br />
∗ My throat hurts.<br />
∗ My cucumber hurts.<br />
• Infootsing<br />
– Keel → “Siin on teile dokumendid, mis räägivad keelest kui pillikeelest,<br />
siin on dokumendid, mis räägivad keelest kui inimkeelest<br />
jne”<br />
ATI seminar, kevad 2004 5/28
Lahendus<br />
• Sõnad kommunikatsioonis. Sõna tähenduse määrab kontekst<br />
– Ta jõi kuuma teed<br />
• (Lokaalne) kontekst on süntaktilise struktuuriga<br />
täiend objekt<br />
ta jõi kuuma teed<br />
• Keskendume nimisõnade tähendustele<br />
ATI seminar, kevad 2004 6/28
Leksikaalne semantika ja WordNet<br />
• Tähendusi eristavad sõnastikud ja tesaurused<br />
• WordNet-sõnastik<br />
– Keskne mõiste on sünonüümihulk<br />
– Polüseemne sõna kuulub mitmesse erinevasse sünonüümihulka<br />
– Sünonüümihulgad on omavahel seotud semantiliste seostega, nt<br />
hüperonüümia/hüponüümia, meronüümia/holonüümia jne<br />
– Hulkade vaheline kaugus = hulga sõnade tähenduste sarnasus<br />
• Probleem: sõna tähenduste hulk sõltub suuresti rakendusest või sõnastiku<br />
autorist, see pole sugugi üheselt määratud. Nt WordNet on kohati<br />
liiga granulaarne<br />
ATI seminar, kevad 2004 7/28
EstWN näide: pank<br />
ATI seminar, kevad 2004 8/28
EstWN näide: pank ja kallas<br />
ATI seminar, kevad 2004 9/28
Sõna ‘gates’ polüseemia @ teoma.com<br />
ATI seminar, kevad 2004 10/28
• Definitsiooniga<br />
Sõna tähenduse selgitamine<br />
– kurk → ... on see, mis kasvab aias, mida tarvitatakse toiduks<br />
• Sünonüümiga, hüperonüümiga jne<br />
– viis → hinne, arv<br />
• Morfoloogilise sünteesiga<br />
– kurk → kurgu (GEN), kurgi (GEN)<br />
– viis → viima (INF), viisi (GEN), viie (GEN)<br />
• Võimaliku kontekstiga<br />
– vend → kõva vend (tough guy), minu vend (my brother)<br />
– tee → jõi teed, käis teed<br />
ATI seminar, kevad 2004 11/28
Süntaksiformalismid<br />
• Fraasistruktuurigrammatika (Chomsky 1957)<br />
– Tegeleb fraasistruktuuriga (S → NP VP, VP → V NP)<br />
– Süntaktilise funktsiooni mõiste puudub<br />
– Ei rakendu hästi vaba sõnajärjega keeltele (nt eesti keel)<br />
• Sõltuvusgrammatika (Tesnière 1959, Mel’ĉuk 1987, Rätsep 1978)<br />
– Tegeleb sõnadevaheliste süntaktiliste funktsioonidega<br />
– Lause tähtsaim element on (finiit)verb oma kohustuslike argumentidega<br />
(subjekt, objekt jne)<br />
– Sobib vaba sõnajärjega keeltele<br />
– Analüüs on “semantilisem” (subjekt ∼ tegija)<br />
ATI seminar, kevad 2004 12/28
• Pindmine<br />
Sõltuvusanalüüsi tasemed<br />
– Iga sõna jaoks määratakse selle süntaktiline funktsioon lauses (nt<br />
subjekt), aga mitte sõna, mille suhtes see funktsioon toimib<br />
– Kitsenduste grammatika parserid annavad usaldusväärse väljundi<br />
(inglise keele parserid saavutavad ∼95% täpsuse)<br />
– Pindmine analüüs kui etapp teel sügava analüüsini<br />
• Sügav<br />
– Määratakse täielik seos, nt objekt(jooma, tee)<br />
– Subjekti- ja objekti seosed õnnestub usaldusväärselt tuvastada<br />
(inglise keele parserid saavutavad ∼90% täpsuse)<br />
– Teisi seoseid on keerulisem formaalselt kirjeldada, nt adverbiaalid<br />
(“nägin meest mütsiga” vs “nägin amööbi mikroskoobiga”), mitmesõnalised<br />
verbid (‘kindlaks tegema’, ‘ära ütlema’, ‘kirja panema’) jne<br />
ATI seminar, kevad 2004 13/28
Pindmine vs sügav analüüs<br />
Lause “kuri ema sunnib lapsi suppi sööma” analüüs kitsenduste grammatikaga<br />
ning võimalik sügav sõltuvusgrammatika analüüs.<br />
an subj obj obj advl<br />
kuri<br />
0<br />
AN><br />
ema<br />
1<br />
SUBJ<br />
sunnib<br />
2<br />
+FMV<br />
lapsi<br />
3<br />
OBJ<br />
[subj]<br />
suppi<br />
4<br />
OBJ<br />
sööma<br />
5<br />
ADVL<br />
ATI seminar, kevad 2004 14/28
Eesti keele ressursid<br />
• Eesti keele kitsenduste grammatika (Roosmaa, Koit, Muischnek,<br />
Müürisep, Puolakainen, Uibo)<br />
• Kitsenduste grammatika parser ehk ESTCG parser (Müürisep,<br />
Puolakainen). Täpsus = ∼78% ja saak = ∼96%<br />
• ESTCG korpus (Uibo, Müürisep, Muischnek, Orav, Rääbis). ∼200.000<br />
sõna kitsenduste grammatikaga annoteeritud<br />
• Eesti WordNet-tüüpi sõnastik ehk EstWN (Õim, Vider, Orav, Kahusk,<br />
Paldre). Sisaldab ∼10.000 sünonüümihulka<br />
• <strong>Sõnatähenduste</strong> korpus (Õim, Vider, Orav, Kahusk). ∼100.000 sõna<br />
EstWN-tähendusega annoteeritud<br />
ATI seminar, kevad 2004 15/28
Süvastruktuuri leidmine ESTCG-annoteeritud<br />
<strong>tekstides</strong>t<br />
• Vaja on siiski süvastruktuuri!<br />
• Esialgu lihtne sõltuvuste leidja, mis tuvastab<br />
– Finiitverbi põhiargumendid (subjekt ja objekt)<br />
– Nimisõna eestäiendid (adjektiiv ja partitsiip-adjektiiv)<br />
– Nt lausest “ema sunnib lapsi suppi sööma” leitakse:<br />
an>(ema,kuri)<br />
subj(sundima,ema)<br />
obj(sundima,lapsi)<br />
• Täpsus on päris hea (see oligi eesmärk). Saak on madal (nt koordinatsiooni<br />
ei analüüsita õigesti)<br />
• Probleem: nimisõna on seotud maksimaalselt kahe kontekstisõnaga<br />
ATI seminar, kevad 2004 16/28
“Sarnased sõnad” sõltuvusseoste<br />
andmebaasis<br />
Tüüp Kontekst Nimisõnad ja nende sagedus<br />
subj kostma hääl#19, pillimäng#6, köhimine#6, pasunatörin#6,<br />
heli#5, laul#2, telefonihelin#2, helikatke#2, pulmamarss#2,<br />
huige#2, plõksatus#2, lõpumuusika#2,<br />
viis#2, põrin#2, rämin#1<br />
subj ilmuma raamat#8, mees#4, rong#2, huumorirubriik#2, number#2,<br />
Eha#2, nägemus#2, Trenkma#2, erilehekülg#2,<br />
sanitar#2, väitekiri#2, nahkmapp#2, kord#1, poisike#1<br />
an> viimane aeg#21, aasta#16, päev#13, minut#10, kuu#9,<br />
häda#8, naine#6, arvestus#6, kogu#6, mõte#6,<br />
raamat#6, argipäevaintiimsus#6, joomaperiood#6,<br />
hetk#3, hangutäis#3, meeter#3, uni#2, viga#2, ...<br />
ATI seminar, kevad 2004 17/28
Ühestamisalgoritm<br />
for iga lause S sisenddokumendis do<br />
Parsi S ESTCG parseriga;<br />
Leia lausest S sõltuvusseosed;<br />
for iga polüseemne nimisõna W lauses S do<br />
for iga sõltuvusseos R, mis sisaldab W do<br />
Leia andmebaasist sõna W “sarnased sõnad”, kasutades<br />
kontekstisõnu, millega W on funktsiooni R läbi seotud;<br />
Leia EstWNist “sarnaste sõnade” tähendused;<br />
end<br />
end<br />
end<br />
end<br />
if kontekstisõnu ei leitud OR need ei esinenud andmebaasis then<br />
Kasuta mõnd tagavarastrateegiat või jäta sõna W analüüsimata;<br />
else<br />
Võrdle “sarnaste sõnade” tähendusi sõna W tähendustega ja määra<br />
sõna W tähendus;<br />
ATI seminar, kevad 2004 18/28
Eksperiment<br />
1. Süntaktiliste seoste andmebaas genereeriti ESTCG korpuse põhjal.<br />
See sisaldab subjekt-, objekt-, adjektiivtäiendi ja partitsiiptäiendi seoseid,<br />
kirjeldades ∼12,400 seost ja ∼4200 nimisõna.<br />
2. Algoritm implementeeriti Perli programmina. Seda rakendati tekstidele,<br />
mis kuulusid ESTCG- ja sõnatähendustekorpuse ühisosasse (∼14,000<br />
sõna). Seega on<br />
• sisend usaldusväärse süntaktilise annotatsiooniga,<br />
• tulemusi võimalik automaatselt hinnata.<br />
ATI seminar, kevad 2004 19/28
Kaks mudelit<br />
• Mudel 1 Sarnased nimisõnad, mille sagedus samas kontekstis on suurem<br />
kui 1, järjestatakse vastavalt<br />
– kui mitmes analüüsitava sõna kontekstis nad esinevad<br />
– nende poolt pakutud lähima tähenduse kaugusele WordNeti mõistes<br />
Edetabeli 3 esimest sõna hääletavad, et valida analüüsitava sõna tähendus<br />
• Mudel 2 Täpselt nagu Mudel 1, aga kontekstisõnadel, mis kuuluvad<br />
kümne sagedaseima verbi/adjektiivi hulka eesti keeles ei lasta “sarnaseid<br />
sõnu” genereerida. Põhjus: suur sagedus tähendab mitmetähenduslikkust,<br />
mis omakorda tähendab väiksemaid semantilisi kitsendusi<br />
kontekstile.<br />
ATI seminar, kevad 2004 20/28
Analüüsi näide<br />
Olgu meil lause “ta jõi kuuma teed”. Konteksti sõnade kohta on andmebaasi<br />
põhjal teada, et<br />
• jooma objektid võivad olla ka ‘kohv’ ja ‘Becherovka’<br />
• kuum võib täiendada sõnu ‘kohv’, ‘päike’, ‘koht’, ‘vann’ ja ‘tunne’<br />
Lisaks teame, et kuum on väga sage sõna, mistõttu selle poolt<br />
genereeritud “sarnaseid sõnu” ei tasu usaldada. Saame tabeli:<br />
Sõna Sagedus M1 Sagedus M2 Kaugus Valik<br />
kohv 2 1 2 JOOK<br />
koht 1 0 2 SIHT<br />
vann 1 0 5 RADA<br />
päike 1 0 9 JOOK<br />
tunne 1 0 ∞ -<br />
Becherovka 1 1 - -<br />
ATI seminar, kevad 2004 21/28
Tulemused<br />
Tulemused, mis saadi püüdes määrata ∼1700 EstWNis kirjeldatud (nii<br />
ühetähendusliku kui ka mitmetähendusliku) nimisõna tähendust ilukirjandus<strong>tekstides</strong>.<br />
Meetod “juhuslik” omistab sõnale tähenduse juhusliku valiku<br />
teel. Meetod “sagedaseim” omistab sõnale selle kõige sagedasema tähenduse.<br />
Meetod Täpsus Saak<br />
Juhuslik 44% 100%<br />
Sagedaseim 82% 100%<br />
Mudel 1 82% 62%<br />
Mudel 2 89% 54%<br />
Tulemused näitavad selgelt süntaktilise info kasulikkust antud ülesande<br />
lahendamisel. Kuna see info pole alati lihtsalt kättesaadav, siis ei õnnestu<br />
paljusid sõnu analüüsida. Samuti on lahenduses kõvasti potentsiaali paremaid<br />
tulemusi toota, nt kui süntaktiline analüüs läheb paremaks.<br />
ATI seminar, kevad 2004 22/28
Lahendused probleemile madala täpsusega<br />
• Suur hulk parameetreid mõjutab analüüsi tulemust. Kuidagi on vaja leida<br />
nende parim kombinatsioon. Avastada seeläbi, nt millist tüüpi süntaktiline<br />
informatsioon on sõnatähenduste määramiseks kõige kasulikum.<br />
Rakendada masinõppimist.<br />
• Andmebaas peaks sõltuma analüüsitavast tekstist, st erinev andmebaas<br />
nt uudiste, tehnilise dokumentatsiooni, ilukirjanduse jne jaoks.<br />
• WordNet on liiga granulaarne. Isegi kui süsteemi täpsus on WordNeti<br />
mõttes madal, võib see siiski mingi rakenduse sees kasulik olla. Süsteemi<br />
peaks seega testima nii, et arvestataks ainult andestamatuid vigu<br />
(nt sõnade ‘pank’, ‘kurk’, ‘viis’, ‘tee’ jt vale analüüsi).<br />
ATI seminar, kevad 2004 23/28
Lahendused probleemile madala saagiga<br />
• Mudel on liiga leksikaalne. Saagi tõstmiseks peaks andmebaasi<br />
genereerima palju suurema korpuse baasilt, või kasutama baasi võtmetes<br />
mitte sõnu vaid abstraktsemaid kategooriaid, nt ütlemisverbid<br />
(ütlema, sõnama, jne), liikumisverbid (jooksma, kõndima jne)<br />
• Tagavarastrateegia, mis juhul kui andmebaasis info puudub, otsiks kontekstisõna<br />
nt Google’i abil ja tagastaks sellega süntaktiliselt seotud<br />
nimisõnad<br />
• Tuvastada kõiki nimisõnadega seotud süntaktilisi seoseid (adverbiaalid,<br />
nimisõnalised täiendid). Neid on raskem tuvastada ning nende väärtust<br />
sõnatähenduste määramise jaoks peab veel uurima<br />
• Parem süntaktiline/semantiline analüüs, et leida rohkem suhteid sõnade<br />
vahel (nt derivatsiooni läbinud verbid ja nende argumendid). Väga raske<br />
esialgu lahendada<br />
ATI seminar, kevad 2004 24/28
Analüüs rohkem semantilisemaks!<br />
Lausete “lapsi suppi sööma sundiv ema naeratab” ja “ema on kuri”<br />
analüüs kitsenduste grammatikaga ning võimalik semantiline analüüs.<br />
actor patient inf actor<br />
lapsi<br />
0<br />
OBJ<br />
suppi<br />
1<br />
OBJ<br />
sööma<br />
2<br />
ADVL<br />
ema<br />
0<br />
SUBJ<br />
sundiv<br />
3<br />
VN><br />
on 1<br />
+FMV<br />
ema<br />
4<br />
SUBJ<br />
property<br />
kuri<br />
2<br />
PRD<br />
naeratab<br />
5<br />
+FMV<br />
ATI seminar, kevad 2004 25/28
Uudisteteksti näide: predikaadid ja nimisõnad<br />
Soov teenida välisvaluutat ning mitme kolmanda maailma riigi<br />
huvi Hiina sõjatehnika, ennekõike rakettide vastu, võivad maailma<br />
rahvarohkeima riigi muuta oluliseks tõkkeks teel ründerelvastuse leviku<br />
piiramise suunas, märgitakse dokumendis.<br />
agent(soovima, riik)<br />
agent(teenima, riik)<br />
agent(muutma, soov)<br />
agent(muutma, huvi)<br />
patient(teenima, välisvaluuta)<br />
patient(piirama, levik)<br />
agent(levima, ründerelvastus)<br />
(Näide Postimehest, Reet Kasik “Uudiste süntaks”.)<br />
ATI seminar, kevad 2004 26/28
Veel lahendusi<br />
• Osa mitmetähenduslikke sõnu (‘palk’, ‘kurk’ jne) on analüüsitavad<br />
nende vormi põhjal erinevates käänetes (nt genitiiv eristab kurki kurgust).<br />
Selline analüüs oleks väga täpne, kuid rakendatav ainult vähestele<br />
sõnadele<br />
• Koordinatsioon rakendub semantiliselt sarnastele sõnadele. Võrdle:<br />
“Mulle meeldivad kassid ja koerad; kassid ja loomad; kassid ja<br />
seadused”. Selliseid seoseid pole hetkel üldse kasutatud<br />
• WordNetis leidub peale hüperonüümia/hüponüümia veel teisi semantilisi<br />
suhteid. Neid on võimalik kasutada, muutes küll lahenduse võibolla<br />
liiga Wordneti-spetsiifiliseks<br />
• Jäävad probleemid kujundliku kõnega, nt sõna ‘keel’ fraasis “mürgise<br />
keelega mees”<br />
ATI seminar, kevad 2004 27/28
Viimane slaid<br />
ATI seminar, kevad 2004 28/28