T-61.281 Luonnollisten kielten tilastollinen käsittely
Vastaukset 11, ti 6.4.2004, 8:30-10:00 Klusterointi, Konekääntäminen.
Versio 1.0
![]() |
Piirretään vielä klusterointeja vastaavat dendrogammit. Dendrogrammissa on pystysuunnassa etäisyysasteikko, ja aina kun kaksi ryhmää yhdistetään, se merkitään tälle etäisyydelle (Kuva 2).
Nyt kun haluamme muodostaa klusterit, meidän pitäisi vielä
dendrogrammista osata päätellä, mikä etäisyys laitetaan
raja-arvoksi klustereiden muodostumiselle. Nyt vaikuttaisi siltä,
että sekä single link, että complete link -klusteroinnille sopiva
raja-arvo olisi noin 2.9. Tämän rajan alapuolella molemmat
menetelmät antavat saman klusteroinnin (Taulukko 1).
Tässä tehtävässä siis etsitään kolmea klusteria, klustereiden alustava sijainti on annettu. Kuvassa 3 esitetään algoritmin kulku.
![]() |
Tässä saatiin siis taulukossa 2 nähtävät
klusterit.
|
![]() |
Katsotaanpa ensinnä sanaa kihartuminen. Sen kolme lähintä tunnettu naapuria ovat hius, naama ja työntää. Vastaavat äänet ovat S,S ja V eli sana luokitellaan substantiiviksi.
Sanalle kuula lähimmät naapurit ovat työntää, moukari ja naama. Näin ollen se luokitellaan substantiiviksi.
Sana heittää naapurit vetää, nostaa ja työntää ovat yksimielisiä siitä, että sana on verbi.
Tässä tapauksessa nähdään menetelmän huono puoli: Se ei pysty esittämään monimutkaisemman datapilven muotoa yhtä hyvin kuin siinä olevat datapisteen erikseen lueteltuna ja tässä luokittelee sanan kuula väärin.
![]() |
![]() |
![]() |
Nyt voimme sieventää toista termiä olettamalla, että nykyinen ryhmä
riippuu vain edeltävistä ryhmistä, mutta ei edeltävistä
sanoista. Jaetaan viimeinen termi vielä tutulla tavalla osiin.
![]() |
![]() |
||
![]() |
Koska sana voi kuulua vain yhteen ryhmään, riippuu todennäköisyys
vain sanasta
ja
on yksi, kun on kyseessä ryhmä, johon sana kuuluu.
![]() |
![]() |
Tämä sievennetyn lausekkeen voisi ilmaista viellä hieman
yksinkertaisemmin merkitsemällä :llä ryhmää, johon sana
kuuluu:
![]() |
Tarkemmin yhtälöa katsomalla huomataan, että lopputulos on toisen asteen kätketty Markov-malli, missä ryhmät ovat tiloja ja emissiotodennäköisyytenä ilmaistaan, millä todennäköisyydellä ryhmästä generoi tietyn sanan.
Mietitäänpä vielä lopuksi, mitä tällaisella approksimaatiolla
saadaan aikaiseksi. Oletetaanpa vaikka, että meillä on 64000
sanasto, joista olemme muodostaneet 1000 klusteria. Nyt
arvioitavien parametrien määrä on pudonnut
:sta
:ään. Jos
oletetaan, että sanat on hyvin klusteroitu ja klusterien väliset
siirtymät kuvaavat lähes yhtä hyvin kuin sanojen väliset siirtymät,
saadaan nämä parametrit myös arvioitua paljon paremmin kuin
trigrammimallin parametrit (enemmän dataa per parametri). Jos
klusterointi puolestaan on huono, eikä klusterista toiseen
siirtyminen juurikaan vastaa sanoista toiseen siirtymistä, malli
arvio vähäiset parametrinsa huonosti ja on todennäköisesti paljon
heikompi malli kuin trigrammimalli. Edelleenkin tietysti parametrien
määrä on paljon pienempi.
![]() |
![]() |
![]() |
|||
![]() |
Prioritodennäköisyys saadaan kielimallista. Lasketaan se
kummallekin lauseelle:
![]() |
![]() |
![]() |
|
![]() |
![]() |
![]() |
Kertomalla priori ja käännöstodennäköisyys huomataan, että
jälkimmäinen käännös on todennäköisempi:
![]() |
|||
![]() |
Huomattavaa on, että käännösmalli ei ota mitään kantaa sanajärjestykseen. Koska myöskään kielimalli (unigrammimalli) ei tätä tee, mallin mielestä sanajärjestyksellä ei ole mitään merkitystä. Jos mallilta kysytään todennäköisintä lausettta (ei testata eri vaihtoehtoja) huomataan, että todennäköisimpään lauseeseen ei voi tulla artikkeleja eikä sanaa ``into''. Tämä johtuu siitä, että niiden lisääminen ei muuta käännöstodennäköisyyttä, mutta tiputtaa aina kielimallitodennäköisyyttä. Kielimalli siis suosii muutenkin lyhyempiä lauseita. Kasvattamalla kielimallin konteksti trigrammiksi, saisi ehkä artikkelit ja sanajärjestyksen paremmin kohdalleen.
Yleisesti tällä menetelmällä tarvitaan heuristiikkaa valitsemaan käännökset, joita tutkitaan. Kaikkien vaihtoehtojen läpikäynti on käytännössä mahdotonta.