Proč by vyhledání „ucet“ mělo najít i „účet“

Psát rychle bez diakritiky, o které víte, že tam patří, je běžné. Dobré vyhledávání dokumentů by Vás za to nemělo trestat — zde je srozumitelné vysvětlení, jak to funguje, se skutečnými příklady ve čtyřech jazycích.

Problém: jedno znaménko, dva způsoby zápisu slova

Mnoho jazyků označuje písmena čárkou, háčkem, kroužkem nebo ligaturou a tím mění jejich výslovnost: á, é, ě, š, č, ř, ž, ů v češtině, ä, ö, ü, ß v němčině, é, è, ç ve francouzštině, á, é, í, ó, ú, ñ ve španělštině. Na klávesnici telefonu přepnuté do angličtiny nebo při rychlém psaní zpaměti snadno znaménko vynecháte: napíšete ucet , i když je v dokumentu ve skutečnosti účet, české slovo pro účet či vyúčtování. Pro vyhledávací systém, který porovnává znaky přesně, jde o dva různé řetězce a hledání jednoho nenajde dokument obsahující pouze druhý.

Řešení: odstranění diakritiky při porovnávání

Základní myšlenka je jednoduchá: před porovnáním dvou částí textu z obou odstraňte diakritiku — čárky, háčky i cedilly — a porovnejte, co zůstane. „Folding“ je odborný termín pro převedení písmene se znaménkem, například á na jeho základní podobu, a. Dělejte to důsledně u slov, která zadáváte, i u slov uložených v indexu a výrazy ucet a účet se stanou stejným vyhledávacím výrazem bez ohledu na to, který jste právě napsali a který je skutečně na stránce. Jde o zavedenou techniku textového vyhledávání obecně, nikoli o něco specifického pro jednu aplikaci; stejná myšlenka stojí za tím, že vyhledávač najde „cafe“, když stránka obsahuje „café“.

Odstranění diakritiky má i nevýhodu, kterou je dobré pojmenovat: při hledání považuje dvě podoby zápisu za stejné, takže se občas najde i úplně jiné slovo, které po odstranění znamének vypadá stejně. Čeština nabízí jasný příklad: smlouva (dohoda) a smlouvá (vyjednává, slovesný tvar) jsou různá slova, nikoli totéž slovo s přidanou čárkou — po odstranění diakritiky z obou však může hledání jednoho zobrazit i dokument obsahující druhé. To je kompromis výměnou za to, že Vám kvůli chybějící čárce neuniknou skutečné shody.

Další problém: němčina tvoří slova jejich spojováním

Němčina (a v menší míře i další zde uvedené jazyky) tvoří dlouhá složená slova přímým spojováním kratších bez mezery. Výpověď nájemní smlouvy je Mietvertragskündigung, což je slovo složené ze slov Mietvertrag (nájemní smlouva) a Kündigung (výpověď) spojených spojovacím „s“. Vyhledávací index, který porovnává jen celá slova, nenajde Vertrag uvnitř Mietvertragskündigung, přestože právě smlouvu hledáte.

Spolupracují tu dvě techniky, každá důležitá z jiného důvodu. První je shoda začátku slova: zadání Vertrag najde také každé slovo začínající na Vertrag, a proto samo o sobě najde Vertragsunterlagen (smluvní dokumenty). To však nepomůže se slovem Mietvertragskündigung, protože Vertrag není jeho začátek — tím je Miet . Pro takový případ vyhledávání přejde na porovnání podřetězců, které zkusí teprve tehdy, když shoda začátku nic nenajde. Právě tento náhradní postup umožní najít Vertrag uvnitř složeného slova kdekoli, nejen na začátku.

Příklady ve čtyřech jazycích

  • Čeština: zadání ucet najde účet (účet nebo vyúčtování); zadání vyuctovani najde vyúčtování (vyúčtování energií).
  • Němčina: zadání Vertrag najde Vertragsunterlagen; zadání Grundstuck najde Grundstück (pozemek).
  • Francouzština: zadání deces najde décès (úmrtí, například na úmrtním listu); zadání francais najde français.
  • Španělština: zadání camion najde camión (nákladní auto); zadání informacion najde información.

Stejná myšlenka funguje i opačně: pokud zadáte diakritiku správně, vyhledávání přesto najde verzi dokumentu, v níž byla rozpoznána bez ní. To se může stát, když je sken nevýrazný nebo rozpoznávání přehlédne drobné znaménko nad písmenem.

Nejde jen o to, jak píšete

Dosud šlo o rozdíl mezi tím, co zadáváte, a tím, co je v dokumentu. Existuje ještě druhý, méně nápadný rozdíl: samotné rozpoznávání textu nemusí diakritiku vždy přečíst správně. Nevýrazný sken, fotka s nízkým rozlišením nebo neobvyklé písmo mohou ztížit odlišení drobného znaménka nad písmenem od skvrny či stínu a rozpoznávání jej může vynechat, přestože člověk by stejnou stránku přečetl bez potíží. V takovém případě v rozpoznaném textu uloženém pro dokument znaménko chybí bez ohledu na to, jak pečlivě zadáte hledaný výraz. Odstranění diakritiky pomáhá i zde stejným způsobem: pokud vyhledávání odstraní diakritiku i z porovnávaného textu, správně napsané účet stále najde stránku, jejíž rozpoznaný text obsahuje ucet. Jinými slovy Vás tento krok chrání před chybami na obou stranách vyhledávacího pole, nejen před tou, kterou můžete udělat při psaní.

Jak to používá vyhledávání Pocket Aurora Papers

Offline vyhledávání Pocket Aurora Papers při porovnávání odstraňuje diakritiku a hledá ve dvou průchodech: nejprve porovnává začátky slov a teprve pokud nic nenajde, přejde na porovnání podřetězců. Díky tomu se najde i slovo ukryté uprostřed německé složeniny. Oba průchody se testují na vyhledávacím korpusu pokrývajícím všech pět jazyků rozpoznávání: angličtinu, češtinu, němčinu, francouzštinu a španělštinu. Vše běží přímo v zařízení stejně jako rozpoznávání textu, které vůbec umožňuje naskenovanou stránku prohledávat. Vlastní rozhraní aplikace je zatím pouze anglicky; dalším čtyřem jazykům rozumí vyhledávání, nikoli nabídky a tlačítka.

Chcete si ji vyzkoušet?

Napíšeme Vám, až bude co vyzkoušet, a před uvedením se zeptáme, na čem Vám nejvíc záleží.

Přidat se na čekací listinu