Rozpoznávání jazyka

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

Rozpoznávání jazyka je jedna z úloh automatického zpracování textového dokumentu, která je založená na statistickém N-gramovém modelu.

N-gramové modely pracují se slovy (např. rozpoznání řeči) nebo se znaky (např. +more rozpoznání jazyka). Nejdříve se natrénuje N-gramový model pro jednotlivé jazyky, které se mají rozpoznávat, poté se určí skóre rozpoznávaného textu pro všechny modely a model s nejvyšším skórem je určen za rozpoznaný jazyk.

Trénování modelu

Unigramový model (1-gram)

Unigramový (1-gram) model se trénuje na velkém množství textových dat, které projíždíme po znacích a zaznamenáváme jejich četnosti. Poté jednotlivé četnosti vydělíme celkovým počtem znaků a získáme tak pravděpodobnosti výskytu jednotlivých znaků.

Bigramový model (2-gram)

Bigramový (2-gram) model se trénuje na velkém množství textových dat, které projíždíme po dvojicích znaků (Z1, Z2) a zaznamenáváme jejich četnosti. Poté četnosti dvojice (Z1,Z2) vydělíme počtem dvojic s první znakem Z1, tím dostaneme pravděpodobnost, že přijde znak Z2 po znaku Z1. +more * Obdobně se postupuje u modelů s vyšším N.

Určení skóre neznámého textu

Unigramový model (1-gram)

Projíždíme neznámý text po znacích a násobíme mezi sebou pravděpodobnosti znaků, které čteme ze zvoleného modelu, tím získáme skóre neznámého textu pro zvolený model. * Skóre zjistíme pro každý jazykový model a model s nejvyšším skórem považujeme za vítěze rozpoznávání, tedy za rozpoznaný jazyk. +more P = P(Z1)*P(Z2)*P(Z3)*….

Bigramový model (2-gram)

Projíždíme neznámý text po dvojicích a násobíme mezi sebou pravděpodobnosti vyskytnuvších se dvojic znaků, tím získáme skóre neznámého textu pro zvolený model. Obdobně se postupuje u modelů s vyšším N. +more P = P(Z1,Z2)*P(Z2,Z3)*P(Z3,Z4)*.

Počítání s logaritmy

Protože při výpočtu skóre neznámého textu se násobí pravděpodobnosti, které nabývají malých hodnot, docházelo by k podtečení proměnné, proto se místo násobení pravděpodobností používá sčítaní logaritmů pravděpodobností. log(P) = log(P(Z1))+log(P(Z2))+log(P(Z3))+… log(P) = log(P(Z1,Z2))+log(P(Z2,Z3))+log(P(Z3,Z4))+...

Vyhlazování

V modelu se objevují N-gramy s nulovou pravděpodobností (N-gramy, které se nevyskytly v trénovacím korpusu), což je nežádoucí jev. Nulové pravděpodobnosti jsou nežádoucí z hlediska robustnosti modelu, protože ve chvíli, kdy se v rozpoznávaném textu objeví n-gram, který se neobjevil v trénovacím korpusu, bude mít tento text nulové skóre (násobíme 0), i když by byl text napsán v daném jazyce a neviděný n-gram by byl třeba jen překlep. +more K odstranění těchto nulových pravděpodobností se využívá vyhlazování, které nulovým pravděpodobnostem přidělí malou pravděpodobnost, která je odebrána n-gramům s nenulovou pravděpodobností. Tím získáme vyhlazený N-gramový model.

Používané vyhlazovací techniky

Add-one smoothing * Witten-Bell discounting * Good-Turing discounting (en) * Ristad's natural discounting law * Ney's absolute discounting * Kneser-Ney discounting

SRILM - The SRI Language Modeling Toolkit

Sada nástrojů pro práci s N-gramovými modely. * Vytváření N-gramových modelů s různým nastavením N, vyhlazovací techniky, apod. * Zjišťování skóre neznámého textu.

Využití n-gramových modelů

Rozpoznání jazyka. * Při rozpoznávání znaků v OCR. * Při překladu jazyků (Google translator). * Rozpoznávání spamu. * Doplňování diakritiky do textu. * atd.

Externí odkazy

[url=https://web.archive.org/web/20120302151523/http://www-speech.sri.com/projects/srilm/]SRILM - The SRI Language Modeling Toolkit[/url]

Kategorie:Zpracování přirozeného jazyka Kategorie:Strojový překlad Kategorie:Vyhledávací algoritmy

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top