next up previous contents
Next: Indeksointi Up: Hahmonsovitusalgoritmit Previous: Säännölliset lausekkeet   Sisältö

Likimääräinen hahmonsovitus

Aina ei ole mielekästä etsiä hahmon tarkkoja esiintymiä, vaan tekstistä pyritään löytämään tekstin osajonot, jotka ovat riittävän lähellä hahmoa $P$. Tekstihaussa tällaista hakua tarvitaan, kun haettavat avainsanat esiintyvät tekstissä taivutetussa muodossa tai kun samalla sanalla saattaa olla useita kirjoitusasuja. Jälkimmäinen tapaus esiintyy yleisesti silloin, kun haun suorittaja tuntee henkilön nimen ääntämisasun, mutta ei kirjoistusasua. Jotta tällaisia osajonoja voidaan hakea, tarvitaan mitta kahden merkkijonon samankaltaisuudella. Yleisimmin käytetty tällainen mitta on editointietäisyys. Kahden merkkijonon $A$ ja $B$ välisellä editointietäisyydellä tarkoitetaan pienintä editointioperaatioiden lukumäärää, joka tarvitaan muuttamaan merkkijono $A$ merkkijonoksi $B$. Editointioperaatioita ovat

Poisto:
$A$:n merkkiä $a_i$ ei vastaa mikään $B$:n merkki, $a_i \rightarrow \epsilon$.
Lisäys:
$B$:n merkkiä $b_j$ ei vastaa mikään $A$:n merkki, $\epsilon \rightarrow b_i$.
Muutos:
$A$:n merkkiä $a_i$ vastaa $B$:n merkki $b_j, a_i \not=
b_j, a_i \rightarrow b_j$. Muutosoperaatiot eivät saa mennä ristiin: jos $a_i \rightarrow b_j$ ja $a_{i'} \rightarrow b_{j'}$, niin $i < i'$ jos ja vain jos $j < j'$.

Likimääräinen hahmonsovitus on kokonaan oma merkkijonomenetelmien osajoukko. Sen soveltuvuusalue tekstihakuihin on kuitenkin rajattu ja käytännön tekstihaun sovelletuksissa sitä käytetään harvoin. Taivutettujen sanojen tapauksessa haku sanan alkuosan perusteella on yleensä riittävä hakukriteeri. Tapaukset, joissa sanalla on useita eri kirjoitusasuja, ovat harvinaisia, erityisesti suomenkielisessä tekstissä.


next up previous contents
Next: Indeksointi Up: Hahmonsovitusalgoritmit Previous: Säännölliset lausekkeet   Sisältö
Jani Jaakkola 2004-11-19