Hlavní navigace

Má vyhledávač rovnou odpovídat?

7. 1. 2013
Doba čtení: 7 minut

Sdílet

 Autor: Seznam.cz
Česko zůstává vedle Ruska, Číny a Jižní Koreje čtvrtou zemí, kde domácí hráč nepřenechal Googlu vedoucí pozici ve vyhledávání – a jedinou, kde se používá latinka.

Střet mezi Googlem a Seznamem vedl k tomu, že obě strany musely investovat značné prostředky do práce s češtinou, a prospěch z toho mají uživatelé, protože vyhledávání v našem jazyce tak dnes patří k nejkvalitnějším na světě. Zeptali jsme se proto lidí ze Seznamu, jak těžké je vyhledávat v češtině.

Na otázky o souvisejících technologiích odpovídal Štěpán Škrob, product manager senior služby Vyhledávání, který v Seznamu pracuje již prakticky od jeho počátku a dnes se zabývá především indexovacím robotem (crawlerem). Doplňovali jej jeho kolegové Dušan Janovský z týmu zabývajícího se relevancí vyhledávání a Roman Dušek z týmu UI/frontend.

Čeština je oproti angličtině, u níž vývoj počítačové lingvistiky začínal, specifická například mnohem větším ohýbáním slov. Jedním z nástrojů, jak při vyhledávání tento problém řešit, je tzv. lemmatizátor– nástroj, který převádí hledaná slova na jejich základní tvar. Používáte ho? Nakolik je podle vašeho názoru nutný pro relevantní výsledky při vyhledávání v češtině?

Štěpán Škrob, seznam.czAno, používáme lemmatizátor, kromě toho i další nástroje specificky navržené pro češtinu: „oháčkovač“ textu pro práci s diakritikou, speciálně vyvinutý desambigulátor (nástroj pro jednoznačné rozpoznání) a pak samozřejmě slovníky (korpusy).

Představte si, že zadáte např. dotaz: raze del. „Oháčkovač“ pochopí, že můžete myslet „ráže děl“. Lemmatizátor určí základní tvar od slova „děl“. Jenže to může být jak „dít“, tak i „dělo“. Desambigulátor se pak z gramatického tvaru fráze/kontextu pokusí určit, o jakou variantu jde. To je samozřejmě jen příklad pro základní orientaci.

Používat přesně tyto zmíněné nástroje není nezbytné, ale je potřeba mít něco, co poskytne ekvivalentní informace. Například informaci o příbuznosti dvou slov lze vzít z lemmatizátoru, ale je možné ji získat i pravděpodobnostním způsobem (automatickým zpracováním kontextů slov z korpusů).

Uvádíte, že Seznam přešel ze základní jednotky vyhledávání z lemmat (základních tvarů slov) na tzv. termy. Co to znamená?

V minulosti naše hledání fungovalo tak, že dokument se po stažení robotem nejprve celý zlemmatizoval (všechna slova se převedla na základní tvar) a pak až se zaindexoval. Hledání probíhalo obdobně– zadaný dotaz se nejprve zlemmatizoval a pak se hledaly dokumenty, které obsahovaly lemmata shodná s lemmaty v dotazu.

Tento systém ale narážel na problém, když jsme chtěli zařazovat do výsledků vyhledávání i cizojazyčné stránky. Ačkoliv Seznam je vyhledávačem českého internetu, dospěli jsme totiž k závěru, že důležité cizojazyčné stránky mohou za určitých okolností obohacovat výsledky vyhledávání. Pokud by se českým lemmatizátorem zpracoval např. anglický text, výsledek pochopitelně nemůže dopadnout dobře.

Systém se proto musel předělat. V novém systému hledání se dokument na vstupu nijak neupravuje a slova se zaindexují v podobě, jak jsou v dokumentu zapsaná (to jsou právě ty „termy“). Při hledání se postupuje tak, že zadaný dotaz se sice zlemmatizuje, ale znalost lemmat a jejich významu se použije k tomu, aby se dotaz rozepsal na jednotlivé termy (zjednodušeně řečeno, každé slovo se převede na množinu všech svých tvarů– za tuto činnost je odpovědný nástroj opačný k lemmatizátoru, tzv. derivátor). Pak se hledají dokumenty obsahující termy, které vznikly expanzí dotazu. Tento systém lze jednoduše použít právě při zpracování více jazyků– podle jazyka se změní pouze expanze slov při zpracování dotazu. Samotný obsah databáze ale zůstává konstantní bez ohledu na jazyk zaindexovaných dokumentů.

Nakolik by vyhledávač měl poskytovat odkazy na weby a nakolik zkoušet přímo odpovědět (ve stylu Wolfram Alpha)?

U některých typů dotazů opravdu nemá smysl odkazovat uživatele na nějaké cizí weby a je vhodné rovnou odpovědět. Jde zejména o dotazy, které mají extrémní množství drobných modifikací, a tak není pravděpodobné, že se přesně vyskytují v textu nějaké stránky. Příkladem jsou převody jednotek, například dotaz 162 palců. Není pravděpodobné, že nějaká stránka obsahuje odpověď, že to je 4,1148 metru.

Do stejné kategorie spadají údaje, které se extrémně často mění, například přepočet měn podle aktuálního kurzu. To taky nemá smysl hledat v textu stránek. Máme proto specializované miniaplikace sloužící pro okamžitou odpověď na fráze typu „100 eur na dolary“. Existují samozřejmě i jiné druhy dotazů, které mají jednoznačnou odpověď, např. „Jak vysoká je Sněžka“.

Všimněte si, že u většiny těchto dotazů ale jde o výpočty a není náhoda, že Wolfram Alpha odpovídá dobře právě pro tyto případy. U všech jiných typů dotazů je zpravidla lepší odkázat na původní zdroj informací, protože prostě není pravděpodobné, že by vyhledávač dokázal přímo zodpovědět dotaz lépe, než to dělají nejlepší zdroje dostupné on-line.

Používáte při vyhledávání sémantiku, a pokud ano, jak? Když třeba hledám slovo „malina“, máte ho nějak zaškatulkované v kategorii „ovoce“, čili mi nabídnete– třeba při nedostatku výsledků na samotný dotaz– i výsledky pro „ovoce“, případně jiné zástupce z této kategorie typu „jahoda“? Souhlasíte s tím, že sémantika, ať už ve vyhledávání nebo třeba jako sémantický web, se příliš neujala? Jaká je podle vás příčina?

V provozu sémantické hledání zmíněného typu nepoužíváme, i když s tím různě experimentujeme.

Potíž je v tom, že pro sémantický vyhledávač je nutné zadat velmi konkrétní dotaz, na který velmi konkrétně odpoví. Pokud dotaz obsahuje jen trochu nejednoznačnosti, výsledek má sice faktické odpovědi, které jsou ale z pohledu uživatele mimo, protože odpovídají na jinou otázku, než myslel on.

příloha_ovladnete_sva_data

Řekl bych, že to je spíše filozofická otázka (nebo alespoň odpověď na ni musí být taková). Předpokládejme, že by na internetu existovaly weby, které by poskytovaly informace o všem možném. Dále předpokládejme, že by existoval i sémantický vyhledávač, který by si všechny weby prošel a na základě načerpaných informací by dokázal na libovolnou otázku poskytnout přímou odpověď, aniž by uživatel internetu musel brouzdat po webech. Směřovalo by to k tomu, že na weby by nikdo nechodil. Jejich tvůrci by nebyli motivováni k tomu, aby je vytvářeli (alespoň předpokládejme, že tvůrci vytvářejí weby pro návštěvníky) a ve výsledku by sémantické vyhledávače přišly o svůj zdroj informací.

Do takovéto podoby internet asi nikdy nedojde. I pokud se technologie natolik zlepší, že dokáže nabídnout sémantické odpovědi, stejně se část provozu bude obsluhovat poskytováním odkazů na nalezené stránky.

Byl pro vás článek přínosný?