26.4.09

LanguageTool 0.9.8

Dziś ukazała się nowa wersja korektora LanguageTool 0.9.8. Podstawowe zmiany:

  • usunięcie denerwującego problemu występującego w komputerach z systemem MacOS;
  • zdecydowanie więcej reguł dla języka rumuńskiego (były 3, jest 160) i syntetyzator morfologiczny dla tegoż języka;
  • więcej reguł dla włoskiego (było 5, jest 77);
  • pierwsze reguły dla słowackiego;
  • poprawki w obsłudze języka angielskiego i polskiego;
  • więcej opcji w wypadku używania LanguageTool z poziomu wiersza poleceń;
  • poprawki wielu drobnych błędów.
Uwaga. Ta wersja działa wyłącznie w OpenOffice.org w wersji 3.0.1 lub nowszej! Przed instalacją programu OpenOffice.org 3.0.1 należy usunąć wszystkie wcześniejsze wersje LanguageTool zainstalowane w OpenOffice.org.

Instalacja:

  • W programie OpenOffice.org 3.0.1 lub nowszym
    • Metoda prosta
      Dwukrotnie kliknij pobrany plik LanguageTool-0.9.8.oxt. Jeśli w systemie jest zarejestrowane rozszerzenie .oxt (robią to aktualne wersje OpenOffice.org), nastąpi uruchomienie instalatora.
    • Metoda tradycyjna
      Kliknij polecenie Narzędzia > Menedżer rozszerzeń > Dodaj, a następnie wybierz plik LanguageTool-0.9.8.oxt. Zamknij pakiet (łącznie z modułem szybkiego uruchamiania).
Po ponownym otwarciu OpenOffice.org będzie możliwe automatyczne sprawdzanie tekstu. Jako test wpisz zdanie: „To zdanie zdanie jest z błędem”.
  • Bez programu OpenOffice.org
    • Rozpakuj archiwum LanguageTool-0.9.8.oxt (jest to plik w formacie .zip) i uruchom plik LanguageToolGui.jar, klikając go dwukrotnie. Jeśli na danym komputerze nie skonfigurowano skojarzenia dla plików *.jar, uruchom program z wiersza poleceń za pomocą polecenia java -jar LanguageToolGUI.jar. Plik LanguageTool.jar jest natomiast korektorem działającym z poziomu wiersza poleceń.
    • Rozpakuj znajdujący się w archiwum plik standalone-libs.zip do tego samego katalogu, do którego rozpakowano pliki z archiwum.
W razie problemów
  1. Należy upewnić się, czy w systemie zainstalowana jest Java w wersji co najmniej 1.5. Środowisko GIJ ma błędy uniemożliwiające użytkowanie LT; należy korzystać z Javy w wersji IcedTea lub firmy Sun.
  2. Ta wersja środowiska Java musi być widoczna dla OpenOffice.org (Narzędzia > Opcje > Java).
  3. Nazwa użytkownika w systemie Windows nie może zawierać polskich liter (błąd OpenOffice.org od wersji 2.3; będzie poprawiony w wersji 3.1).

22.4.09

Bootstrapping the rules for LanguageTool

This post is related to many languages, so I'm posting in English.

Recently, during PALC 2009, I had a talk on unsupervised generation of rules for LanguageTool. The idea is when you have an error corpus (and you can create one based on Wikipedia revision history, by the way, here's a draft of my paper on creating the error corpus from Wikipedia), you can use transformation-based learning techniques to create rules that may be used to boostrap rule creation for new languages in LanguageTool.

Of course, what I have right now, are only quick hacks and script prototypes, but as you can see in my presentation, I'm planning to make the process a bit easier to use. First of all, the extraction of the error corpus from Wikipedia revision history can be fully ported to Java (I will add filters to remove synonym-for-synonym revisions but some of the most frequent changes are used to adapt the text to some editorial conventions, so they would have to be filtered manually). Currently, I'm using two packages for TBL machine-learning: muTBL and fnTBL (both free but not muTBL is not open-source). muTBL is in Prolog, and it has serious memory limitation - but it allows for iterative, incremental learning of rules on the stack. fnTBL is C++ and can process much larger corpora but crashes a lot, and its newest version (1.2) didn't work for me at all. Fortunately, there is a Java implementation of the TBL toolkit that works in GATE, and it's GPL, so it would allow to adapt it for our needs.

With these tools, it should be fairly easy to add some relevant rules for new languages even for people with limited linguistic competence. Yet, some of the rules require using morphosyntactic lexicons, which aren't so easy to create or find.

Of course, the use of TBL is not limited to bootstrapping new rules for new languages - TBL learning can enhance existing rules quite significantly, as I observed. The process is not very time-consuming even with dirty hacks, so I'm quite optimistic about the practical application.

So if anyone wants to help with porting my scripts to Java, just let me know - this way, we'll have the tool a bit faster :)

8.4.09

Łagodne wprowadzenie do redagowania reguł

W ostatnią niedzielę, 5 kwietnia 2009, na Studenckim Forum Badań nad Językiem prowadziłem warsztaty dotyczące tworzenia reguł dla LanguageToola. Przy okazji parę powiedziałem parę słów o architekturze i przetwarzaniu powierzchniowym, bo LT to de facto nie tylko korektor, ale w ogóle system przetwarzania powierzchniowego języka naturalnego. Mam nadzieję, że moja prezentacja bez komentarza werbalnego też się komuś przyda.