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…

Julkaistu
Kategoria(t): Koulu

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.

Julkaistu
Kategoria(t): Koulu

Paluu vuosipäivään

Nyt kun lahjat on annettu, voi ne paljastaa. Lahjoin Johannaa eilen uusimmalla Harry Potterilla, kun kerran Potterit ovat hyvää vauhtia edenneet. Olisin myös voinut hyvinkin harkita jotain hyvää TV-sarjaa DVD:llä, mutta Tampereen Filmifriikin valikoima ei vakuuttanut. Kirja oli hyvä valinta, reaktiosta päätellen.

Itse sain yllättäen, täysin odottamatta lahjaksi LeGuinin Birthday of the Worldin – oivallinen valinta. Lahjamme ovat usein varsin kirjallisia, mutta minkäs teet. Molemmat pidämme kovasti kirjoista, mutta olemme ehkä vähän laiskoja ostamaan kiinnostavia kirjoja itsellemme. Minulle ainakin on myös hieman vaikea ostaa mitään muuta. Johannalle on ehkä helpompaa keksiä jotain muuta kuin kirjoja.

Johanna lahjoo minua vielä tänä iltana ravintola-aterialla, sitä odotan innolla! Pitäisi varmaan tutkailla ravintolan ruokalistaa hieman etukäteen… Pihviä kuitenkin.

Mitäs muuta? Manu poikkesi kylässä hakemassa levynsä ja valittelemassa hellettä. Olin jättänyt Lord of the Rings: The Confrontationin valokuvaamisen jälkeen lojumaan pöydälle ja se herätti siinä määrin mielenkiintoa, että pelasimme pari erää. On se vain nerokas peli, ei voi muuta sanoa.

Aamua

Näin aamusta olen nauttinut Günter Grassin Peltirummusta, pelien valokuvaamisesta ja Dozerin lempeän raskaasta Call It Conspiracy -levystä. Ensimmäisen kohdalla nauttiminen tosin on kyseenalaista. Olkoon Euroopan sodanjälkeisen kirjallisuuden suurin mestariteos tai ei, Peltirumpu on tympeä.

Valokuvaamisen tuloksia saatte nähdä myöhemmin tänään.