Tiedonhaku

Tiedonhaku (engl. information retrieval) on tietojenkäsittelytieteen osa-alue, jossa tutkitaan tiedon esittämisen, tallettamisen ja etsimisen prosesseja, joita tarvitaan, jotta haluttu tieto saadaan hakutehtävän esittäneen ihmisen käyttöön. Tietoa ja tiedonhakua tutkii myös informaatiotutkimus. Tiedonhaun tutkimuksen perimmäisenä tavoitteena on kehittää  muun muassa järjestelmiä, joiden avulla tieto saadaan helposti sitä tarvitsevan ulottuville mahdollisimman hyödyllisessä muodossa.
Tiedonhakua suoritettaessa tiedonhakija esittää hakutehtävänsä kyselynä, joka laaditaan tiedonhakujärjestelmän kysely- tai hakukielen avulla. Tiedonhaun tavoitteena on tyydyttää tiedon tarve ja tiedonhaussa pyritään löytämään tiedontarpeen mahdollisimman hyvin tyydyttävä dokumentti tai dokumenttien joukko. Löydettävien dokumenttien tulee olla rakenteensa, sisältönsä ja ulkoasunsa puolesta tiedontarvitsijoille hyödyllisiä. Tähän tavoitteeseen on vielä mahdotonta päästä nykyisten tiedonhakujärjestelmien avulla. Tiedon tallennus- ja hakujärjestelmät ovatkin tällä hetkellä yksinkertaisia järjestelmiä, joiden tuloksellinen käyttö edellyttää älykkäitä käyttäjiä.

Tiedon tallentamisen ja tiedonhaun tasoperiaate

Tiedonhaussa hakukyselyt ja niiden kohteina olevat dokumentit voidaan esittää kolmella tasolla: käsitetasolla, ilmaisutasolla ja merkkijonotasolla. Ensinnäkin dokumentit koostuvat merkkijonoista, jotka esittävät luonnollisen kielen ilmaisuja. Nämä ilmaisut puolestaan edustavat dokumentin käsitteellistä sisältöä. Vastaavasti tiedonhakijan tiedontarpeella on käsitteellinen sisältö, joka voidaan ilmaista luonnollisella kielellä ja esittää hakukyselyssä kirjoitusmerkkien avulla.
Käsitetasolla tarkastellaan hakukyselyn ja kohdedokumenttien sisältämiä käsitteitä ja näiden välisiä suhteita. Tiedon tallennuksessa ja tiedonhaussa käsiteanalyysiä pidetään usein tarpeellisena välivaiheena ennen dokumentin tai hakukyselyn muotoilua indeksointitermeiksi tai lopulliseksi hakukyselyksi. Käsitteellistä sisältöä ei voida välittää suoraan, vaan tekijä ilmaisee sen aina luonnollisen kielen  avulla. Ilmaisutasolla eli kielellisellä tasolla tarkastellaan käsitteiden muotoilua ilmaisuiksi luonnollisessa kielessä tai jossain keinotekoisessa erikoiskielessä, kuten dokumentaatiokielessä.  Hakukyselyn käsitteiden esityksiä kutsutaan ilmaisutasolla hakuavaimiksi. Esiintymätaso on aina läsnä tiedonhaussa. Tietotekniikkaa hyödyntävä tiedonhaku tapahtuu aina esiintymätasolla, koska tietokoneet käsittelevät vain merkkijonoja eivätkä ne ymmärrä luonnollista kieltä.

Tiedonhakujärjestelmä

Tiedonhakujärjestelmä on elektronisten tietoyksiköiden tallentamiseen, etsintään, jälleenhakuun ja jakeluun käytettävä järjestelmä, jossa käytetään tietokantoja. Tiedonhakujärjestelmää käytettäessä käyttäjälle haetaan automaattisesti hänen tiedontarvettaan vastaavaa tietoa laajasta tietovarastosta. Tiedonhakujärjestelmän tarkoitus on tyydyttää tiedonhakijan tiedontarpeita etsimällä ja löytämällä tietoa annetusta aiheesta. Vaikka tiedonhakujärjestelmä hakee konkreettisesti tietoa esimerkiksi elektronisista teksteistä tai kuvista, järjestelmä pyrkii tietoyksiköiden pintarakenteiden sijaan löytämään niihin sisältyvää informaatiota.
Tiedonhakujärjestelmän määritelmään sisältyy hyvin erilaisia järjestelmiä. Niitä ovat esimerkiksi väestörekisteri, kirjaston tietokanta, elektroninen artikkelitietokanta ja Googlen ja Yahoon kaltaiset verkossa toimivat hakukoneet. Informaatiotutkimuksen alalla tiedonhakujärjestelmän ollessa kyseessä tietoyksiköillä tarkoitetaan yleensä tekstidokumentteja tai niitä kuvaavia kirjallisuusviitteitä tai toisaalta hypermediadokumentteja.
Käyttäjän kannalta tiedonhakujärjestelmän näkyvin ja tärkein osa on sen hakukieli ja käyttöliittymä. Hakutapahtuma alkaa aina tiedonhakijan tiedontarpeesta ja tietämyksestä. Tiedonhakija ilmaisee tämän tiedontarpeensa hakukyselynä, joka jäsennetään tiedonhakujärjestelmän käyttöliittymässä järjestelmän käyttämän kyselykielen mukaiseksi. Sitten tiedonhakujärjestelmä tulkitsee kyselyn algoritmiksi, joka kohdistetaan haluttuihin tietokantoihin. Haun tuloksena tiedonhakija saa listan hänen hakukyselynsä kriteerit täyttävistä ja tiedontarvetta vastaavista dokumenteista.

Täydellinen täsmäytys

Täydellisessä täsmäytyksessä käytetään englantilaisen matemaatikon George Boolen kehittämää Boolen logiikkaa. Boolen logiikassa käytetään operaattoreita AND, OR ja NOT. AND-operaattoria käytettäessä saadaan tulokseksi hakusanat yhdistäviä dokumentteja, esimerkiksi haulla ”hevoset AND ponit” saadaan tulokseksi dokumentteja, jotka käsittelevät sekä hevosia että poneja. OR-operaattoria käytettäessä saadaan tulokseksi dokumentteja, jotka käsittelevät jompaakumpaa annetuista hakusanoista, esimerkiksi haulla ”hevoset OR ponit” saadaan tulokseksi kaikki joko hevosia tai poneja käsittelevät dokumentit. NOT-operaattoria käytetään haluttaessa erottaa hakusanoja toisistaan, esimerkiksi haulla ”hevoset NOT ponit” saadaan tulokseksi hevosia käsittelevät dokumentit, mutta poneja käsittelevät dokumentit jäävät tulosten ulkopuolelle. Täydellisessä täsmäytyksessä voidaan yhdistellä operaattoreita, jos halutaan käyttää useampia hakusanoja. Tällöin operaattorien suoritusjärjestys on NOT, OR, AND.

Osittaistäsmäytys

Osittaistäsmäytyksessä hakutulos pyritään järjestämään relevanssijärjestykseen eli niin, että hakua parhaiten vastaava dokumentti olisi hakutuloksissa ensimmäisenä ja toiseksi parhaiten vastaava dokumentti toisena jne. Eri osittaistäsmäytystä käyttävät hakujärjestelmät perustuvat erilaisiin menetelmiin, joita ei aina haluta paljastaa, joten hakija ei välttämättä tunne osittaistäsmäyttävän hakujärjestelmän toimintaperiaatteita yhtä hyvin kuin täystäsmäyttävän hakujärjestelmän. Erilaisia osittaistäsmäytyksen menetelmiä ovat muun muassa vektorimalliin, sumeisiin joukkoihin ja todennäköisyyslaskelmiin perustuvat mallit. Osittaistäsmäyttävien hakujärjestelmien perusperiaatteena on että kyselyssä esiintyville hakusanoille lasketaan dokumenttikohtainen paino eli luku, joka kuvaa sitä kuinka hyvin hakusana kuvaa löydettyä dokumenttia. Hakusanojen saamien painojen perusteella lasketaan dokumentille arvo, jonka mukaiseen relevanttiusjärjestykseen löydetyt dokumentit järjestetään. Monessa osittaistäsmäyttävässä hakujärjestelmässä on käytössä myös Boolen operaattorit, mutta niiden tulkinta saattaa olla löyhempi kuin täystäsmäyttävissä hakujärjestelmissä.

Hakusanojen katkaiseminen ja merkkien korvaaminen

Tiedonhaussa sanojen taipuminen ja yhdyssanat voivat aiheuttaa ongelmia, joita on pyritty ratkaisemaan kehittämällä hakujärjestelmiin mahdollisuus katkaista hakusanoja ja korvata merkkejä katkaisumerkillä. Eri hakujärjestelmissä on omat katkaisumerkkinsä, kuten asteriski (*), ristikkomerkki (#) tai kysymysmerkki (?). Lisäksi monesti voidaan käyttää läheisyysoperaattoria.
Katkaisu vasemmalta
Sanan alusta eli vasemmalta tapahtuva katkaisu on käytössä vain harvoissa hakujärjestelmissä. Haulla #koira saadaan tulokseksi pelkän koiran lisäksi esimerkiksi myös muodot opaskoira, ajokoira, sylikoira.
Katkaisu oikealta
Sanan lopusta eli oikealta tapahtuva katkaisu on yleisin sanankatkaisumuoto. Haulla talous# saadaan tulokseksi esimerkiksi myös talouselämä, talousarvio, talousrikokset, taloustieteet.
Merkkien korvaaminen
Merkkien korvaamisessa katkaisumerkillä korvataan jokin sanan merkeistä sanan sisältä. Esimerkiksi haulla col#r tulee tulokseksi sekä muodossa color että colour olevat saman sanan eri kirjoitusasut.
Läheisyysoperaattori
Tällä tavalla voidaan hakea tuloksia, joissa haetut sanat esiintyvät toistensa läheisyydessä.

Tiedonhaun ongelmia

Tiedonhaun keskeinen ongelma on luonnollisen kielen monimuotoisuus ajatusten ilmaisussa. Luonnollisen kielen ominaisuudet pitää ottaa huomioon niin dokumenttien tallennuksessa, hakukyselyjen muotoilussa kuin myös hakutulosten arvioinnissa.
Seuraavat luonnollisen kielen piirteet, jotka aiheuttavat ongelmia tiedonhaussa, ovat yhteisiä kaikille kielille.
Ensimmäinen niistä on se, että luonnollinen kieli on vain osittain yhteistä saman kulttuurin jäsenille. Kielenkäyttäjät muodostavat useita erilaisia kielen alakulttuureja, jotka ilmenevät vaihteluna esimerkiksi sanastossa ja niiden taustalla olevissa käsitteissä. Tämän lisäksi kielenkäyttäjät muokkaavat kieltä tarkoituksiinsa sopivaksi, ja siten kieli kehittyy ilman tietoista suunnittelua monella eri taholla samanaikaisesti. Myös monitulkintaisuus on yksi luonnollisen kielen perusominaisuuksista, ja sen avulla kielenkäyttäjän on mahdollista muodostaa suuri määrä ilmaisuja pienellä määrällä alkioita.
Suomen kielessä tiedonhakuun liittyviä erityisiä ongelmia aiheuttavat muun muassa sanojen ja niiden vartaloiden taipuminen, yhdyssanat ja sanaliitot, sanojen johtaminen sekä monitulkintaisuus, erityisesti taivutusmuotohomografia (joka on esimerkki kielen homonymiasta, kuten sanoissa "hauissa" ja "puhelin").
Internetiin liittyvässä tiedonhaussa on myös monenlaisia ongelmia, koska internet-verkkoa ei ole alun perin rakennettu järjestelmällistä tiedonhakua ajatellen. Internetissä sijaitseva aineisto on hajautetusti tuotettua, globaalia ja vain harvakseltaan linkitettyä hypermediaa, ja sen vuoksi esimerkiksi dokumentin määrittely voi olla vaikeaa.  Oleellisia internet-tiedonhaun ongelmia ovat informaation suuri määrä ja sen järjestämättömyys. Lisäksi tiedon luotettavuuden ja ajantasaisuuden arviointi on usein vaikeaa, koska internet on vapaa julkaisukanava, mistä johtuen internet-sivujen julkaisutiedot ovat usein puutteelliset. Lisäksi tekijänoikeudet aiheuttavat käyttäjille usein ongelmia.

Aiherelevanssi

Aiherelevanssissa on nimensä mukaisesti kyse hakukysymyksen ja löydettyjen dokumenttien välisestä täsmäävyydestä. Aiherelevanssi ei kuitenkaan ota huomioon tiedontarvitsijaa ja onko löydetty dokumentti hänen näkökulmastaan relevantti. Aiherelevanssia voidaan testata määrittelemällä joukko hakukysymyksiä ja tunnistamalla tuloksista joukko dokumentteja jotka vastaavat hakukysymystä. Eri hakujärjestelmillä voidaan testata kuinka suuren osan relevanteista dokumenteista ne löytävät.

Käyttäjärelevanssi

Käyttäjä ei välttämättä kaipaa suurinta mahdollista hakutulosta vaan ainoastaan yksi tietty dokumentti saattaa kiinnostaa häntä. Käyttäjä saattaa etsiä tietyntyyppistä dokumenttia tai hänellä saattaa olla tehtävä, jonka suorittamiseksi hän etsii tietoa. Käyttäjä haluaa siis löytää dokumentteja, jotka ovat hänelle käyttökelpoisia ja hyödyllisiä. Käyttäjälle ennestään tutut dokumentit saattavat olla hänelle epärelevantteja, sillä ne eivät tuo hänelle mitään uutta tietoa eikä käyttäjän tiedontarve näin ollen tyydyty. Käyttäjärelevanssia on vaikeampi tutkia, sillä käyttäjän reaktioita ei voi toistaa laboratorio-olosuhteissa samalla tavalla kuin aiherelevanssia.

Saanti

Saanti kuvaa sitä, kuinka suuri osa tietokannan kaikista relevanteista dokumenteista löytyi. Saanti voidaan laskea jakamalla relevanttien dokumenttien määrä löydettyjen ja ei-löydettyjen relevanttien dokumenttien summalla. Saannin arviointi on vaikeaa ja ei välttämättä edes mahdollista sillä on hyvin vaikea tietää kuinka moni relevantti dokumentti jäi löydettyjen ulkopuolelle.

Tarkkuus

Tarkkuus kuvastaa sitä, kuinka suuri osa löydetyistä dokumenteista on relevantteja. Tarkkuus voidaan laskea jakamalla relevanttien dokumenttien määrä löydettyjen relevanttien ja epärelevanttien dokumenttien summalla. Tarkkuutta voi arvioida melko helposti käymällä läpi hakutuloksia ja erottelemalla niistä relevantit ja epärelevantit dokumentit.
Saanti ja tarkkuus ovat toisilleen vastakkaiset siten että saannin kasvaessa tarkkuus huonontuu ja päinvastoin. Hakija ei voi koskaan saavuttaa parasta mahdollista saantia ja parasta mahdollista tarkkuutta yhtä aikaa.