Huumorintajuista hakua

[viesti Survo-keskustelupalstalla (2001-2013)]

Kirjoittaja: Seppo Mustonen
Sähköposti:    -
Päiväys: 21.6.2004 13:13

Tämä on itse asiassa jatkoa otsikolla "Virheiden tunnistusta"
käymääni yksinpuheluun. Katson kuitenkin aiheen ansaitsevan
uuden, oman säikeensä.

Olen useasti kaivannut mahdollisuutta etsiskellä toimituskentässä
olevasta laajasta dokumentista jotain tietoa vailla aivan tarkkaa
muistikuvaa siitä, missä muodossa tietoon liittyvä avainsana esiintyy.
Vaikka tähänastiset hakutavat (esim. FIND ja hakunappi alt-F5)
tarjoavat kylliksi keinoja tavanomaisessa tiedon metsästyksessä,
ne ovat joskus liian tosikkomaisia - edellyttävät, että osaa hakea juuri
"oikeinkirjoitetussa" muodossa.

Sama puute näyttää vaivaavan yleensäkin ohjelmia. Jos Googlella
etsii verkosta tietoja sanalla "Kekkonen", tulee esille aivan erilaisia
tietoja kuin yrittämällä samaa sanalla "Kekkosen".
Vastaavasti jos englanninkielisessä Wordissa tutkii dokumenttia

This is Enlish.
Here we have Surgvo.

ei "Find and Replace" -toiminnon avulla löydä hakusanalla "English" tai
"Survo" mitään, vaikka optio "Sounds like (English)" on päällä.

Mielestäni Levenshteinin mitta, joka juuri otettiin käyttöön
komento- ja täsmennyssanojen tunnistuksessa, on mainio apu myös
"heuristisessa" tiedonhaussa.
Niinpä olen koemielessä laajentanut FIND-komennon toimintaa siten, että
panemalla hakusanan loppuun matomerkin (~) haku tapahtuu etsimällä
toimituskentästä komentorivin alapuolelta hakusanaa eniten muistuttava
sana. Panemalla hakusanan loppuun kaksi matoa (~~), haku tapahtuu
välittämättä siitä, käytettiinkö pieniä vai isoja kirjaimia.
Haku päättyy näyttämällä tuota parasta kohtaa toimituskentässä ja
ikkunan alareunassa kerrotaan, millä etäisyydellä löydetty sana on.
Samalla tarjotaan mahdollisuutta etsiä uusia vaihtoehtoja (napilla N).
Haku keskeytetään ENTERillä ja se päättyy automaattisesti, jos
etäisyys on suurempi kuin hakusanan pituus, koska silloin ei
mitään järkevää vastinetta ole löydetty. Jälkimmäisessä tapauksessa
palataan takaisin "lähtöruutuun".

Esim. jos kirjoitan komennon

FIND English~

toimituskentässä edellä olevan tekstin yläpuolelle ja aktivoin,
kenttä vierittyy alaspäin siten, että kohdistin näyttää rivin
"This is Enlish."
viimeistä sanaa ja ikkunan alla lukee

d=2   Next case by N!   Interrupt by ENTER!

Etäisyys 2 johtuu g-kirjaimen puuttumisesta ja siitä, että "Enlish"in
lopussa on ylimääräinen merkki (piste).

Samoin haku FIND Survo~ johtaa riville
"Here we have Surgvo."

FIND tarkastelee siis tässä "sanoina" välilyöntien erottamia
merkkijonoja, jolloin myös mm. pilkut ja pisteet katsotaan sanoihin
kuuluviksi. Vaihtoehtoisesti olisi mahdollista karsia tuollaiset
välimerkit, mutta se taas haittaisi tiettyjen teknisten merkkijonojen
etsintää. Saatan tässä asiassa muuttaa kantaani, mikäli "painostusta
ilmenee".
Huomattakoon vielä, että nämä "matohaut" sivuuttavat tarkat osumat
(Levenshteinin etäisyys = 0), koska ne on etsittävissä esim.
tavallisella FIND-komennolla tai hakunapilla.
Usein siis kannattaa aloittaa tarkalla FINDillä tai hakunapilla
askeltavasti. Jos toivottua asiaa ei löydy, siirrytään vasta sitten
heuristiseen matohakuun.

Matohaku on mukana SURVO MM:ssä versiosta 2.15 eteenpäin.

-Seppo

Vastaukset:

Survo-keskustelupalstan (2001-2013) viestit arkistoitiin aika ajoin sukrolla, joka automaattisesti rakensi viesteistä (yli 1600 kpl) HTML-muotoisen sivukokonaisuuden. Vuoden 2013 alusta Survo-keskustelua on jatkettu entistäkin aktiivisemmin osoitteessa forum.survo.fi. Tervetuloa mukaan!

Etusivu  |  Keskustelu
Copyright © Survo Systems 2001-2013. All rights reserved.
Updated 2013-06-15.