Taggery Barbora Obluková Tagger • cíl: odstranění nejednoznačnosti přidělení značky určující druh slova (POS tag), v případě více variant vybrána jen jedna • jednoduché vs. atribute vectors značky • rozhodování podle předešlého kontextu • hladový algoritmus – v případě hledání Max hodnoty jen aktuální hodnota • jazyková závislost TreeTagger • Helmut Schmid, Stuttgart 1994 • původní vývoj a testování na angličtině, dále na němčině • desambiguace normálních slov od vlastních jmen • třídy ekvivalence – slova se stejnou množinou možných značek • tag brán atomicky, není dělen na části • Vitterbiho algoritmus a rozhodovací strom pro určení pravděpodobnosti • Vitterbiho algoritmus: onajde nejpravděpodobnější sekvenci stavů, která vygenerovala pozorovaná data TreeTagger • rozhodovací strom: o binární o každý token jím projde o struktura a prořezávání podle informačního zisku, snaha co nejvíce rozlišit možnosti (70 % vs. 10 %) o případné rozlišení podle dodatečných podmínek TreeTagger „The big house“ – 70% pravděpodobost, že 3. slovo (house) je NN, 10%, že je to ADJ TreeTagger • lexikon – dohledávání tagů pro dané slovo v již označkovaných datech (např. Studying) 1. full form lexicon – hledání konkrétního slova (Studying), pokud nenalezeno, převedou se všechna písmena na malá a znovu se vyhledá. Pokud stále nic nenalezeno, krok 2 2. suffix lexicon – vytvořen z trénovacího korpusu, organizován jako strom, ve kterém se hledá posloupnost 3 posledních písmen (nejprve g, poté n a i). Řetězec je ukončen znakem #. Pokud neúspěšně, krok 3 3. default entry – vrácen výchozí vstup, který je vytvořen z relativních frekvencí v sufixovém stromě TreeTagger suffix lexicon – příklad Studying TreeTagger • nejlépe určí tag s využitím Vitterbiho algoritmu • malá citlivost na velikost korpusu – menší trénovací data nezpůsobí menší přesnost • nejúspěšnější verze – kvatrogramová • nahrazování 0: vyměnění hodnoty 10 –10, což je užito namísto 0, za hodnotu 0,1 zlepšilo přesnost pouze o 0,02 % => tento parametr není stěžejní RFTagger • Helmut Schmid, Florian Laws, Stuttgart 2008 • označkování věty Das zu versteuernde Einkommen sinkt. („The to be taxed income decreases.“ The taxable income decreases.) Das ART.Def.Nom.Sg.Neut zu PART.Zu versteuernde ADJA.Pos.Nom.Sg.Neut Einkommen N.Reg.Nom.Sg.Neut sinkt VFIN.Full.3.Sg.Pres.Ind . SYM.Pun.Sent RFTagger • postup: 1. trénování – vložen velký označkovaný korpus, atributy odděleny tečkou 2. anotace textu – vložen čistý text a trénovací model, výstupem je anotovaný text, ve kterém každé slovo má přesně jeden tag • rozumí struktuře tagu • tagy formou vektorů atributů • pevný počet atributů oddělených tečkou – první atribut představuje kategorii, druhý upřesňuje • nejprve určení slovního druhu, poté sady morfologických atributů • atributy morfologicky vázané – odlišuje se např. pád u podstatných a přídavných jmen RFTagger • rozhodovací stromy o odlišnost od TreeTagger o dekompozice na jednotlivé atributy o pro každou hodnotu atributu separátní rozhodovací strom (o každém atributu je rozhodováno samostatně) o získání pravděpodobnosti pro každý atribut RFTagger • užití Skrytých Markovových modelů – modul je pomocí korpusu naučen, která slova může dát dohromady na základě kontextu • podporuje němčinu, češtinu, slovenštinu, slovinštinu, maďarštinu a ruštinu • nedělá lemmatizaci, lemma lze získat z korpusu • Lexikon, Wordclass automaton, Maximální kontextová velikost Maximální kontextová velikost TreeTagger RFTagger Baseline – 70,54 % Kontext 1 – 90,89 % Kontext 1 – 86,22 % Kontext 2 – 92,06 % Kontext 2 – 87,31 % Kontext 10 – 92,43 % Kontext 5 – 87,47 % Kontext 10 – neuspělo • užita na vypočítání pravděpodobnosti • jak daleko do kontextu se tagger může dívat • kontext 1 = pouze vedlejší slovo Publikované výsledky TreeTagger RFTagger Penn Treebank (2 mil.) • 96,81 % German Tiger Treebank (886 k) • Baseline –69,4 % • 92,2 % Stuttgart Zeitung (25 k) • 97,53 % Czech Academic corpus (652 k) • 89,53 % Ostatní taggery • Desam – kombinovaný tagger, který využívá Vitterbiho algoritmus • Czech Tagger • Morce • Morphodita Tvorba POS taggeru v Pythonu • POS tagging – strojové učení s učitelem • Case-sensitive features o tagger si všímá rozdílu velkých a malých písmen o výhodné u gramaticky správného textu o robustní tagger o case-sensitive features nevhodné o vhodnější funkce, která porovná frekvenci slova s malým a s velkým písmenem v datech z webu • jednoznačná slova o netřeba kontrolovat tag, stačí jen u víceznačných • neužívat zbytečně složité taggery – např. Pattern, NLTK Průměrovaný percepton • sčítá váhové koeficienty rysů pro každou pozici v daném kontextu • získání váhy slova: 1. váhové koeficienty všech rysů nastaveny na 0 2. nový pár – vstupní parametr (slovo) a POS tag 3. součet váhových koeficientů rysů v daném kontextu = váha vstupu 4. odhad hodnoty POS tagu pomocí aktuální váhy vstupu 5. pokud špatný odhad o přidání +1 k vahám spojeným se správnou třídou pro tento vstup o odečtení –1 od vah spojených se špatně zvolenou třídou o penalizována váha, která vedla ke špatnému závěru Získání rysů Váha vstupu Průměrovaný perceptron • v několika iteracích zpracována celá vstupní data • výsledek předán Vitterbiho algoritmu jako pravděpodobnost přechodu • nedostatek algoritmu perceptronu: o nutný průměr vah po několika iteracích – např. 5 000 příkladů, 10 iterací => průměr vah 50 000 hodnot o nezměněná hodnota – uložena do slovníku o změněná hodnota – změní se i v následujících iteracích o bez průměrování: o algoritmus se bude zabývat tím, co měl špatně a přizpůsobí tomu celý model o trénování na 2 trochu odlišných datech => úplně odlišné modely Zdroje • Helmut Schmidand Florian Laws: Estimation of Conditional Probabilities with Decision Trees and an Application to Fine-Grained POS Tagging, COLING 2008, Manchester, Great Britain. • Schmid, Helmut. 1994. Probabilistic part-of-speechtagging using decision trees. In Proceedings of theInternational Conference on New Methods in LanguageProcessing, pages 44–49, Manchester, UK. • Schmid, Helmut. 1995. ImprovementsIn Part-of-SpeechTaggingWithanApplicationTo German. In Proceedings ofEACL SIGDAT workshop, Dublin,Ireland. • Spoustová, Drahomíra. 2009. Kombinované statisticko-pravidlové metody značkování češtiny. ÚFAL. Praha, Czech Republic. • Honnibal, Matthew. 2013. A Good Part-of-Speech Tagger in about 200 Lines of Python. https://explosion.ai/blog/part-of-speech-pos-tagger-in-python