Harjoitustyöohje, kevät 2004

T-61.281Luonnollisen kielen tilastollinen käsittely

Sisältö:


Yleistä ja aikataulu

Harjoitustyö on pienimuotoinen tutkimus jossa on tarkoitus soveltaa yhtä tai useampaa tilastollista menetelmää johonkin kurssilla esitettyyn ongelmatyyppiin, sekä kirjoittaa työstä raportti.

Harjoitustyö suositellaan tehtäväksi ennen tenttiä. Mikäli haluaa saada harjoitustyönsä arvostelluksi kevään aikana, on se palautettava viimeistään 7.5.2004. Tätä myöhemmin palautetut harjoitustyöt arvostellaan kun ehditään (esimerkiksi myöhemmin toukokuussa palautetut mahdollisesti vasta syyskuussa).

Harjoitustyö palautetaan infolabran edessä (T-talon 3.krs) olevaan postilaatikkoon, jossa lukee "T-61.281 harjoitustyö" tai vaihtoehtoisesti suoraan kurssin luennoitsijalle.


Harjoitustyöraportti

Työn pohjalta kirjoitetaan harjoitustyöselostus.

Raportti aloitetaan otsikkosivulla jossa on kurssin nimi ja koodi, opiskelijan nimi ja opintokirjannumero sekä harjoitustyöaiheen otsikko.

Raportissa kuvataan lyhyesti tutkimusongelma, käytetyt menetelmät, tehdyt kokeet, tulokset ja johtopäätökset sekä lähdeviitteet.

Mikäli käytät jotain muuta kuin annettua aineistoa, kuvaa raportissa myös aineisto sekä liitä mukaan näytteitä siitä.

Ohjelmakoodi laitetaan raportin liitteeksi, ja sitä ei lasketa sivumäärään. Mikäli käytät joitain valmiita ohjelmistoja tai työkaluja esim. tekstin esikäsittelyssä, mainitse myös nämä.

Raportin pituus saa olla 5-10 sivua.


Parityöskentely

Harjoitustyön voi niin halutessaan tehdä parin kanssa yhteistyönä. Mikäli työ tehdään parityönä, työstä kirjoitetaan yhteinen raportti josta käy ilmi parin työnjako.

Lisäksi työ on tehtävä laajennettuna versiona, esim. soveltamalla useampia eri menetelmiä tai useampiin/laajempiin aineistoihin, tai syventämällä työtä muulla tavalla. Raportti on tällöin olla vastaavasti pidempi (10-15 sivua).

Parityö on erityisen suositeltava mikäli haluaa perehtyä johonkin aiheeseen syvällisemmin, mutta työmäärä kasvaisi muuten kohtuuttoman suureksi.


Työn arvostelu ja vaikutus kurssiarvosanaan

Harjoitustyöt arvostellaan arvosanoilla 5, 3, 1 ja hylätty. Näistä 5 tarkoittaa erinomaista työtä ja 1 tyydyttävää.

Harjoitustyön arvosana 1 voi vaikuttaa kurssiarvosanaan alentavasti ja 5 vastaavasti nostavasti silloin kun tentissä saatu pistemäärä on 1-2 pisteen päässä arvosanarajasta (poikkeuksena tentin arvosana 5 jota ei voi nostaa).


Aiheet

1. Tyylianalyysi

Tehtävänä on kehittää järjestelmä, jolle annetaan opetusaineistona joko a) kahden (tai useamman) eri kirjoittajan tekstejä tai b) kahden (tai useamman) eri tyylilajin tekstejä. Opetusvaiheen jälkeen järjestelmää testataan opetusaineistoon kuulumattomilla teksteillä tarkoituksena tarkistaa, kuinka hyvin järjestelmä luokittelee testiaineiston. Tyylianalyysin perustana olevia statistiikkoja voivat esimerkiksi olla: (Kommentti 3.3.2004:) Menetelmistä, materiaalista ja sen valinnasta voidaan keskustella luentojen yhteydessä.

2. Kysymys-vastaus -järjestelmä

Tehtävänä on kehittää järjestelmä, joka antaa vastauksia informaatiotekniikan alueelta englanniksi esitettyihin kysymyksiin. Erityisaiheina ovat Kohosen itseorganisoiva kartta (Self-Organizing Map, SOM) ja riippumattomien komponenttien analyysi (Independent Component Analysis, ICA).

Vastauksensa kysymykseen järjestelmä hakee joukosta dokumentteja se, joka käytetyn menetelmän mielessä täsmää tarkimmin annettuun hakulauseeseen. Tällainen hakulause voisi esimerkiksi olla "How to choose the neighborhood function when using the self-organizing map?". Tehtävänäsi on valita sopiva menetelmä tähän tehtävään ja kerätä joukko kysymyslauseita testejä varten.

Aineistona on joukko osoitteesta http://www.cis.hut.fi/ kerättyjä dokumentteja jossakin määrin esikäsiteltyinä (ks. ohje).

Mukana on seuraavanlaisia dokumentteja:

Kunkin osuuden kirjoittajien oikeudet säilyvät muuttumattomina.

Aineiston saa käyttöön seuraavilla unix-komennoilla:

gunzip hut_nnrc_collection03.tar.gz
tar xvf hut_nnrc_collection03.tar

Huomaa, että kokoelma purkautuu samaan hakemistoon kuin missä tar-komento annetaan. Aineistossa on 370 dokumenttia, jotka on koodattu xml-tyyliin seuraavasti:

     <document>
     <source> ... mistä dokumentti on saatu ... </source>
     <author> ... kirjoittaja(t) ... </author>
     <text>
     ... leipäteksti ...
     </text>
     </document>

Joissakin tiedostoissa on author-kenttä on ennen source-kenttää. WSOM-kokoelmassa author-tagit ovat eri rivillä kuin itse kirjoittajien tiedot.

3. Probabilistinen jäsennys

Harjoitustyönä on tehdä laite, joka osaa annetusta tekstistä arvioida kunkin sanan sanaluokan. Aineistona on verkosta vapaasti saatava Susanne-tietokanta, johon on valmiiksi merkitty sanaluokat. Tämä aineisto tulee jakaa opetus- ja testiaineistoksi. Opetusaineistoa saa käyttää luokittimen opetukseen ja testiaineistoa käytetään tunnistimen suorituskyvyn arvioimiseen. Jos löytää jonkun muun riittävän kattavan opetusaineiston, sitäkin voi käyttää. Tästä kannattaa kuitenkin keskustella luennoitsijan tai assarin kanssa.

Susanne-aineistossa sanaluokat on määritetty hyvin tarkasti. Tehtävän kannalta voi olla syytä ryhmitellä sanaluokat hieman karkeampiin luokkiin, esimerkiksi yhdistämällä kaikki erisnimet yhdeksi luokaksi ja muut substanttiivit toiseksi jne. Se miten tarkalleen ottaen tämän yhdistelyn tekee on tehtävän tekijän itse ratkaistavissa.

Tämä tehtävä vaatinee hieman koodaustaitoa, ainakin jos aikoo toteuttaa kätkettyihin Markov-malleihin perustuvan luokittimen. Susanne-aineisto on saatavilla osoitteesta http://www.grsampson.net/

Poiminta aineistosta:

A01:0010.03     -       YB              -       [Oh.Oh]
A01:0010.06     -       AT      The     the     [O[S[Nns:s.
A01:0010.09     -       NP1s    Fulton  Fulton  [Nns.
A01:0010.12     -       NNL1cb  County  county  .Nns]
A01:0010.15     -       JJ      Grand   grand   .
A01:0010.18     -       NN1c    Jury    jury    .Nns:s]
A01:0010.21     -       VVDv    said    say     [Vd.Vd]
A01:0010.24     -       NPD1    Friday  Friday  [Nns:t.Nns:t]
A01:0010.27     -       AT1     an      an      [Fn:o[Ns:s.
A01:0010.30     -       NN1n    investigation   investigation   .
A01:0020.03     -       IO      of      of      [Po.
A01:0020.06     -       NP1t    Atlanta Atlanta [Ns[G[Nns.Nns]
...

4. Sanojen merkitysten yksikäsitteistäminen (vuodelta 2002, Krista Lagus)

Sovella kahta eri menetelmää sananmerkitysten yksikäsitteistämiseen. Toisen menetelmistä on oltava ohjaamaton ja toisen ohjattu. Sovella valitsemiasi menetelmiä joko suomen- tai englanninkieliseen aineistoon. Analysoi menetelmien hyviä ja huonoja puolia.

Vaihtoehtoisesti voit valita vain yhden menetelmän ja soveltaa sitä kummankinkieliseen aineistoon, sekä pohtia menetelmän soveltuvuutta näille kielille.

Englanninkielinen aineisto: Senseval

Poimi Senseval-aineistosta vähintään kaksi eri sanaa disambiguoitaviksi sanoiksi. Raportoi tulokset Senseval-testiaineistolla samojen sanojen osalta. Voit myös verrata tuloksiasi Senseval-kilpailussa eri menetelmillä saatuihin tuloksiin.

Huom: sanakirja-aineisto on mukana vain siltä varalta että joku haluaa soveltaa sanakirjapohjaista menetelmää. Välttämättä sitä ei siis tarvita.

Suomenkielinen aineisto 1: CSC:llä oleva pieni korpus

Antti Arppe <aarppe@ling.helsinki.fi> on ystävällisesti luvanut kurssilaisten käyttöön pienen korpuksen sense-taggaamaansa suomenkielistä aineistoa kahden eri sanan osalta. Aineisto on käytettävissä CSC:n koneilla, jonne kurssilaiset saavat anomuksesta tunnuksen. Huom: aineistoa ei saa siirtää pois CSC:n koneilta.

Tarkemmat tiedot aineistosta ja sen käytöstä ilmestyvät tänne myöhemmin (tai niitä voi kysellä Antilta).

Suomenkielinen aineisto 2: STT

Suomenkielisellä aineistolla voi ratkaista myös keinotekoista disambiguointiongelmaa, eli korvata vaikkapa kahden sanan (esim. 'banaani' ja 'ovi') esiintymät pseudosanalla jota ei tekstissä oikeasti esiinny ('banaaniovi'), ja tämän jälkeen disambiguoida pseudosanat.

Tuota vähintään 2 pseudosanaa (ts. sanaparia tai useamman sanan yhdistelmää) joihin sovellat menetelmää. Raportoi tulokset STT-aineistosta erotetulla erillisellä testiaineistolla.

Aineiston kuvaus, STT-aineisto siivottuna ja vielä perusmuotoistettuna.


5. Tiedonhaku (vuodelta 2002, Krista Lagus)

Data

CACM-aineisto Huomaa että aineiston mukana on tieto siitä mitkä dokumentit ovat relevantteja millekin haulle.

Menetelmät

Sovella kahta eri menetelmää, joista vähintään yksi on jokin seuraavista: Vertaile kokeiden avulla menetelmien soveltuvuutta tehtävään käyttäen tiedonhaun laadun mittaamiseen käytettäviä standardimenetelmiä. Pohdi saamiesi tulostesi pohjalta eri menetelmien hyviä ja huonoja puolia.


6. Oma aihe

Harjoitustyön voi tehdä myös omasta aiheesta. Aihe pitää hyväksyttää etukäteen kurssin luennoitsijalla toimimalla seuraavasti:

Toimita kurssin luennoitsijalle noin puolen A4:n mittainen kuvaus ehdottamastasi aiheesta, nimeten tutkimusongelman, aineiston joka on käytettävissäsi, ja menetelmät joita ajattelit soveltaa. Keskustele aiheen sopivuudesta tarvittaessa luennoijan kanssa.

Mikäli toimitat aihe-ehdotuksen ennen 1.3., saat viikon kuluessa palautteen sekä tiedon onko aihe hyväksytty. Muina aikoina asiasta on sovittava erikseen luennoijan kanssa.


Käytännön vinkkejä mm. esikäsittelyyn

Korpusten analyysiä sekä työkaluja käsitellään kirjan luvussa 3, jonka lukeminen on suositeltavaa. Alla on joitain tarkempia vinkkejä.

Perl, kovin lyhyt oppimäärä

Unixin työkalut

Aineisto on tiedostossa MunData.txt.gz

Tietyn kentän (tässä 3. vasemmalta lukien) valitseminen kultakin riviltä kun kenttäerotin on whitespace, ja tuloksen kompressointi ja ohjaus tiedostoon res.txt.gz

  gzcat MunData.txt.gz | awk '{ print $3 }' | gzip -c > res.txt.gz

Tietyn kentän (tässä 3. vasemmalta lukien) valitseminen kultakin riviltä kun kenttäerotin on kaksoispiste:

  gzcat MunData.txt.gz | awk -F':' '{ print $3 }'

Kirjainten A-Z korvaaminen vastaavalla pienellä kirjaimella:

  gzcat MunData.txt.gz | tr  "[A-Z]" "[a-z]" 

Poimitaan rivit jotka sisältävät kirjainjonon 'tärkeä':

  gzcat MunData.txt.gz | grep 'tärkeä'

Poistetaan rivit joilla on kirjainjono 'foobar':

  gzcat MunData.txt.gz | grep -v 'foobar'
Korvataan kaikki kirjainjonon 'banaani' esiintymät jonolla 'banaaniovi':
  gzcat MunData.txt.gz | perl -e 'while(<>) { s/banaani/banaaniovi/; print;}'


Timo Honkela
Last modified: Fri Jun 14 20:23:49 EEST 2002