Lietuvių kalbos morfologija atvirojo kodo „Hunspell“ platformoje
Full text
VIRGINIJUS DADURKEVIČIUS
Uniwersytet Wileński
MORFOLOGIA JĘZYKA LITEWSKIEGO NA PLATFORMIE OTWARTEGO KODU HUNSPELL1
SŁOWA KLUCZOWE: lingwistyka komputerowa, język litewski, gramatyka, morfologia, analiza morfologiczna, sprawdzanie pisowni, indeksowanie tekstu, wyszukiwanie, oprogramowanie open source, Hunspell.
WPROWADZENIE
Ponad 100 lat temu, dzięki staraniom Jonasa Jablonskisa (1901, 1918, 1922), rozpoczęto standaryzację języka litewskiego i przystosowano go do pełnienia funkcji głównego czynnika jednoczącego państwo. Już w pierwszej gramatyce Jonasa Jablonskisa Lietuviškos kalbos gramatikoje (1901) sformalizowano fonetykę, morfologię i składnię języka litewskiego: zdefiniowano podstawowe pojęcia, przedstawiono zasady odmiany wyrazów i budowy zdania (zob. rys. 1).
RYS. 1. Fragment Lietuviškos kalbos gramatikos Jonasa Jablonskisa, 19012
Nieoceniony jest wkład Jonasa Jablonskisa w standaryzację leksyki języka litewskiego i objaśnianie semantycznych właściwości wyrazów.
Przez długi czas w zupełności wystarczało to uczniom i nauczycielom, pisarzom i czytelnikom, urzędnikom i naukowcom. Wraz z pojawieniem się zmieniającej cywilizację nowości – komputerów – klasyczna gramatyka i leksyka musiały „przywdziać nowe szaty” i stać się pełnoprawną częścią nowych
1 Artykuł przygotowano na podstawie referatu Lietuvių kalbos gramatika atvirojo kodo pasaulyje, wygłoszonego podczas 24. międzynarodowej konferencji Jonasa Jablonskisa Skaitmeniniai kalbos ištekliai, jų plėtros kryptys ir panaudos galimybės (29.09.2017); konferencję zorganizowały Centrum Badań nad Językiem Standardowym Litewskiego Instytutu Języka oraz Katedra Języka Litewskiego Uniwersytetu Wileńskiego.
2 Ilustracja z http://www.epaveldas.lt/vbspi/biRecord.do?biRecordId=25383.
BENDRINĖ KALBA 90 (2017)
www.bendrinekalba.lt
ISSN 2351–7204
VIRGINIJUS DADURKEVIČIUS. Lietuvių kalbos morfologija atvirojo kodo hunspell platformoje | 2
częścią technologii. Początkowo wiedza o języku była potrzebna w komputerach do kodowania tekstu (zamiany liter na liczby), automatycznego korygowania błędów wprowadzanych tekstów oraz dzielenia na sylaby tekstów w kolumnach justowanych dwustronnie. Nieco później – do wyszukiwania informacji, analizy i syntezy mowy, tłumaczenia maszynowego z jednego języka na drugi, automatycznego rozumienia treści, „emocjonalnej” analizy tekstu itd. Zagadnienia językowe musiały zostać szczegółowo sformalizowane i zapisane w inny, zrozumiały dla komputerów sposób. Najważniejsza z tych dziedzin to morfologia, ponieważ stanowi podstawę wszelkich bardziej pogłębionych prac z lingwistyki komputerowej (składni, analizy semantycznej itp.).
Pierwszą taką pracę na przełomie wieków wykonał programista zakładu doświadczalnego „Bitas”, Vytautas Zinkevičius (1996, 2000). Przez niemal dwie dekady była ona niezastąpionym i jedynym narzędziem do nowoczesnych badań nad językiem litewskim i zastosowań komputerowych. System ten z powodzeniem wykorzystywano do wykrywania błędów ortograficznych w programach do edycji tekstu, a także do analizy i syntezy morfologicznej w pracach naukowych i aplikacyjnych w Instytucie Języka Litewskiego oraz na Uniwersytecie Witolda Wielkiego (gdzie jego prace zyskały nazwę „Lemuoklis”) i Uniwersytecie Wileńskim. Stworzono nawet wariant tego systemu przystosowany do analizy dawnego języka litewskiego (Gelumbeckaitė i in. 2012). Jednak wraz z rosnącymi potrzebami lingwistyki komputerowej zaczęły ujawniać się wady systemu: niestandardowe, niezamówione struktury danych; zamknięty kod; niepełna realizacja nazw własnych, illatiwu, liczby podwójnej, czasu przyszłego czasowników podstawowych, form skróconych i rzadkich. Dalszy rozwój systemu szczególnie utrudniał zamknięty kod – dane i algorytm mógł w praktyce modyfikować tylko sam autor.
Aby uniknąć opisanych wcześniej wad i stworzyć morfologię komputerową języka litewskiego nowej generacji, sformułowano następujące wymagania:
1) używać i tworzyć wyłącznie oprogramowanie typu open source;
2) specyficzne cechy języka litewskiego mogą dotyczyć wyłącznie danych, a nie ich formy ani interpretacji;
3) cały kod programu musi być uniwersalny i nadawać się do każdego innego języka;
4) wykorzystać rozwiązania z powodzeniem zastosowane w innych językach świata.
Wymagania te dobrze spełnia platforma Hunspell3. Ponadto po takim opisie języka można później z łatwością sprawdzać błędy ortograficzne w wielu (ponad 50) aplikacjach (OpenOffice, LibreOffice, Firefox, Chrome, Safari, InDesign itd.), przeprowadzać analizę i syntezę morfologiczną słów, prowadzić inteligentne wyszukiwanie informacji tekstowych itp.
3 Dostęp online: https://en.wikipedia.org/wiki/Hunspell.
BENDRINĖ KALBA 90 (2017)
www.bendrinekalba.lt
ISSN 2351–7204
VIRGINIJUS DADURKEVIČIUS. Lietuvių kalbos morfologija atvirojo kodo hunspell platformoje | 3
W artykule omówiono nową implementację morfologii języka litewskiego opartą na platformie Hunspell. Przedstawiono związane z nią problemy i sposoby ich rozwiązywania, a także przykłady pomyślnych testów i zastosowań praktycznych.
1. CECHY OPISU JĘZYKA LITEWSKIEGO W FORMACIE HUNSPELL
1.1. Hunspell – przesłanki powstania platformy i zasady ogólne
Platforma open source Hunspell rozwinęła się z najprostszych narzędzi do sprawdzania pisowni Ispell4, Aspell5, MySpell6 i innych. Stopniowe zwiększanie ich złożoności i dostosowywanie do coraz większej liczby języków (zwłaszcza aglutynacyjnych, takich jak fiński, węgierski, turecki itp.) umożliwiło rozwiązywanie nie tylko zadań sprawdzania pisowni, lecz także analizy morfologicznej i syntezy. Twórcami tej niezwykle popularnej na świecie platformy są głównie naukowcy oraz inżynierowie-programiści pochodzenia węgierskiego (Trón i in. 2005). Nic dziwnego, że pierwszy człon jej nazwy, „Hun-”, pochodzi od angielskiej nazwy Węgier.
Morfologię języka opisują na platformie Hunspell dwa pliki tekstowe: plik z rozszerzeniem .aff zawiera reguły fleksyjne, natomiast plik z rozszerzeniem .dic zawiera słownik form wyrazowych z podstawową informacją morfologiczną oraz odsyłaczami do jednej lub kilku grup reguł fleksyjnych, które można dodatkowo zastosować. Pojedynczą regułę można sobie wyobrazić jako instrukcję określającą:
1) Co można w wyrazie ze słownika form wyrazowych na co zamienić. Na przykład w regule
SFX 85 čias ty [^š]čias is:Masc_Sg_Voc
„SFX” oznacza, że zmieniana jest końcówka wyrazu, a zamiana może polegać na zastąpieniu „-čias” przez „-ty”.
„PFX” oznaczałoby, że zmieniany jest początek wyrazu. Zmiany wewnątrz wyrazu nie są przewidziane.
2) Numer grupy reguł fleksyjnych, do której przypisana jest dana reguła. Grupa może składać się z jednej lub kilku reguł, które zawsze stosuje się razem. W poprzednim przykładzie reguła jest przypisana do grupy o numerze „85”.
3) Warunki, w których zamiana jest możliwa (stosuje się pewien formalizm wyrażeń regularnych). W naszym przykładzie zamiana jest możliwa tylko pod warunkiem, że wyraz ze słownika form wyrazowych nie kończy się na „-ščias” (np. „vaikiščias”).
4) Informacja morfologiczna związana z tą zamianą. W naszym przykładzie z taką zmianą końcówki wyrazu powiązana jest etykieta morfologiczna „Masc_Sg_Voc” (rodzaj męski, liczba pojedyncza, wołacz, np. „svety”).
4 Dostęp online: https://www.cs.hmc.edu/~geoff/ispell.html.
5 Dostęp online: http://aspell.net.
6 Dostęp online: https://code.google.com/archive/a/apache-extras.org/p/ooo-myspell.
BENDRINĖ KALBA 90 (2017)
www.bendrinekalba.lt
ISSN 2351–7204
VIRGINIJUS DADURKEVIČIUS. Lietuvių kalbos morfologija atvirojo kodo hunspell platformoje | 4
Więcej informacji o zasadach tworzenia reguł fleksyjnych i określania informacji morfologicznej w Hunspell można znaleźć na stronie tej platformy7, a możliwości opisu morfologii różnych języków na tej platformie zostały dość dokładnie omówione w rozprawie doktorskiej Tommiego A. Pirinena (2014).
1.2. Szczególne wymagania dotyczące implementacji języka litewskiego
Aby taka formalizacja języka nadawała się do analizy morfologicznej, syntezy, indeksowania informacji tekstowej i wyszukiwania, należy spełnić następujące dwa wymagania:
1) do słownika form wyrazowych mogą być wpisywane wyłącznie lematy (formy hasłowe);
2) słowotwórstwo za pomocą przedrostków i przyrostków oraz formy zwrotne muszą być odzwierciedlone nie w .aff, lecz w pliku .dic.
Pierwszego wymagania niełatwo spełnić w języku litewskim ze względu na dużą różnorodność fleksji czasowników (około 170 wariantów), jednak rozwiązanie tego problemu umożliwiła funkcja platformy Hunspell, która pozwala wywołać jedną regułę fleksyjną z innej. Choć głębokość takich wywołań może wynosić tylko jeden, znacznie zmniejsza to rozmiar pliku reguł fleksyjnych — z kilku milionów do kilkunastu tysięcy wierszy.
Spełnienie drugiego wymagania nieco zwiększa rozmiar pliku .dic, ponieważ na przykład przedrostkowe, przyrostkowe i zwrotne derywaty od tego samego rdzenia — „imti”, „paimti”, „suimti” i „nesiimti” — będą wpisywane w osobnych wierszach. Nie jest to jedyna negatywna konsekwencja tego wymagania — łatwo można przeoczyć i nie uwzględnić jakiegoś rzadziej używanego derywatu czasownika lub przymiotnika. Problem ten jest jednak dość dokładnie rozwiązywany przez dobór lematów przede wszystkim nie na podstawie opublikowanych słowników, lecz zgromadzonych korpusów tekstów.
1.3. Fragmenty litewskich plików.dic i.aff (przykłady)
Kilka fragmentów litewskiego pliku .dic (słownika), z pogrubionymi odpowiednikami przykładowych wyrazów Jono Jablonskisa, przedstawiono na rysunku 2.
7 Dostęp online: https://github.com/hunspell/hunspell.
BENDRINĖ KALBA 90 (2017) www.bendrinekalba.lt ISSN 2351–7204
VIRGINIJUS DADURKEVIČIUS. Lietuvių kalbos morfologija atvirojo kodo hunspell platformoje | 5
głaz polny/118,122,132,137,141,145,157,159,9999 po:noun
laukan po:adverb
pole/1,3,7,10,12,14,20,21,30,9999 po:noun
Laukavičienė/738,740,745,9999 po:nazwisko_rodzinne
...
gościnny/1467,1767,1775,1781,1784,1841,9999 po:adjective
gość/71,73,85,93,98,100,106,116,9999 po:noun
goszczenie się/1308,1310,1314,1315,1317,1319,9999 po:noun_reflexive
Svečiulienė/738,740,745,9999 po:nazwisko_rodzinne
...
Gaidulis/118,122,132,141,145,157,9999 po:nazwisko
Gaidulytė/738,740,745,749,754,760,9999 po:nazwisko
kogut/264,268,278,280,284,288,300,302,9999 po:rzeczownik
Gaidys/264,268,278,284,288,300,9999 po:nazwisko
...
peilinis/2036,9999 po:adjective
nóż/118,122,132,137,141,145,157,159,9999 po:noun
nożyk/1,3,8,10,12,14,20,21,30,9999 po:noun
Pejpus/444,446,452,9999 po:noun_geographic_name
RYS. 2. Fragment pliku .dic z formami wyrazów. Liczby po ukośniku oznaczają odwołania do adresowanych grup reguł fleksyjnych. Na czerwono wyróżniono odwołania do grup reguł pokazanych na RYS. 3.
Na rys. 3 przedstawiono kilka fragmentów pliku .aff z regułami fleksyjnymi języka litewskiego:
SFX 21 Y 1
SFX 21 jako uosna. is:Masc_Pl_I
...
SFX 98 Y 2
SFX 98 jako ai. is:Masc_Pl_Nom
SFX 98 as ų. is:Masc_Pl_Gen
...
SFX 264 Y 6
SFX 264 jest is. is:Masc_Sg_Nom
SFX 264 ys ys. is:Masc_Sg_Nom
SFX 264 is žio. is:Masc_Sg_Gen
SFX 264 ys žio. is:Masc_Sg_Gen
SFX 264 ai ai. is:Masc_Pl_Nom
SFX 264 ai ų. is:Masc_Pl_Gen
...
SFX 145 Y 12
SFX 145 jest iams. is:Masc_Pl_Dat
SFX 145 ys iams. is:Masc_Pl_Dat
SFX 145 jest iam. jest:Masc_Pl_Dat_short
SFX 145 ys iam. jest:Masc_Pl_Dat_short
SFX 145 jest ius. jest:Masc_Pl_Acc
SFX 145 ys ius. jest:Masc_Pl_Acc
SFX 145 is iais. is:Masc_Pl_Inst
SFX 145 ys iais. is:Masc_Pl_Inst
SFX 145 is iuose. is:Masc_Pl_Loc
SFX 145 ys iuose. is:Masc_Pl_Loc
SFX 145 is iuos. is:Masc_Pl_Loc_short
SFX 145 ys iuos. is:Masc_Pl_Loc_short
RYS. 3. Fragmenty pliku reguł fleksyjnych .aff. Pogrubiono kilka reguł, które są dalej wykorzystywane do zilustrowania analizy morfologicznej.
BENDRINĖ KALBA 90 (2017)
www.bendrinekalba.lt
ISSN 2351–7204
VIRGINIJUS DADURKEVIČIUS. Lietuvių kalbos morfologija atvirojo kodo hunspell platformoje | 6
Po zastosowaniu opisu języka przedstawionego w przykładach oraz standardowych (niezależnych od języka) narzędzi analitycznych Hunspell otrzymalibyśmy następującą odpowiedź dla przykładowych słów Jono Jablonskio (zob. rys. 4).
RYS. 4. Przykład analizy morfologicznej słów
2. PRZEBIEG PRAC I WYNIKI
Po opracowaniu pełnego opisu języka w formacie Hunspell (tj. utworzeniu odpowiednich plików .dic i.aff) otwierają się praktycznie nieograniczone możliwości zastosowań praktycznych – od sprawdzania pisowni lub gramatyki po inteligentne systemy wyszukiwania informacji. Ze względu na dość złożoną morfologię języka litewskiego (wiele reguł i ich grup) oraz konieczność uzgadniania listy lem z dużymi korpusami (ponad 1 mld słów), odzwierciedlającymi rzeczywisty stan współczesnego pisanego języka litewskiego, od pierwszych prób do opracowania sprawnie działającej wersji morfologii minęło około 5 lat. Przykłady przedstawione wcześniej w tym artykule mają charakter przede wszystkim ilustracyjny i służą jedynie zrozumieniu idei; w rzeczywistości reguły i ich grupy są znacznie bardziej złożone, zwłaszcza te związane z czasownikami.
Aby skrócić czas opracowywania morfologii i uniknąć błędów podczas zapisywania tysięcy reguł oraz przypisywania ich lemom, najpierw stworzono wstępny, bardziej abstrakcyjny opis morfologii niż wymagany w specyfikacjach Hunspell (reguły – w arkuszu MS Excel, lematy i ich klasyfikacja – w bazie danych MS Access). Opracowano również narzędzia programowe, które automatycznie przekształcają te wstępne struktury, łatwiejsze do odczytania i zrozumienia przez człowieka, w pliki .aff i.dic lub inny format określony przez specyfikę zastosowania. Najnowsza wersja litewskich plików .aff i.dic jest udostępniona na stronie autora w serwisie GitHub8.
W całym procesie formalizacji morfologii korzystano z następujących głównych źródeł:
8 Dostęp online: https://github.com/dadurka/hunspell_morphology_lt.
BENDRINĖ KALBA 90 (2017)
www.bendrinekalba.lt
ISSN 2351–7204
VIRGINIJUS DADURKEVIČIUS. Lietuvių kalbos morfologija atvirojo kodo hunspell platformoje | 7
1) Gramatyka współczesnego języka litewskiego (DLKG 2006);
2) Korpus współczesnego języka litewskiego Uniwersytetu Witolda Wielkiego (dalej – VDU)9 – ~140 mln słów;
3) Korpus tłumaczenia maszynowego Uniwersytetu Wileńskiego10 – ~800 mln słów, ~4 mln unikatowych;
4) Dokumenty Sejmu Republiki Litewskiej (dalej – LRS)11 – ~400 mln słów, ~1 mln unikatowych;
5) Słownik współczesnego języka litewskiego (DŽ 2006) – ~60 tys. lem;
6) Słownik języka litewskiego12 – ~500 tys. haseł;
7) Słownik wyrazów obcych (VTŽŽe) – ~22 tys. lem;
8) Słownik litewskich nazwisk (LPŽ) (~80 tys. nazwisk).
Łącznie opracowano około 5000 adresowalnych grup reguł (18 000 pojedynczych reguł). Rozkład grup reguł według części mowy przedstawiono na rysunku 5.
RYS. 5. Rozkład grup reguł fleksyjnych według części mowy
Plik .dic (słownik) utworzono na podstawie 171 000 lem. Rozkład lem według części mowy przedstawiono na rysunku 6.
9 Dostęp online: http://tekstynas.vdu.lt/tekstynas/.
10 Dostęp online: https://www.versti.eu/.
11 Dostęp online: http://www.lrs.lt/.
12 Dostęp online: http://www.lkz.lt/.
BENDRINĖ KALBA 90 (2017) www.bendrinekalba.lt ISSN 2351–7204
VIRGINIJUS DADURKEVIČIUS. Lietuvių kalbos morfologija atvirojo kodo hunspell platformoje | 8
RYS. 6. Rozkład lem według części mowy
Podczas selekcji ograniczano się wyłącznie do poprawnej współczesnej litewskiej leksyki i unikano wyrazów błędnych, nielitewskich, niezalecanych, obraźliwych i przestarzałych. Rzeczowniki własne dodatkowo dzielono na nazwiska, imiona, nazwy geograficzne i inne przypadki. Taka selekcja ułatwia stosowanie opracowanej morfologii do sprawdzania pisowni i pozwala łatwiej wykorzystać wyniki analizy na późniejszych etapach analizy tekstu (składnia, rozpoznawanie nazwanych bytów, indeksowanie i wyszukiwanie).
Dokładność nowo opracowanego analizatora morfologicznego wynosi około 98%, tj. średnio na 100 słów analizator morfologiczny poprawnie interpretuje 98 (Kapočiūtė-Dzikienė i in. 2017). Pozostałe 2% nierozpoznanych słów to najczęściej błędy ortograficzne, wyrazy z innych języków (imiona, nazwiska, cytaty fraz itp.), wyrazy niezalecane i nienormatywne oraz poprawne wyrazy, które nie zostały uwzględnione na liście lem.
3. ZASTOSOWANIE PRAKTYCZNE
3.1. System analizy składniowo-semantycznej VDU
Nowo opracowana morfologia języka litewskiego na platformie Hunspell została w latach 2011–2015 wdrożona w systemie analizy składniowo-semantycznej VDU13 do sprawdzania pisowni i gramatyki oraz przeprowadzania analizy morfologicznej i składniowej tekstu (zob. rys. 7). Analizę morfologiczną uzupełniono hybrydowym statystyczno-regułowym ujednoznacznianiem (ukryty model Markowa, prawdopodobieństwa trigramów przybliżone na podstawie złotego standardu, algorytm Viterbiego, kilka wyjątków). Więcej o ujednoznacznianiu w analizie morfologicznej można przeczytać w publikacji Jurgitos Kapočiūtės-Dzikienės, Erikos Rimkutės i Loïca Boizou (2017).
13 Dostęp online: http://semantika.lt/SyntacticAndSemanticAnalysis/Analysis.
BENDRINĖ KALBA 90 (2017) www.bendrinekalba.lt ISSN 2351-7204
VIRGINIJUS DADURKEVIČIUS. Lietuvių kalbos morfologija atvirojo kodo hunspell platformoje | 9
RYS. 7. Hunspell — zastosowanie morfologii języka litewskiego w systemie analizy składniowo-semantycznej VDU
3.2. System wyszukiwania w rejestrze aktów prawnych LRS
W latach 2011–2013 równolegle z opracowywaniem nowej morfologii języka litewskiego prowadzono jej wdrażanie w systemie wyszukiwania w rejestrze aktów prawnych w kancelarii LRS14. Zazwyczaj w takich systemach, jeszcze przed przeprowadzeniem pierwszego wyszukiwania, wszystkie dokumenty są indeksowane przez lematyzację, tzn. wszystkie wyrazy w dokumentach zamienia się na ich lematy i zapamiętuje, gdzie wystąpił dany lemat. Przed wykonaniem zapytania jego tekst również poddaje się lematyzacji w ten sam sposób, dzięki czemu później odnajdywana jest nie tylko forma wyrazu zapisana w zapytaniu, lecz także każda inna forma tego wyrazu występująca w przeszukiwanych dokumentach. Ponieważ w tym systemie nie można było bezpośrednio wykorzystać danych .dic,.aff, wymagany przez system oryginalny format (plik tekstowy, w którym każdy wiersz ma postać [lemat] [część mowy] → [lista form]) generowano na podstawie wspomnianego wcześniej pierwotnego opisu morfologii. Chociaż na podstawie tego opisu można wygenerować około 15 mln teoretycznie możliwych form wyrazów, ze względu na wewnętrzne ograniczenia systemu wyszukiwania wykorzystano z nich tylko około 1 mln najczęstszych. To rozwiązanie się sprawdziło: wyszukiwanie działa dość sprawnie i jest używane do dziś (zob. rys. 8).
14 Dostęp online: https://www.e-tar.lt
BENDRINĖ KALBA 90 (2017)
www.bendrinekalba.lt
ISSN 2351–7204
VIRGINIJUS DADURKEVIČIUS. Lietuvių kalbos morfologija atvirojo kodo hunspell platformoje | 10
RYS. 8. Zastosowanie morfologii języka litewskiego w wyszukiwarce Rejestru Aktów Prawnych LRS
4.3. System indeksowania i wyszukiwania dokumentów typu open source Solr/Lucene15
Aby szerzej wykorzystać zalety oprogramowania open source i doświadczenie zdobyte podczas wdrażania morfologii języka litewskiego w Rejestrze Aktów Prawnych, stworzono system indeksowania i wyszukiwania litewskich dokumentów oparty na Solr/Lucene. Bezpośrednie zastosowanie danych .dic,.aff w tym systemie jest możliwe, lecz bardzo nieefektywne, dlatego zastąpiono je transduktorem skończonych stanów (FST – Finite State Transducer), utworzonym na podstawie wcześniej wspomnianego pierwotnego opisu morfologicznego i generującym wszystkie formy wyrazów teoretycznie możliwe według tego opisu. Takie rozwiązanie pozwala nie tylko precyzyjnie indeksować i odnajdywać wszystkie poszukiwane formy wyrazów, lecz także przyspieszyć indeksowanie setki razy, a wyniki wyszukiwania uzyskiwać z wykorzystaniem różnych relacji semantycznych, z uwzględnieniem dodatkowych informacji taksonomiczno-semantycznych. Na przykład, jeśli w zapytaniu podano wyraz „gyvatė” [wąż], system dodatkowo wyszukuje „angis” [żmija], „barškuolė” [grzechotnik] itp. (zob. rys. 9), natomiast po podaniu w zapytaniu wyrazu „angis” [żmija] wśród wyników wyszukiwania nie będzie już ani form wyrazu „gyvatė” [wąż], ani „barškuolė” [grzechotnik] (Ralys, Dadurkevičius 2017).
15 Dostęp online: http://lucene.apache.org/solr/.
BENDRINĖ KALBA 90 (2017) www.bendrinekalba.lt ISSN 2351–7204
VIRGINIJUS DADURKEVIČIUS. Lietuvių kalbos morfologija atvirojo kodo hunspell platformoje | 11
RYS. 9. Przykład zastosowania morfologii języka litewskiego w systemie indeksowania i wyszukiwania dokumentów typu open source Solr/Lucene
4. PERSPEKTYWY
Aby szerzej stosować implementację morfologii języka litewskiego na platformie Hunspell, należałoby rozwijać ją w dwóch kierunkach: wariantu języka normatywnego i wariantu pełnego (język normatywny i nienormatywny). Pierwszy wariant pozwoliłby nadal wykonywać zadania sprawdzania pisowni i podawać zalecenia dotyczące poprawiania naruszeń norm językowych, drugi zaś nadawałby się do rozwiązywania stosowanych zadań analizy żywego języka.
Nie mniej ważnym zadaniem na przyszłość jest stałe uzupełnianie słownika morfologicznego o pominięte i nowo powstające wyrazy, poprawianie ujawnionych błędów reguł fleksyjnych i klasyfikacji wyrazów oraz publikowanie co najmniej raz w roku najnowszych wersji .dic,.aff.
Wykorzystując zgromadzone już doświadczenie, nietrudno byłoby przygotować także formalny opis litewskich dialektów (zwłaszcza żmudzkiego) lub dawnego języka litewskich tekstów.
BENDRINĖ KALBA 90 (2017) www.bendrinekalba.lt ISSN 2351–7204
VIRGINIJUS DADURKEVIČIUS. Lietuvių kalbos morfologija atvirojo kodo hunspell platformoje | 12
ŠALTINIAI
DLKG 2006 – Dabartinės lietuvių kalbos gramatika. Red. Vytautas Ambrazas. 4-oji pataisyta laida, Vilnius: Mokslo ir enciklopedijų leidybos institutas.
DŽ 2006 – Dabartinės lietuvių kalbos žodynas (elektroninis). Vyr. red. Stasys Keinys. 6-as leid. Vilnius: Lietuvių kalbos institutas.
LKŽe – Lietuvių kalbos žodynas, elektroninis variantas. Red. kolegija: Gertrūda Naktinienė (vyr. red.), Jonas Paulauskas, Ritutė Petrokienė, Vytautas Vitkauskas, Jolanta Zabarskaitė, Vilnius: Lietuvių kalbos institutas, 2005. Atnaujinta versija, 2008. Prieiga internete: www.lkz.lt.
LPŽ – Aleksandras Vanagas (red.), Lietuvių pavardžių žodynas 1–2, Vilnius: Mokslas, 1985–1989.
VTŽŽe 2003 – Vaitkevičiūtė V. Tarptautinių žodžių žodynas (elektroninis). Vilnius: Fotonija.
LITERATŪRA
Gelumbeckaite ir kt. 2012: Gelumbeckaite J., Šinkūnas M., Zinkevičius V. Old Lithuanian Reference Corpus (SLIEKKAS) and Automated Grammatical Annotation. – Journal for Language Technology and Computational Linguistics (JLCL), 2012. - 27.2. Altüberlieferte Sprachen als Gegenstand der Texttechnologie. Ancient Languages as the Object of Text Technology, ed. by Armin Hoenen, Thomas Jügel, Gesellschaft für Sprachentechnologie und Computerlinguistik (GSCL), 83–96 p.
Jablonskis J. 1901: Lietuviškos kalbos gramatika. Rašytojams ir skaitytojams vadovėlis. Parašė Petras Kriaušaitis. Tilžėje 1901. Spausdinta pas Otto v. Mauderode. 88 p.
Jablonskis J. 1918: Lietuvių kalbos gramatika: etimologija: pirmosioms mūsų aukštesniosioms mokslo įstaigoms / P. Kriaušaičio ir Rygiškių Jono. Vilnius: Lietuvių mokslo draugija. 237 p.
Jablonskis J. 1922: Lietuvių kalbos gramatika: etimologija: vidurinėms mokslo įstaigoms / Rygiškių Jonas. 2-asis leid. Kaunas; Vilnius: „Švyturio“ b-vė, (Tilžė: Otto v. Mauderodės sp.). 280 p.
Kapočiūtė-Dzikienė J. ir kt. 2017: Jurgita Kapočiūtė-Dzikienė, Erika Rimkutė, Loïc Boizou Comparison of Lithuanian Morphological Analyzers. – Text, Speech, and Dialogue. 20th International Conference, TSD 2017, Prague, August 27–31, 2017, Proceedings, 47–56.
BENDRINĖ KALBA 90 (2017) www.bendrinekalba.lt ISSN 2351–7204
VIRGINIJUS DADURKEVIČIUS. Lietuvių kalbos morfologija atvirojo kodo hunspell platformoje | 13
Ralys D., Dadurkevičius V. 2017: Informacijos paieškos sistemos ir lietuvių kalba, [žiūrėta 2017-10-30]. Prieiga internete:
https://www.slideshare.net/DanieliusRalys/informacijos-paiekos-sistemos-ir-lietuvi-kalba-81373517.
Tommi A Pirinen 2014: Weighted Finite-State Methods in Spell-Checking and Correction, Doctoral dissertation, University of Helsinki.
Trón V. ir kt. 2005: Viktor Trón, András Kornai, György Gyepesi, László Németh, Péter Halácsy, and Dániel Varga. 2005. Hunmorph: open source word analysis. – Proceedings of the Workshop on Software (Software '05). Association for Computational Linguistics, Stroudsburg, PA, USA, 77–85.
Zinkevičius V. 1996: Lietuvių kalbos morfologinių reiškinių kompiuterizavimo lingvistiniai aspektai. – Lietuvių katalikų mokslų akademijos suvažiavimo darbai, XVI tomas, 148–154.
Zinkevičius V. 1996: Lietuvių kalbos morfologinių reiškinių kompiuterizavimas. – Lietuvių katalikų mokslų akademijos suvažiavimo darbai, XVI tomas, 155–162.
Zinkevičius V. 2000: Lemuoblis – morfologinei analizei. – Darbai ir dienos 24, 245–273.
Gauta 2017 10 31
Priimta 2017 12 08
VIRGINIJUS DADURKEVIČIUS
Vilniaus universiteto Taikomųjų mokslų institutas
M. K. Čiurlionio g. 29, 03100 Vilnius
[email protected]
[email protected]
BENDRINĖ KALBA 90 (2017)
www.bendrinekalba.lt
ISSN 2351–7204
VIRGINIJUS DADURKEVIČIUS. Lietuvių kalbos morfologija atvirojo kodo hunspell platformoje | 14
LITHUANIAN MORPHOLOGY IN THE HUNSPELL FRAMEWORK
Summary
The paper presents the results of an attempt to build basic Lithuanian language resources using the widespread Hunspell platform. The spelling is actually the primary target of this open-source platform but the morphological analysis and synthesis are also possible. Moreover, the ability to efficiently perform lemmatization (stemming) makes this platform the best option for text search engines (e.g. Solr/Lucene) and information retrieval. Taggers, grammar checkers and other basic natural language processing tools can also be build using properly built Hunspell language resources.
Every Hunspell language resource consists of two files: dictionary and affixes (it may be empty). The dictionary contains main forms (lemmas) whereas the affixes contain the morphological rules to generate all possible forms. As a source for the dictionary we have used the Modern Lithuanian Dictionary (6-th edition), Corpus of the Contemporary Lithuanian Language compiled at the Center of Computation Linguistics of Vytautas Magnus University, database of documents of the Lithuanian Parliament, versti.eu machine translation corpus of Vilnius University and various public internet sources (totally 1.3 billion tokens). Main criteria for semi-manual compilation of the Lithuanian dictionary of lemmas from these sources was correctness, usability, actuality and approval by language authorities. Deprecated loanwords or extremely rare, exotic, obsolete, jargon, insulting forms were discarded from the list. Resulting dictionary consists of 171 000 lemmas: 42 000 common nouns, 73 000 proper nouns, 15 000 adjectives, 53 pronouns, 153 numerals, 35 000 verbs, 4 000 adverbs and 2 000 others (prepositions, conjunctions, particles, onomatopoeias, interjections, acronyms and abbreviations).
The second component of language resource, the so called “affix file”, contains information of various kind: metadata, preferable suggestions for spelling correction, grouping of rules, explicit tags for flexing and non-flexing properties, rules for suffix and affix alteration.
In order to make the Hunspell resources suitable for creating basic language tools, e.g. morphological analyzer and synthesizer, some principles should be kept:
1) every flexion paradigm (consisting of one or more rules) should be thoroughly generated from one single lemma in dictionary file (it is not trivial, especially for irregular verbs);
BENDRINĖ KALBA 90 (2017)
www.bendrinekalba.lt
ISSN 2351–7204
VIRGINIJUS DADURKEVIČIUS. Lietuvių kalbos morfologija atvirojo kodo hunspell platformoje | 15
2) every individual alteration case should have its own morphological tag, e.g. ‘Masc_Sg_Il’ for masculine + singular + illative;
3) every dictionary item should have references for part of speech and other non-flexing information;
4) avoid prefixation via rules, use dictionary instead – affixed forms may have completely different meanings and using them under single lemma may cause problems for text search engines;
5) do not rely much on calling rules from rules – calling depth can by no more than 1.
The coverage of the contemporary Lithuanian by this implementation of Lithuanian morphology is about 98 percent. The full list of all the theoretically possible forms generated by this resource contains about 17 million entries.
This work clearly shows an efficient way for any language (especially with scarce funding resources) to make basic language tools using a single open source development platform – the Hunspell.
KEYWORDS: Lithuanian, grammar, morphology, computational linguistics, Hunspell, speller, tagger, analyser, parsing, disambiguation, indexing, search.
VIRGINIJUS DADURKEVIČIUS
Institute of Applied Research
Vilnius University
M. K. Čiurlionio g. 29, 03100 Vilnius, Lithuania
[email protected]
[email protected]
BENDRINĖ KALBA 90 (2017) www.bendrinekalba.lt ISSN 2351–7204