Jak Vyhledávání na Seznamu rozpozná jména, příjmení a osobnosti?

Další z funkcí, kterým jsme se ve Vyhledávání nedávno věnovali, je kromě detekce času a lokalit, také detekce jmen, příjmení a osob(ností) v dotazech či textech. Pojďme se společně podívat na to, z jakého důvodu hraje jmenný rod důležitou roli, proč Petr není Pavel a jestli může polívka se slaninou způsobit v detekci jmen a příjmení problémy.

Honza málem králem

Asi se shodneme, že rozeznat jméno a příjmení v dotazu „Petr Dokoupil kominík“ je velmi jednoduché. O něco méně intuitivní může být ale stejné určení v dotazu „Petr Marek muzikant“. Znalost světa kolem nás nám může napovědět, že i v tomto případě je Petr jméno křestní a Marek příjmení. Aby jazykový model dokázal v dotazu určit, co je jméno jméno a co příjmení obdobně jako my, musíme mu ukázat názorné příklady.

Proto jsme vzali dotazy z Vyhledávání na Seznam.cz a předali je anotátorům. Ti na základě podrobně připravených pravidel věděli, v jakých případech chceme označovat jména, příjmení a osobnosti

U jmen můžeme například často narazit na užití osobního jména v názvu produktu (sektorový nábytek Michal), budovy (vila Barborka ubytování), názvu filmu, knihy a dalších uměleckých děl (Honza málem králem) nebo třeba i označení firmy či společnosti (cukrárna Zdenička otvírací doba). Takové případy považujeme za názvy, nikoliv za osobní jména.

Šťastný pekař a hrušková buchta

Výše jsme už popsali, že příjmení mohou někdy vypadat jako křestní jména. To ale není jediná komplikace, se kterou se můžeme setkat. Vyprávět by určitě mohli pan Kuchař, Slanina, Topol, paní Bílá, Šťastná a další. Pozor si musíme dát i na kontext. U dotazu „Hrušková a Buchta advokátní kancelář“ nechceme ve výsledcích vyhledávání nalézt recept, u dotazu „srbská objemová míra“ zase neočekáváme, že nám s odpovědí poradí Mirek.

Anotátoři také označili případy, kdy se v dotazu kromě jména i příjmení vyskytuje osoba/osobnost. Dotaz „Dana Medřická životopis“ tedy obsahuje jméno, příjmení i osobnost, zatímco dotaz „jak časté je jméno Dana“ obsahuje pouze jméno a neoznačuje konkrétní osobu.

Na takto připravených datech jsme učili jazykový model. Ten věděl, jak se v jednotlivých případech rozhodovali anotátoři a naučil se rozhodovat obdobně. V textu díky tomu rozezná například jméno od příjmení (prezident Petr Pavel), rod (manželka Ivana Trojana vs. Ivana Trump) i kontext (Polívka biografie).

Není Vlasta jako Vlasta

V textech webových stránek i dotazech uživatelů se jména i příjmení mohou vyskytovat v mnohých formách. Mohou být například zkrácená na počáteční písmeno (manželka T. G. Masaryka), vyskloňovaná (věk Zdeňka Svěráka), ale můžeme se s nimi setkat i v domácké podobě.

Káťu, Fandu nebo Marťase přiřadíme ke konkrétnímu jménu snadno. Hůře to půjde ale třeba u Míry, Slávka nebo Ládi – těmito domáckými podobami totiž můžeme nazývat Miroslava, Lubomíra, Mirka, Vladimíra, Vlastislava, Rostislava nebo třeba Radoslava. Nové detekci tak pomáhá ještě slovník s domáckými podobami, díky kterému dokážeme jménu přiřadit plnou podobu.

Kromě toho se v textu mohou objevit domácké podoby Míša, Peťa nebo Vlasta. Nejen u těchto jmen navíc potřebujeme znát i jmenný rod, abychom je i jejich plnou podobu vyskloňovali správně (Petr – Petra, Vlastimil – Vlastimila, Michal – Michaela apod.). 

Úkol, který model řeší, se nazývá detekce jmenné entity (Named entity recognition) a je rozšiřitelný na další typy entit po doučení na vhodných příkladech. Obecný jazykový model učený na českém webu, který jsme využili pro tento úkol, je volně dostupný a vy si ho můžete prohlédnout.

Detekovaná jména, příjmení a osoby v dotazech i textech nám v mnoha ohledech slouží napříč službami Seznam.cz. Pokud víme, že dvě slova vedle sebe v dotazu označují jméno a příjmení, můžeme se k nim podle toho chovat – nakládat s nimi dle adekvátních pravopisných pravidel (například skloňovat ve správném rodě), zacházet s nimi jako s logickým celkem (Tomáš Garrigue Masaryk vs. MUDr. Karel Tomáš Masarykova ul. Brno), rozvinout domáckou podobu na plné jméno („kdy má svátek Jirka = Jiří) nebo také třeba najít slavné osobnosti podle přezdívky (zpěvačka Lenny = Lenka Filipová).

Na anotovaných datech dokážeme změřit, zda najdeme jméno, příjmení a osobnost všude, kde je označili anotátoři. Nově se nám to daří u jmen v 87 % případech, u příjmení v 83 % a detekovat osobnost dokážeme v 80 % případech. A ze všech detekovaných případů se skutečně jména dle anotací vyskytují v 91 %, příjmení v 92 % a osobnosti v 93 % dotazech. 

Za tým Vyhledávání Markéta Hávová

Sdílet na sítích