Tentti

Tänään suuntaan yliopistolle tenttimään osaamistani. Saas nähdä. Tulokset riippuvat oikeastaan täysin kysymyksistä. Jos paino on matematiikassa, on tentin läpäiseminen saavutus. Jos paino on teorioiden ymmärtämisessä suurinpiirtein, voin saada jopa hyvät arvosanat.

Toisesta tenttikirjasta löytyi mainiota lainattavaa (kts. aikaisempia kokemuksia). Puhe on netin hakukoneista, kuten AltaVista, Lycos ja Yahoo!: Such engines have largely been developed by people with little background or training in information retrieval. As a result, the search methods can be inefficient and ineffective. Näinköhän tämä pitää paikkansa enää tänä päivänä?

Tein lukujärjestyksen eilen illalla. Syksyn ohjelma näyttää melko siedettävältä. 22 opintoviikkoa, joista tosin noin seitsemän kirjatentteinä – infon syventäviä kursseja kun ei järjestetä. Kandin paperit voisin saada siis loppuvuodesta. Keväällä pitäisikin sitten aloitella gradun tekoa…

Tenttikirja

Mitä pitäisi ajatella tenttikirjan luvusta, jonka alussa lainataan Dantea:

All hope abandon, ye who enter here.

Kuinka ollakaan, hyppäsin sen luvun lopun ja seuraavan luvun ylitse ihan suosiolla. Todennäköisyyslaskenta ja logiikka saavuttivat sellaiset mittasuhteet, että muistiinpanoissani ei ollut enää mitään tolkkua. Kun ei ymmärrä niin ei ymmärrä, minkäs sille voit…

Keskiviikkopelejä

Poikkesin taas Klubilla keskiviikkopelaamassa. Tarkempaa raportaasia voi lukea Gameblogista. Kävin menomatkalla postissa viemässä huutokaupattuja levyjä postiin – viime aikoina tavaraa on käynyt kaupaksi varsin hyvin. Kokoelmissa on silti yli 500 levyä, joten ihan heti eivät lopu kesken. Sen verran on kuitenkin kauppaa käyty, että ostin eilen uuden kuplamuovirullan. Loistava hankinta olikin!

Poikkesin Johannaa moikkaamassa, kun ei ollut mokoma viestiini aamulla vastannut. Vaan sepäs olikin harjoitteluperehdytyksessä. Koputtelin siis turhaan työhuoneen ovella, mutta kun olin poistumassa, sieltähän Johanna saapuikin paikalle! Loistava ajoitus, siis! Päivä pelastui! Näin Lauraakin, kun tämä poikkesi Klubilla lounastamassa. Ystävällistä. Puhetta oli syksyn opinnoista; saapa nähdä, saataisiinko Laurasta kolmas jäsen minun ja Johannan Tietojärjestelmien perusteet -harkkatyöryhmään.

Niinjoo ja Laura: kun sanoin, että minulla on 50-60 opintoviikkoa tietojenkäsittelyoppia, tarkoitin tietysti, että niitä on 35 😉 – siihen nyt tulee väistämättä ainakin viisi ja todennäköisesti enemmänkin lisää, joten on mahdollista, että pääsen siihen 50 ov:oon ennenkuin valmistun.

Pistetääs nyt iloksenne Mikon tutkinto tähän mennessä: Informaatiotutkimus: 59.0, Englannin kieli: 2.0, Ruotsin kieli: 2.0, Saksan kieli: 4.0, Suomen kieli: 2.0, Filosofia: 2.0, Tilastotiede: 3.0, Tulevaisuuden tutkimus OK: 1.0, Valtio-oppi: 2.0, Sosiologia: 2.0, Yleinen kirjallisuustiede: 10.0, Tietojenkäsittelyoppi: 35.0, Muut opinnot: 1.0 – Opintoja yhteensä: 125.0. Kolmea kurssia vaille kandi!

Text retrieval and filtering

Aamupäivästä kaksi ja puoli tuntia meni kouluhommissa. Tajusin viikonloppuna että minulla on noin kaksi viikkoa aikaa ennen kesän toista kirjatenttiä (informaatiotutkimuksen So1c eli Tiedonhaun matemaattiset menetelmät – ensimmäinen kurssini pääaineen syventäviä). Niinpä lukuaikataulu on melko kiivas, pari lukua päivässä pitäisi selvittää.

Tänään urakka alkoi Robert M. Loseen kirjalla Text Retrieval And Filtering, jossa käsitellään erilaisia analyyttisiä malleja tekstin hakuun ja suodattamiseen liittyen. Tänään käsittelemieni lukujen aiheena olivat kvantitatiiviset järkeilymallit ja samankaltaisuuden vaikutus hakupäätöksiin. Igh. Aihe oli yllättävänkin mielenkiintoista. POPFileä jo jonkun aikaa hyvällä menestyksellä käyttäneenä oli kiinnostavaa tutustua Bayeslaisiin metodeihin. Samankaltaisuusosastolla on tuttua vektorimallia ja Boolen logiikkaa, mutta myös hieman syvällisempää juttua.

Bayesistä vielä. Kyse on siis siitä, että voidaan tehdä arvauksia dokumenttien relevanssista eli hyödyllisyydestä. Tiedonhaussa siis siitä, onko joku dokumentti hyödyllinen ja POPFileä käytettäessä siitä, mihin sankoon viesti pitäisi lajitella. Bayesin metodeja käyttäen voidaan laskea, mikä on todennäköisyys, että dokumentti on relevantti, jos siinä esiintyy termi x. Menetelmä on itse asiassa varsin yksinkertainen.

P(x) tarkoittaa tapahtuman x todennäköisyyttä. P(x|y) tarkoittaa tapahtuman x todennäköisyyttä, jos ehto y on voimassa. P(relevantti|termi x) on siis todennäköisyys, jolla dokumentti on relevantti, jos termi x esiintyy dokumentissa. Jos tiedettäisiin kaikkien tietokannassa olevien dokumenttien relevanssi, mitään ongelmaa ei olisi. Koska tällaista tietoa ei kuitenkaan ole, joudutaan turvautumaan arvioihin aikaisemman tiedon pohjalta. Lähdeaineistona käytetään siis aikaisemmin haettujen dokumenttien relevanssia. POPFile esimerkiksi pitää kirjaa siitä, mitä sanoja eri sankoihin kuuluvissa dokumenteissa on käytetty. Mitä enemmän tietoa kertyy, sitä tarkempia arvioita voidaan tehdä.

Mutta, kaava peliin: P(relevantti|termi x) = P(termi x|relevantti) P(relevantti) / P(termi x). P(termi x|relevantti) on siis todennäköisyys, jolla termi x esiintyy, jos dokumentti on relevantti. Tämä on helppo laskea. Samoin todennäköisyydet P(relevantti) (relevanttien dokumenttien osuus kaikista) ja P(termi x) (termi X:n esiintyminen dokumenteissa).

Selvennän asiaa esimerkillä. Käytettäköön esimerkkinä vaikkapa spämmiä lajittelevaa järjestelmää. Tietokannassa on 100 viestiä, joista 20 ei ole spämmiä (negatiivinen, mutta totuudenmukainen lähtökohta). Termi x (sanotaan nyt vaikka sana "viagra") esiintyy 43 kaikista 80 spämmiviestissä ja kahdessa muussa viestissä. Järjestelmään saapuu nyt viesti, jossa sana "viagra" esiintyy. Voidaan siis laskea tämän tiedon pohjalta todennäköisyys, jolla kyseinen viesti on spämmiä.

P(spämmiä|"viagra") = P("viagra"|spämmiä) P(spämmiä) / P("viagra") = (43/80 * 80/100) / (45/100) = 0,96 eli sanan "viagra" esiintyminen leimaa viestin 96% todennäköisyydellä spämmiksi. Tietysti oikea järjestelmä summaisi todennäköisyyksiä hieman useamman sanan perusteella ja tekisi johtopäätöksensä siitä, mutta periaate on kuitenkin tämä.

Tarkoituksenani olisi kehitellä jossain vaiheessa huvin ja hyödyn vuoksi järjestelmä, joka lajittelisi OOOOO-postituslistalle saapuvat viestit kiinnostaviin ja epäkiinnostaviin. En nykyään jaksa lukea ko. listaa, mutta jos joku järjestelmä suodattaisi listaviesteistä kiinnostavat, voisin viestejä lukeakin. Onnistuisihan tuo POPFilellä, vaan en viitsi sotkea hyvin toimivaa järjestelmää uusilla luokitteluilla. Ja käyhän tuo koodausharjoituksesta, se kai lienee yhtä olennaista.

Saas nähdä, jos joku päivä innostun selittämään vektorimallia. Siitäkin pitäisi kehitellä oma käytännön toteutus joku päivä…

Lopuksi vielä päivän ohjelma: kirjastoon palauttamaan kirja, etsimään uusia ja lainaamaan Linux Journalin taannoinen numero, jossa oli artikkeli Bayesilaisesta suodattamisesta. Tiskausta, ruokailua, esseen kirjoittamista – sain Peltirummun vihdoin luettua ja Nuoren tytön päiväkirja on niin ikään melkein luettu.

Asioita

Pari tuntia kaupungilla tässä helteessä ei ole mikään iloinen asia. Sain kuitenkin hommani hoidettua, mikä lienee tärkeintä. Täydensin korttimuovivarastoa Fantasiapeleissä, kiertelin ja etsin Johannalle vuosipäivälahjaa (löysin sopivan lopulta – en kerro mitä, koska Johanna on blogin aktiivisin lukija), ostin mansikoita (kaksi litraa 2,5 euroa/litra) ja pari sitruunaa niiden seuraksi (italialainen keksintö, mainio onkin).

Niin, ja kävin katsomassa tietokantaohjelmoinnin tenttituloksen laitoksen seinältä. Kakkonen, eli ihan odotusten mukainen. Ilahduin hyvistä harkkatyöpisteistä (8,5 – paras, mitä kukaan oli saanut oli 9), arvostan harkkatyötä enemmän kuin tenttiä.

Tympii vain se, että jouduin laitoksella käymään, kun netissä on kuitenkin tenttitulospalvelu. Mutta toimistohenkilökunnan lomien vuoksi ei kuulemma ole saatu tuloksia nettiin. Tietojenkäsittelyopin muiden tenttien tuloksia on nettiin kuitenkin tullut, samoin kuin taideaineiden laitoksen kesätenttituloksia. Aika heikko selitys, sanon minä. Ei ole tosin ensimmäinen kerta, kun tietojenkäsittelyopin laitoksella tietojen käsittely tökkii.