Przejdź do głównej zawartości

Nowe języki w LanguageTool 0.8.5dev

W najnowszej, właśnie tworzonej wersji LanguageTool wbudowuję obsługę nowych języków.
Już wbudowałem obsługę francuskiego (będzie oparta na słowniku inDico Myriam Lechelt; reguły, mam nadzieję, pomoże rozwijać Laurent Godard z Indesko). Początkowo chciałem dodać obsługę na bazie Uniteksa, ale wg Laurenta ten słownik niekoniecznie jest oparty na licencji LGPLLR (LGPL for Language Resources). No cóż... Zmieniłem na poprawiony InDico.

Wprowadziłem język hiszpański z taggerem części mowy opartym na FreeLing. Niestety, sam słownik taggera był bardzo ubogi, bo w pakiecie FreeLing używa się wielu strategii heurystycznych (wg autorów skutecznych w ponad 90%). Dlatego też, żeby wyłuskać więcej informacji, po prostu otagowałem całą hiszpańską Wikipedię, a potem odfiltrowałem powstałe pliki. W wyniku powstał niezły słownik, FreeLing radził sobie z tym nieźle (wywaliłem literówki za pomocą hunspell -l).

To oczywiście przypomniało mi, że stosowany w LT tagger OpenNLP jest niestety statystyczny i dokonuje ujednoznacznienia (przez to nie zauważa błędów – solecyzmów – typu „Bill Gates earn a lot of money”, bo przypisuje „earn” kategorię IN!). Ale od czego Wikipedia angielska... Otagowałem ją OpenNLP, a potem skonstruowałem leksykon. OpenNLP nie rekonstruował leksemów w formie podstawowej (FreeLing to robi, ale co chwila się wywala, więc musiałem pokroić 500 MB tekstu na 300 porcji, żeby dodać 300 zanalizowanych nie do końca próbek). Okazało się jednak, że wyniki ma – delikatnie mówiąc – bardzo niedokładne. Być może dałoby się dla iluś form przeprowadzić zgrubne ilościowe oszacowanie, ale nie miałem ochoty na tę zabawę.
Nowy tagger dla angielskiego oparłem na listach słów Kevina Atkinsona na sourceforge. Zawierały one formy podstawowe i niezłe znaczniki gramatyczne (które poprawiłem w wielu wypadkach). Do tego ręcznie dorobiłem listę przyimków, czasowników modalnych itd. (za dostępnymi w sieci opisami tagsetu Penn TreeBank, który stosujemy). Po zmianie taggera okazało się, że ujawniło się więcej fałszywych alarmów w niektórych regułach, ale zasadniczo LT działa szybciej i dokładniej. :) A porównanie taggerów słownikowych, statystycznych – kontekstowych i statystycznych – morfologicznych to już sprawa na osobny artykuł naukowy.

Inną strategię przyjmę dla włoskiego. Jest bowiem dostępny przyjemny słownik Morph-IT! Marco Baroniego; spory, więc powinien wystarczyć. Ostatnio został nawet zaktualizowany przez autora :)

Zupełnym zaskoczeniem była też wiadomość Jagana Nadha, który buduje słownik morfologiczny dla języka Malayalam. To jeden z wielu oficjalnych języków w Indiach; mówi nim około 30 milionów osób i dopiero od niedawna ma słownik ortograficzny. Martwi mnie to, że mają własny alfabet, ale zdaje się istnieje jednoznaczna transkrypcja fonetyczna na zwykły alfabet łaciński. Zobaczymy, jak to się dalej potoczy.

Prawdopodobnie trzeba będzie utworzyć angielski samouczek dla osób przystosowujących LT do kolejnych języków. No i przyda się kreator reguł, najlepiej z testerem online w czasie rzeczywistym... A do tego potrzebny jest serwer obsługujący Javę w czasie rzeczywistym. Sourceforge.net ma Javę 1.4 (za słabą). Kreator powinien być zapewne w PHP i obsługiwać dodawanie nowych reguł i edycję istniejących (po uwierzytelnieniu), a po zatwierdzeniu reguły automatycznie uruchamiać test. Prace nad tym trwają.

Komentarze

Popularne posty z tego bloga

Imiesłów przysłówkowy bez orzeczenia

W zdaniach z imiesłowami przysłówkowymi (-ąc i -wszy), zakończonych znakiem interpunkcyjnym, powinno występować orzeczenie. Dopuszczalne jest opuszczenie orzeczenia w tytule. W tytule nie stosuje się jednak kropek na końcu. Na przykład: Czekając na Godota Czekając na Godota, zabawiali się rozmową. Błąd ten jest tym bardziej rażący w zdaniach, w których występuje zdanie podrzędne: !Czekając na Godota, który nie przychodził. Usterka zostanie wykryta także w błędnie formułowanych pytaniach: !Rozmawiając o sporcie, który sport uprawiasz? W powyższym przykładzie podmiot imiesłowu jest inny od podmiotu pytania (my rozmawiamy, a sport uprawiasz tylko ty). Powinno być: Skoro już mowa o sporcie, którą dyscyplinę uprawiasz?

Gromadzimy błędy językowe

Tu zbieram błędy, które mają być wykrywane regułami. Część z tych błędów można dodać także do list autokorekty w Ooo (a nawet w programie MS Word). Warto pamiętać, że na liście muszą być tylko te błędy, których nie wykryje już korektor pisowni (a zatem błędne formy fleksyjne i proste błędy ortograficzne nie muszą być tutaj umieszczane). Zapraszam do komentowania i uzupełniania tej listy, na pewno nie jest wyczerpująca. Mówiąc krótko, to taki negatywny słownik języka polskiego ;) Nowomowa, ale nie błąd: wychodzić|wyjść * naprzeciw -> popierać *, iść na rękę * wprowadzić kogo w co -> zapoznać kogo z czym [fałszywe alarmy] w przypomnieniu -> przypominając [za dużo fałszywych alarmów] do wojny -> przed wojną [fałszywe alarmy, wiele poprawnych zwrotów] więcej chory -> coraz bardziej chory [rzadkie] widzieć się zmuszonym -> być zmuszonym w uzupełnieniu -> uzupełniając do roku -> przed upływem roku [za dużo fałszywych alarmów] trzymać wagę, firmę, mowę ś...

Aktualizacja słownika ortograficznego w programie LanguageTool 5.8

Przygotowałem aktualizację słownika ortograficznego stosowanego w programie LanguageTool (będzie dostępna publicznie w nowym wydaniu, 5.8, planowanym na koniec czerwca). Słownik oparty jest przede wszystkim na słownikach dostępnych na sjp.pl , lecz usunąłem trochę mylących wpisów (np. niezalecaną formę „ grejfrut ”) i dodałem trochę funkcji (typu wyrazy pisane z łącznikiem), które są potrzebne. Zdumiało mnie, że poprzednia wersja słownika pochodziła z roku 2008. No cóż, ta zmiana się po prostu należała. W kolejce jest aktualizacja paczki słowników do LibreOffice/OpenOffice.