[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!