Boolen haut Tiedonhakumenetelmät Rankkaukseen perustuva tiedonhaku Boolen haussa dokumentti joko täyttää hakuehdon tai ei täytä hakuehtoa Hakuehdon täyttäviä vastauksia voi olla runsaasti (tuhansia - miljoonia) Ehto liian väljä, käytetään OR-liitoksia hyvin vähän Ehto liian tiukka, käytetään AND-liitoksia Sopivankokoisen tuloksen tuottavan kyselyn laatiminen on hankalaa Kaikki tulosdokumentit ovat yhtä arvokkaita Tuloksella ei ole järjestystä 1 Hakutulosten järjestämistä hyödyllisyyden/soveltuvuuden mukaan Dokumentit eivät ole samanarvoisia hakutuloksessa Varsinainen arvo on käyttäjän päätettävissä, mutta arvoa voi estimoida Palautetaan tuloksena vain soveltuvimmiksi arvioidut (huippu) Edellytyksenä rankkausjärjestelmän toimivuus: relevantimmat dokumentit rankataan korkeammalle kuin vähemmän relevantit Vapaamuotoinen kysely: Kysely muodostuu yhdestä tai useammasta luonnollisen kielen sanasta Ei operaattoreita, ei järjestysmääreitä, ei kyselykieltä Sanojen esiintyminen dokumentissa ja kyselyssä vaikuttaa osuman ja tuloksen arvon määritykseen 3 4 Dokumentille annetaan paremmuusarvo (ranking) suhteessa kyselyyn kuvaa sitä miten hyvin dokumenttivastaa kyselyä luku välillä [0,1] (0 ei lainkaan, 1 täysin) Yhden termin kyselyt Jos kyselytermi ei esiinny dokumentissa pitäisi rankingin olla 0. Mitä useammin termi esiintyy sitä korkeampi pitäisi rankingin olla. 5 6 H.Laine 1
Jaggardin kerroin Yleisesti käytetty mitta kahden joukon päällekkäisyydelle Tarkastellaan joukkoja A ja B Jaccard(A,B)= A B / A B (A0, B0) Leikkauksen ja unionin kardinaalisuuksien suhde Esim: A= Ides of March ; B= Caesar died in March Jaccard (A,B) = 1/6 Ei huomioi termin esiintymismääriä Ei huomioi sitä, että harvinaiset termit ovat informatiivisempia kuin yleiset Termin frekvenssi= montako kertaa termi t esiintyy dokumentissa d (tf t,d ) Ei ota kantaa termien järjestykseen Pekka on Jussia pahempi Jussi on Pekkaa pahempi Bag of words model Samat frekvenssit 7 8 Voidaan ajatella, että jos termi esiintyy useammin dokumentissa, niin dokumentti on relevantimpi kuin sellainen, jossa se esiintyy harvemmin Ei kuitenkaan suoraan suhteessa frekvenssiin 1000 kertaa vs 10 kertaa ei ole 100 kertaa parempi Logaritminen esiintymäfrekvenssiin perustuva painomitta w t,d = 1+ log 10 tf t,d, jos tf t,d >0; muuten 0 tf t,d w t,d : 0 0, 1 1, 2 1.3, 10 2, 1000 4, etc. Termin esiintymisfrekvenssi n tarkastelu ei ota huomioon termin yleisyyttä tai harvinaisuutta Harvinaiset termit informatiivisempia, ja dokumentit, jotka sisältävät harvinaisen hakutermin, ovat todennäköisesti relevantteja vaikka termit eivät esiintyisi kovin usein Yleisesti esiintyvät hakutermit dokumentissa vaikuttavat positiivisesti, mutta vähemmän kuin harvinaiset Kyselyn q ja dokumentin d yhteensopivuusmitta match_score(q,= tqd (1+ log 10 tf t,d ) [yhteisten termien painojen summa] 9 10 Dokumenttifrekvenssi = termin t sisältävien dokumenttien määrä df t Dokumenttifrekvenssi on termin t informatiivisuuden käänteisarvo Termin paino kokoelmassa (inverse document freqency) idf t = log 10 (N/df t ), missä N on kokoelman dokumenttien lukumäärä Harvinaisille iso, yleisille pieni Esimerkki: 1M dokumenttia termi df t idf t calpurnia 1 6 animal 100 4 sunday 1,000 3 fly 10,000 2 under 100,000 1 the 1,000,000 0 11 12 H.Laine 2
Vektorimalli tiedonhakuun Termin yleisyyteen suhteutettu paino dokumentissa (merkitään myös tf-idf) tf.idf t,d = tf t,d idf t = (1+log tf t,d ) log(n/df t ) On suurimmillaan, kun termi esiintyy useasti pienessä joukossa dokumentteja Pienenee, jos termi esiintyy harvemmin dokumentissa tai useammissa dokumenteissa On pienin, kun termi esiintyy lähes kaikissa dokumentissa On yleisimmin käytetty painomitta Boolen mallissa kuhunkin dokumenttiin ajateltiin liittyvän t-paikkainen vektori, joka kuvasi dokumentin sisältöä suhteessa kuhunkin sanaston termiin (t=sanaston termien lukumäärä), arvot 0 tai 1 0 ei esiinny, 1 esiintyy Kun halutaan tarkastella sitä, miten hyvin termit kuvaavat dokumenttia voidaan kuvausvektorissa käyttää termien painoja ts. kuhunkin dokumenttiin liittyy t-paikkainen vektori, jonka kuhunkin dimensioon (termiin) liittyvä arvo ilmaisee termin painon dokumentissa. Painoina voidaan käyttää tf.idf -painoja 13 14 Vektorimalli Vektorimalli / kyselyn käsittely Esimerkiksi: Antony and Cleopatra Julius Caesar The Tempest Hamlet Othello Macbeth Antony 5.25 3.18 0 0 0 0.35 Brutus 1.21 6.1 0 1 0 0 Caesar 8.59 2.54 0 1.51 0.25 0 Calpurnia 0 1.54 0 0 0 0 Cleopatra 2.85 0 0 0 0 0 mercy 1.51 0 1.9 0.12 5.25 0.88 worser 1.37 0 0.11 4.15 0.25 1.95 Kyselyyn käsittely: dokumentin sisältö kuvataan vektorina t-ulotteisessa termiavaruudessa tarkastellaan myös kyselyä vektorina t-ulotteisessa termiavaruudessa rankataan dokumentit sen perusteella miten lähellä kyselyvektori on dokumenttivektoria Miten mitataan läheisyys? dimensiot vektori tf.idf paino (tai jokin muu paino) 15 16 Vektorimalli / kyselyn käsittely Kosini Läheisyyden mittana voidaan käyttää vektoreiden välistä kulmaa Jos kulma on pieni, dokumentti on lähellä kyselyä Jos kulma suuri, dokumentti on kaukana Kulman koko voidaan ilmaista kulman kosinina Välillä 0-180 kosini pienenee kulman kasvaessa (1-1) Suuri kosiniarvo ilmaisee dokumentin olevan lähellä kyselyä ja pieni kaukana kyselystä 17 18 H.Laine 3
Kosinin laskenta Kosinin laskenta Miten kosini lasketaan? Kahden vektorin pistetulo on vektorien pituuksien ja niiden välisen kulman kosinin tulo eli q d q d Tästä saadaan q d q d Vektorin pituus v joten t i 1 x 2 i t q i id 1 i t 2 t qi d 2 i1 i1 i Jos tarkastellaan pituusnormalisoituja yksikkövektoreita q ˆ d qˆ ja d voidaan kosini esittää muodossa q d qˆ dˆ 19 20 Miten samankaltaisia ovat teokset SaS: Sense and Sensibility(J. Austin) PaP: Pride and Prejudice (J. Austin) WH: Wuthering Heights (E. Bronte) Tarkastellaan vain neljää termiä: affection 115 58 20 jealous 10 7 11 gossip 2 0 6 wuthering 0 0 38 21 Termien esiintymäfrekvenssit 22 Lasketaan painot esiintymäfrekvenssien perusteella ilman dokumenttifrekvenssiskaalausta eli w t,d =1+log tf t,d affection 3.06 2.76 2.30 jealous 2.00 1.85 2.04 gossip 1.30 0 1.78 wuthering 0 0 2.58 affection 0.789 0.832 0.524 jealous 0.515 0.555 0.465 gossip 0.335 0 0.405 wuthering 0 0 0.588 Tehdään pituusnormalisointi affection 0.789 0.832 0.524 jealous 0.515 0.555 0.465 gossip 0.335 0 0.405 wuthering 0 0 0.588 cos(sas,pap) = 0.94 cos(sas,wh) = 0.79 cos(pap,wh) = 0.69 23 24 H.Laine 4
Kysely vektorina Kyselyn käsittely Kysely vektorina : Olkoon kysely = {jealous gossip} Vektorina edellisen esimerkin aineistoon tämä olisi q= (0,1,1,0) ja pituusnormalisoituna (0, 0.707, 0.707, 0) affection 0.789 0.832 0.524 jealous 0.515 0.555 0.465 gossip 0.335 0 0.405 wuthering 0 0 0.588 q 0 0.707 0.707 0 0.600 0,392 0.615 läheisyysmitta 25 26 Erilaisia painotuksia Kysely vs dokumentit Erilaisia tapoja painottaa dokumentteja ja kyselyitä menetelmän tunnus Tarkastellaan dokumenttia:{car insurance auto insurance} ja kyselyä {best car insurance} Term Query Document Prod tfraw tf-wt df idf wt n lize tf-raw tf-wt wt n lize auto 0 0 5000 2.3 0 0 1 1 1 0.52 0 best 1 1 50000 1.3 1.3 0.34 0 0 0 0 0 car 1 1 10000 2.0 2.0 0.52 1 1 1 0.52 0.27 insurance 1 1 1000 3.0 3.0 0.78 2 1.3 1.3 0.68 0.53 Käytettävä tekniikka => ddd:qqq Dokumentteihin sovellettavat Esim: lnc:ltc (yleisesti käytetty) Kyselyihin sovellettava Painona idf tai 0 jos ei esiinny kyselyssä logaritminen 0.80 27 28 Vektorimallin mukaiset tiedonhaut Esitä kysely termien painovektorina Esitä dokumentit termipainoista muodostuvina vektoreina Laske kyselyn ja dokumentin vastaavuutta kuvaavaksi mitaksi kyselyvektorin ja dokumenttivektorin välisen kulman kosini Valitse K suurimman mitta-arvon tuottanutta dokumenttia hakutulokseen 29 H.Laine 5