in English

Analizator morfologiczny Morfeusz

Podstawowe pojęcia

Słowem nazywamy ciąg znaków w tekście w języku naturalnym zwykle wydzielony odstępami lub znakami interpunkcyjnymi. Leksem to abstrakcyjna jednostka języka, wyraz słownikowy. Formą wyrazową nazywamy słowo zinterpretowane — przypisane do konkretnego leksemu i opisane co do jego funkcji gramatycznej.

Analiza morfologiczna polega na określeniu dla danego słowa wszystkich form wszystkich leksemów, których może ono być wykładnikiem. W procesie tym nie uwzględnia się kontekstu, w którym wystąpiło dane słowo. W językoznawstwie termin analiza morfologiczna odnosi się raczej do rozkładania wyrazów na na elementarne składniki morfologiczne (morfemy), być może sensowniej byłoby więc mówić o analizie fleksyjnej, niestety wydaje się, że to ten pierwszy termin utarł się w środowisku językoznawstwa komputerowego.

Ujednoznacznianiem morfologicznym nazywamy określanie na podstawie kontekstu, jaką formę realizuje dane wystąpienie słowa.

Następujące po sobie analizę i ujednoznacznianie morfologiczne nazywa się żargonowo tagowaniem.

Celem hasłowania (lematyzacji) jest wskazanie dla każdego słowa tekstowego opisującej je jednostki słownika morfologicznego (leksemu). Jest to więc analiza morfologiczna (lub tagowanie) ograniczona tylko do części informacji o formach — do lematów.

Przybliżone hasłowanie polegające na odcięciu ze słów części zmieniającej się przy odmianie bywa nazywane stemowaniem. Metoda ta ma sens dla języków o ograniczonej fleksji, ale dla polskiego daje wyniki wysoce niezadowalające. W kontekście Morfeusza mówimy więc o prawdziwym hasłowaniu.

Operacją odwrotną do analizy morfologicznej jest synteza morfologiczna — utworzenie wykładnika formy odmiany danej przez wskazanie lematu (identyfikatora leksemu) i żądanej charakterystyki fleksyjnej.

Program Morfeusz

Program Morfeusz wykonuje analizę morfologiczną dla języka polskiego. W obecnej wersji nie zawiera modułu zgadującego nieznane słowa (można więc powiedzieć, że jest słownikiem morfologicznym).

Oto przykład wyników działania programu dla tekstu „Mam próbkę analizy morfologicznej.”:

0 1 Mam mama subst:pl:gen:f
mamić impt:sg:sec:imperf
mieć fin:sg:pri:imperf
1 2 próbkę próbka subst:sg:acc:f
2 3 analizy analiza subst:sg:gen:f
subst:pl:nom.acc.voc:f
3 4 morfologicznej morfologiczny adj:sg:gen.dat.loc:f:pos
4 5 . . interp

Każdy wiersz tabeli zawiera jedną interpretację morfologiczną, kreski oddzielają grupy interpretacji dla poszczególnych słów. Tekst wejściowy został podzielony na słowa (w szczególności kropka została oddzielona od napisu „morfologicznej”). Na prawo od słów podano odpowiadające im lematy (formy hasłowe), a w następnej kolumnie — znaczniki opisujące wartości kategorii gramatycznych charakteryzujące poszczególne formy.

Słowu „mam” zostały przypisane trzy interpretacje: jako forma liczby mnogiej rzeczownika „mama”, jako forma trybu rozkazującego czasownika „mamić” i wreszcie jako forma czasu teraźniejszego czasownika „mieć”. Słowo „analizy” zostało jednoznacznie przypisane do lematu „analiza”, może ono jednak być interpretowane zarówno jako forma liczby pojedynczej jak i mnogiej — w różnych przypadkach.

Znaczniki używane w programie Morfeusz są pozycyjne. Pierwsza pozycja określa klasę gramatyczną („część mowy”), następne pozycje reprezentują wartości kategorii gramatycznych przysługujących danej klasie. Na przykład znacznik subst oznacza rzeczownik, a po nim stoją wartości liczby, przypadka i rodzaju. Oznaczenia są w większości skrótami łacińskich nazw wartości. Z niewielkimi zmianami używany jest system znaczników (ang. tagset) opisany w artykule System znaczników morfosyntaktycznych w korpusie IPI PAN opublikowanym w Polonikach XXII/XXIII, 2003, s. 39-55.

Warianty programu Morfeusz

Istnieją trzy warianty programu przygotowane z użyciem różnych danych:

Dane Morfeusza SIaT miały z natury charakter przybliżony, ponieważ Indeks Tokarskiego-Saloniego opisuje fleksję polską jako potencję. Część mechanicznie utworzonych interpretacji fleksyjnych musi więc być nadmiarowa, a czasem zupełnie błędna. W SGJP natomiast opis każdego leksemu został przygotowany indywidualnie, może on więc być przeprowadzony dużo bardziej precyzyjnie. Słownik tego wariantu programu jest też dużo obszerniejszy. W związku z tym wersja SIaT programu została w zasadzie zarzucona, a niniejsze strony dotyczą przede wszystkim Morfeusza SGJP.

Morfeusz SGJP odpowiada w miarę dokładnie zawartości SGJP, przez co jest użyteczna dla twórców SGJP, natomiast Morfeusz Polimorf jest od niego bogatszy. Zapewne ta ostatnia wersja jest najbardziej godna polecenia do szerokiego użytku.

Morfeusz SGJP jest wyposażony także w moduł syntezy.

Morfeusz ma postać biblioteki dynamicznej (skompilowanej dla systemu Linux 32/64bit, Windows i Mac OS X/Intel32). W paczce dystrybucyjnej jest dostępny bardzo prosty program używający tej biblioteki, który czyta tekst ze standardowego wejścia i wypisuje wyniki analizy na standardowym wyjściu. Uwaga: jest to program uruchamiany z wiersza poleceń („okienka MS-DOS”).

Za bardziej interesującą uważamy możliwość użycia biblioteki Morfeusz we własnym programie np. napisanym w którymś z języków skryptowych. Daje to dużo większą elastyczność wykorzystania wyników analizatora (np. można łatwo ograniczyć analizę do samego hasłowania). Dotychczas powstały moduły pozwalające na korzystanie z Morfeusza w programach napisanych w języku C/C++, Javie, Perlu, Pythonie, SWI Prologu, PHP.

Morfeusz jest programem w pełni funkcjonalnym, nie znaczy to jednak, że nie będzie ulegał zmianom. Planujemy w szczególności pewne wzbogacenie informacji dostarczanej przez Morfeusza, co będzie wymagało niewielkich zmian w interfejsie programistycznym biblioteki.

Ostatnie zmiany: 26 października 2010 sgjpol@gmail.com