Automatická oprava textu v různých jazycích Bc. Petr Semrád, doc. Ing. František Dařena Ph.D., Ústav informatiky, Provozně ekonomická fakulta, Mendelova univerzita v Brně,
[email protected],
[email protected] Abstrakt Příspěvek rozebírá problematiku korekce velkého množství textu v nestrukturované podobě a zabývá se jejich automatickou kontrolou pro různé typy jazyků. Je zde popsána metodologie, jakými fázemi kontrola textu postupuje a na jakém principu je oprava textu založena. V závěru jsou uvedeny výsledky pro různé jazyky a různě velké soubory.
Klíčová slova Kontrola slov, kontrola pravopisu, automatická oprava slov, vektor, mapa, matice slov
Abstract The report is focused on the problems of correction of the large text in the unstructured form and is concentrated on their automatic check in the different languages. The methodology, stadiums of automatic check and the principle of check are described in the report. The conclusion presents the findings for different languages and variously large files.
Key Words Check of words, spell check, automatic correction of words, vector, map, matrix of words
Úvod a cíl Internet v dnešní podobě obsahuje obrovské množství informací, které jsou interpretovány v různých formátech a velikostech. Velké procento informací tvoří nestrukturované textové dokumenty napsané v přirozeném jazyce. Tyto dokumenty zahrnují novinové články, zákaznické recenze, legislativní dokumenty a další. Díky charakteru přirozeného jazyka roste i procento chybovosti slov obsažených v nestrukturovaném textu. Chyby v textech mohou vznikat z různých důvodů, jako např. chybná gramatika nebo překlepy autora při psaní textu, recenzí apod. (Stensby, 2008). Mezi základní úlohy dolování znalostí z textových dat jsou např. úlohy klasifikace, predikce, shlukování apod. Základem zpracování je analýza a vytvoření modelu, který bude následně reprezentovat danou množinu dat. Tvorba modelů znamená jejich převedení do strukturované podoby tak, aby bylo možné využít již existující algoritmy pro data mining. Častou reprezentací pro usnadnění práce s textovými daty v případě zjišťování četnosti unikátních slov v dokumentech nebo jiných algebraických operacích jsou vektory (Howland,
Park, 2004). S každým dokumentem se pracuje v rámci jednoho vektorového prostoru a každé slovo jim obsažené ve vektoru je spojeno s jeho frekvencí výskytu v dokumentu (Wang, Zhang, Vassileva, 2010; Zhang, Zhu, 2005). Velké rozměry vektorů u rozsáhlých dokumentů jsou problematické, a proto je vždy vhodné tyto rozměry redukovat. Jednou z možností redukce rozsáhlých vektorů je kontrola a oprava gramatiky. Ústav Informatiky PEF MENDELU se zaměřuje výzkum a analýzu vlivu předzpracovaných textových dokumentů na výsledky úloh text mining. Součástí výzkumu bylo vytvořit software, který by provedl předzpracování textů podle výše definovaného cíle a automatickou opravu slov v různých jazycích se zachováním vstupní struktury textu.
Současný stav problematiky V současnosti je k dispozici více nástrojů a přístupů pro korekci slov v různých jazycích. Nástroje oprav textu lze dělit podle funkcionality, která buď při korekci slov vyžaduje určitou vstupní odezvu uživatele, nebo provádí opravu zcela automaticky. Volně dostupné online nástroje např. http://www.spellchecker.net/ nebo http://www.spellcheck.net/ fungují na principu interakce s uživatelem, který postupně při korekci slov manuálně určuje, za jakou nejvhodnější alternativu chce chybné slovo zaměnit. Uvedené alternativní nástroje jsou ovšem zcela nevyhovující, pokud by uživatel chtěl opravit velké množství nestrukturovaného textu. Naopak nástroje automatické korekce slov jsou především placené sofistikované programy, které mohou taktéž zajistit opravu textu s interakcí uživatele nebo tuto korekci provést zcela automaticky. Software pracuje na principu využití již vytvořeného slovníku aplikace MS Word 2010 s rozsáhlou databází pro různé jazyky. Pracuje s jazyky bulharština, čeština, dánština, holandština, angličtina, finština, francouzština, němčina, řečtina, maďarština, italština, norština, polština, portugalština, rumunština, ruština, slovenština, španělština, švédština, turečtina. Typy podporovaných jazyků jsou závislé na nainstalované jazykové sadě MS Office 2010, případně je možné doinstalovat jazykovou sadu i pro jiný jazyk. Software pracuje se slovníkem aplikace, který provádí kontrolu chybovosti a případně podle typu chyby zobrazuje alternativy slova dle určitého klíče.
Materiál a metodologie řešení Specifikace vstupu Vstupní soubory jsou složeny z textových dat skládajících se z písmen a interpunkčních znamének, které jsou konkrétně specifické pro zvolený jazyk. Dopředu je také nutné počítat i
s možností výskytu vícenásobné interpunkce třeba uprostřed slova nebo spojující dvě či více slov apod. Před spuštěním zpracování je nutné předem zvolit jazyk dokumentů, podle kterého se bude využívat i příslušný slovník pro automatickou kontrolu pravopisu slov. Předzpracování textu a převod dat do matice V první fázi předzpracování vstupního textu program využívá specifickou metodu, která pomocí regulárního výrazu provádí kontrolu správnosti všech termů a vstupní proměnnou upravuje o vloženou mezeru za tečkou, čárkou, vykřičníkem, otazníkem u těch slov, které ji neobsahují. Následně jsou takto upravená data rozdělena do datové struktury typu vektorvektor, kde každý řádek primárního vektoru reprezentuje fyzický celý řádek dokumentu a sekundární vektor reprezentuje term daného řádku včetně interpunkce. Převedení termů z matice do mapy V druhé fázi dochází k převodu termů uložených v matici do tzv. mapy, ve které je každý prvek definován unikátním klíčem (klíč tvoří term) pro rychlé vyhledávání v mapě. Každý klíč je současně spojený s hodnotou klíče, která si ukládá frekvenci výskytu všech identických termů v matici. Obsahuje-li matice více slov se stejným klíčem, je pouze zvýšena frekvence u termu, který již byl do mapy uložen dříve. Proces uložení termů z matice do mapy probíhá s využitím regulárního výrazu pro odstranění v této fázi nedůležité interpunkce, takže ve výsledku je v mapě uložen vždy unikátní term v rámci celých dokumentů s jeho odpovídající frekvencí. Frekvence daného termu je založena na lokální váze u každého slova. Lokální váha Lokální váha se zohledňuje při práci se vstupním nestrukturovaným textem. Je založena na přepočtu výskytu i -tého slova v dokumentu s využitím metody Term frequency. Výstupem metody je unikátní term i obsahující vždy frekvenci i -tého termu. Kontrola a oprava termů Třetí fázi programu tvoří časově náročná kontrola a oprava jednotlivých termů v matici, která zabere 80 % veškerého programového úsilí. V této fázi je kontrola uložených termů v matici provedena pomocí speciální knihovny pro práci s jazykovými slovníky v aplikaci MS Word. Každý term je nejprve zbaven diakritiky s využitím stejné funkce, a následně je pro něj v případě chyby navrhnuto jedna či více alternativ. Výběr vhodnosti u více alternativ je proveden na základě již vytvořené mapy tak, že původní term je nahrazen za alternativu
s nejvyšší frekvencí v porovnání s odpovídajícími hodnotami (termy) v mapě. Alternativní term s nejvyšší frekvencí se nejčastěji vyskytuje v textu, a proto je nejvíce pravděpodobné, že by korekce měla být provedena tímto způsobem. V případě, že žádné z alternativ (žádná alternativa) nejsou uloženy v mapě, automaticky je term nahrazen za první v pořadí. Přepočítání redukce mapy Ve čtvrté poslední fázi je proveden rychlý přepočet redukce mapy termů po provedené opravě textu (textů). Redukce neboli zmenšení počtu unikátních slov ve vektoru je po automatické opravě viditelná.
Výsledky Výsledkem zpracování textů jsou uložené a opravené vstupní soubory pro jednotlivé jazyky, ale i shrnující dokument zjištěných a naměřených výsledků ve formátu MS Excel. Závěrečný dokument (Tabulka 1) obsahuje pro každý jazyk: Počet opravených slov, velikost vektoru unikátních slov před a po automatické opravě textu, informativně celkový čas běhu programu. Informativní doba běhu programu je z důvodu, že z hlediska časové a výpočetní náročnosti byla kontrola rozsáhlých vstupních souborů provedena na výkonnější výpočetní technice. Tabulka 1 – Výstupní informace a výsledky Opravená slova Vektor před korekcí
Jazyk na
Velikost
Vektor po korekci
vstupu
[MB]
[počet]
[počet unikátních slov]
[počet unikátních slov]
čeština
1,97
23042
33241
25745
finština
5,79
29476
73842
67686
portugalština
15
128276
63484
42058
ruština
30,5
68146
82003
69858
Závěr Software zcela plní účely a požadavky, pro které byl vytvořen. Při testování souborů bylo ověřeno, že program automaticky opravuje chybně zapsané termy za navrhované alternativy s aktivním využitím předem vytvořené četnosti alternativ a ponechává výstupní dokument prakticky ve stejné podobě. Nevýhodou je určitá časová náročnost oprav objemných dokumentů na pomalejší výpočetní technice, se kterou je nutné dopředu počítat. V softwaru mezi výběrem jazyka není zahrnuta možnost opravy textu v čínském a japonském jazyce z důvodů velkých kulturních odlišností.
Tento článek vznikl v rámci řešení projektu IGA 4/2013 Analýza vlivu předzpracování textových dokumentů na výsledky úloh text mining.
Zdroje Howland, P., Park., H. Cluster-Preserving Dimension Reduction Methods for Efficient Classification of Text Data. In: Berry, M. W. (ed.) Survey of text mining: clustering, classification, and retrieval. New York: Springer, 2004. ISBN 0-38795563-1. Joachims, T. Learning to classify text using support vector machines. Norwell: Kluwer Academic Publishers, 2002. ISBN 079237679X. Silva, C., Ribeiro, B. Inductive Inference for Large Scale Text Classification: Kernel Approaches and Techniques. Springer, 2010. ISBN 978-3-642-04533-2. Stensby, A. M. Stochastic Learning-Based Estimation Methods for Pattern Recognition and Its Application to Topic Detection and Tracking. Grimstad: University of Adger, 2008. Wang, Y., Zhang, J., Vassileva, J. Towards Effective Recommendation of Social Data across Social Networking Sites. In: Dicheva, D., Dochev, D. (eds.) Artificial Intelligence: Methodology, Systems, and Applications. Springer, 2010, s. 61–70. Zhang, X., Zhu, X. Extended Bi-gram Features in Text Categorization. In: Proceedings of IbPRIA (2)'2005, 2005, s. 379–386.