Random generator info

Back / zpět

Cerebellum: CharactER-BasEd LangUage Model

Nejčastěji jsou generátory náhodného textu založeny na jazykových modelech pracujících s posloupnostmi slov, tzv. n-gramy (většinou trojice či čtveřice slov). Tento generátor je založený na posloupnostech (n-gramech) znaků. Pro libovolný řetězec (např. "ásl") si model pamatuje pravděpodobnosti výskytů znaků následujících za těmito znaky (v tomto případě "e", "o", "i" atd.). Délka těchto n-gramů není omezena počtem znaků, ale četností výskytu daného řetězce, takže je teoreticky neomezená. Zatímto běžné generátory jsou omezeny na kontext 2–3 slov, tento generátor generuje plynulejší věty, protože si často pamatuje kontexty výrazně delší. Usually, random text generators are based on language models using word sequences, so called n-grams (triples or quadruples). This generator is based on sequences of bytes. For any sequence of bytes in the input text the model knows what is the most probable following byte. The length of the sequences is not limited by a fixed number (like in the n-grams) but by frequency of the sequence. This allows to keep track of (sometimes) wider context (history) of the byte sequences.
Nedávno jsem implementoval další vylepšení: model si nepamatuje posloupnosti znaků, nýbrž posloupnosti bytů v datech, takže může pracovat se vstupem v Unicode (například utf-8). Generátor pak generuje náhodnou posloupnost bytů, které však v drtivé většině případů tvoří validní bytový řetězec v daném kódování. Lze tak zpracovávat modely v libovolném jazyce (a používající libovolné písmo). Viz například gruzínský model vytvořený z gruzínské Wikipedie. The model can learn from any text data, but it is reasonable to use UTF-8 encoding. It can work with any language, see e.g. Georgian model built from Goergian Wikipedia.
Když budete chvilku zkoušet generovat náhodné věty (stačí mačkat klávesu F5), docela pravděpodobně vygenerujete přirozeně vypadající českou větu a s trochou štěstí bude i vtipná – to je dáno tím, že se k sobě ve větě dostanou fráze a slovní spojení, která se spolu obvykle nevyskytují. Try to play with the generator for a while (just press F5 to get a random text) and if you are lucky, the generator will generate a fluent text, sometimes even funny.
Více informací najdete v článku For more info see paper
Baisa, Vít. "Character-based Language Model." RASLAN 2014 Recent Advances in Slavonic Natural Language Processing (2014): 3.