Yliopiston etusivulle Suomeksi
Helsingin yliopisto

Yhteystiedot:

Osoite:
Yleisen kielitieteen laitos
PL 9
Siltavuorenpenger 20A
00014 Helsingin yliopisto

Puhelin: +358 (09) 1911 (vaihde)
Faksi: +358 (09) 191 29307

  • Deadline: 17.3.2005 (!)
  • Palaute: 22.3.2005 (!)

Harjoituksilla ei ole tällä kertaa numeroita, vaan nimet. Deal with it. Tietorakenneharjoitukset ovat melko vaativia — mutta teillähän on ylimääräinen viikko aikaa.

debuggaus

mainitse joitakin asioita, jotka aiheuttavat sen, että ohjelmavirheiden huomaamiseen, eristämiseen ja korjaamiseen kestää kauemmin kuin muuten kestäisi.

tietorakenteet

Tehkäämme esiparseri (taggeri). Epämuodollisesti sanoen se on algoritmi, joka ottaa liudan sanoja ja lisää tietoja sanojen sanaluokista yms. Tarkemmin sanoen se on funktio, joka ottaa argumentikseen listan sanoja, ja palauttaa tuloksenaan listan sanatietueita. Yksi sanatietue olkoon lista, jossa ensimmäisenä elementtinä on alkuperäinen sana, toisena sen perusmuoto, kolmantena sanaluokan tunniste (esim. n, adv tai v) ja neljäntenä taivutusmuodon tunniste (esim. ind, nom tai gen). Mikäli sanamuotoa ei tunnistettu, muut elementit kuin ensimmäinen ovat kysymysmerkkejä ?.

Koska tällaista on huomattava vaiva tehdä muille kuin isoloiville kielille, kannattaa käyttää esimerkkikielenä vaikkapa englantia (tai kiinaa?). Taggaamisessa kannattaa ehkä käyttää apuna hajautusta, jonka avaimia ovat sanamuodot ja arvoina sanamuotoja vastaavat tiedot.

tietorakenteiden avuke verbeille

Tehkäämme edellisen kohdan taggeria varten apufunktio, joka ottaa argumentikseen merkkijonon (säännöllisen verbin perusmuodon) ja hajautuksen. Funktio ei palauta mitään, mutta lisää hajautukseen tiedot verbin eri sanamuodoista. Esimerkiksi näin:

>>> tags
{'saw': ['see', 'v', 'ind past']}
>>> add_verb('love', tags)
>>> tags
{'love': ['love', 'v', 'ind pres'], 'loved': ['love', 'v', 'ind past'],
'saw': ['see', 'v', 'ind past'], 'loving': ['love', 'v', 'ger']}

Eli siis add_verb lisäsi tags-hajautukseen sanamuodot love, loved ja loving.

tietorakenteiden avuke substantiiveille

Tee myös apufunktio substantiiveja varten. Jos olet iloisella päällä, voit ottaa myös huomioon johdoksia kuten clueless.

Hae laitoksen sivuilta:

Yleisen kielitieteen laitos | Humanistinen tiedekunta | Helsingin yliopisto
Copyright © 2003-2004 Helsingin yliopisto. Kaikki oikeudet pidätetään.