Člověk |
Konkurenční 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é...
Plná verze tohoto článku vychází v časopisu CIO-BusinessWorld 11/2012.
Seznam.cz v roce 1996 začínal jako katalog a i když brzy přidal i fulltextové vyhledávání (Kompas), dlouho pro firmu nebylo prioritou. Z dnešního pohledu může paradoxně působit i to, že když Seznam svého času používal fulltexty třetích stran, jeden čas šlo i o Google.
Po expanzi Googlu se pak ČR stala jednou ze 4 zemí, kde domácí hráč nepřenechal Googlu vedoucí pozici ve vyhledávání (dalšími jsou Rusko, Čína a Jižní Korea – ČR je tedy jediná, kde se používá latinka).
Na otázky o technologiích vyhledávání odpovídá Š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ňují ho 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 tento nástroj podle vašeho názoru nutný pro relevantní výsledky při vyhledávání v češtině?
Ano, 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ý desambiguá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 se jedná. 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. Můžete to upřesnit?
V minulosti naše hledání fungovalo tak, že dokument se po jeho stažení robotem nejprve celý zlemmatizoval (všechna slova se převedla na základní tvar) a pak se až 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, tak výsledek pochopitelně nemůže dopadnout dobře.
Systém se proto musel předělat. V novém systémů 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 tuhle č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ů.
Jak pracujete se synonymy?
…
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 metrů.
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é typy dotazů, které mají jednoznačnou odpověď, např. „Jak vysoká je Sněžka“.
Všimněte si, že u většiny těchto dotazů se ale jedná o výpočty a není náhodou, ž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?
…
Nakolik by dnes byly pro vyhledávání v češtině použitelné technologie, které jste měli třeba před 10 nebo 15 lety? Jinak řečeno, jde spíše o to, že musíte dostatečně rychle zpracovávat stále více dat, nebo dochází i k zásadním změnám algoritmů pro zpracování?
…
Jak se při práci s jazykem dnes uplatňuje strojové učení?
Strojové učení samozřejmě používáme ve velké míře. Častěji se ale uplatňuje při rozpoznávání, klasifikaci a určování relevance. Při samotné práci s jazykem se spíše využívají statistické a pravděpodobnostní metody.
Jaký je podle vás hlavní rozdíl mezi reálným internetovým vyhledávačem a akademickými přístupy k vyhledávání?
Tuto otázku bych spíše formuloval jinak: jaký je rozdíl mezi vyhledávačem vzniklým v akademickém prostředí a vyhledávačem vzniklým v „průmyslovém“ prostředí, tedy na trhu?
A v otázce je rovnou ukrytá i odpověď: rozdíl vězí v motivaci a prioritách provozovatele. „Akademický“ vyhledávač se snaží prošlapat novou cestu, po které ještě nikdo nešel. Naproti tomu „průmyslový“ vyhledávač staví s pomocí aktuálních technologií dálnici, po které bude jezdit spousta aut.
Komentáře
Napsat vlastní komentář
Pro přidání příspěvku do diskuze se prosím přihlašte v pravém horním rohu, nebo se prosím nejprve registrujte.