Lietuvių kalbos morfologija atvirojo kodo „Hunspell“ platformoje
Full text
VIRGINIJUS DADURKEVIČIUS
Вільнюський університет
МОРФОЛОГІЯ ЛИТОВСЬКОЇ МОВИ НА ПЛАТФОРМІ ВІДКРИТОГО КОДУ HUNSPELL1
КЛЮЧОВІ СЛОВА: комп’ютерна лінгвістика, литовська мова, граматика, морфологія, морфологічний аналіз, перевірка правопису, індексування тексту, пошук, відкритий код, Hunspell.
ВСТУП
Понад 100 років тому завдяки зусиллям Йонаса Яблонскіса (1901, 1918, 1922) почалося унормування литовської мови та її пристосування до ролі основного засобу, що об’єднує державу. Уже в першій «Граматиці литовської мови» Йонаса Яблонскіса (1901) фонетику, морфологію та синтаксис литовської мови було формалізовано: визначено основні поняття, наведено правила словозміни й будови речення (див. рис. 1).
РИС. 1. Фрагмент із «Граматики литовської мови» 19012 Йонаса Яблонскіса
Неоціненний внесок Йонаса Яблонскіса в унормування лексики литовської мови та пояснення семантичних особливостей слів.
Довгий час цього цілком вистачало учням і вчителям, письменникам і читачам, чиновникам і науковцям. Із появою новації, що змінює цивілізацію, — комп’ютерів — класична граматика й лексика постали перед необхідністю «вбратися в новий одяг» і стати повноцінною частиною нових
1 Статтю підготовлено на основі доповіді «Граматика литовської мови у світі відкритого коду», виголошеної на 24-й міжнародній конференції Йонаса Яблонскіса «Цифрові мовні ресурси, напрями їх розвитку та можливості використання» (2017 09 29); її організували Центр досліджень літературної мови Інституту литовської мови та кафедра литовської мови Вільнюського університету.
2 Зображення з 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
частиною технологій. Насамперед мовні ресурси знадобилися в комп’ютерах для кодування тексту (перетворення літер на числа), автоматичного виправлення помилок у введеному тексті, поділу на склади тексту в колонках із вирівнюванням по ширині. Дещо пізніше вони стали потрібні для пошуку інформації, аналізу та синтезу мовлення, машинного перекладу з однієї мови на іншу, автоматичного розуміння змісту, «емоційного» аналізу тексту тощо. Мовні ресурси потрібно було докладно формалізувати й записати в інший, зрозумілий комп’ютерам спосіб. Найважливіша з них — морфологія, адже вона є основою будь-яких ґрунтовніших робіт із комп’ютерної лінгвістики (синтаксису, семантичного аналізу тощо).
Першу таку роботу на зламі століть виконав програміст експериментального заводу «Bitas» Вітаутас Зінкявічюс (1996, 2000). Майже два десятиліття це був незамінний і єдиний інструмент для сучасного дослідження литовської мови та комп’ютерних застосувань. Цю систему успішно використовували для виявлення орфографічних помилок у текстових редакторах, а також для морфологічного аналізу й синтезу в наукових і прикладних працях Інституту литовської мови, Університету Вітовта Великого (там його розробки отримали назву «Lemuoklis») та Вільнюського університету. Було навіть створено варіант цієї системи, пристосований для аналізу давньої литовської мови (Gelumbeckaitė ir kt. 2012). Однак із розширенням потреб комп’ютерної лінгвістики почали виявлятися недоліки системи: нестандартні, не запитані користувачами структури даних; закритий код; неповна реалізація власних назв, ілативу, двоїни, майбутнього часу первинних дієслів, скорочених і рідкісних форм. Подальшому розвитку системи особливо перешкоджав закритий код — на практиці лише сам автор міг змінювати дані й алгоритм.
Щоб уникнути описаних вище недоліків і створити морфологічну модель литовської мови нового покоління, було висунуто такі вимоги:
1) використовувати й створювати лише відкритий код;
2) специфічні властивості литовської мови можуть стосуватися лише даних, а не їхньої форми та інтерпретації;
3) увесь програмний код має бути універсальним і придатним для будь-якої іншої мови;
4) скористатися рішеннями, успішно адаптованими для інших мов світу.
Згаданим вимогам добре відповідає Hunspell — платформа3. Крім того, описавши мову в такий спосіб, згодом можна легко перевіряти орфографічні помилки в багатьох (понад 50) прикладних програмах (OpenOffice, LibreOffice, Firefox, Chrome, Safari, InDesign тощо), виконувати морфологічний аналіз і синтез слів, здійснювати інтелектуальний пошук текстової інформації тощо.
3 Доступ в інтернеті: 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
У цій статті розглянуто нову реалізацію морфології литовської мови на основі платформи Hunspell. Обговорюються пов’язані з цим проблеми та способи їх розв’язання, наводяться приклади успішного тестування і практичного застосування.
1. ОСОБЛИВОСТІ ФОРМАТУ HUNSPELL ДЛЯ ОПИСУ ЛИТОВСЬКОЇ МОВИ
1.1. Передумови виникнення платформи Hunspell та загальні принципи її роботи
Платформа з відкритим кодом Hunspell розвинулася з найпростіших засобів перевірки правопису Ispell4, Aspell5, MySpell6 тощо. Поступово ускладнюючи їх і пристосовуючи до дедалі більшої кількості мов (особливо аглютинативних — фінської, угорської, турецької тощо), стало можливим розв’язувати не лише завдання перевірки правопису, а й морфологічного аналізу та синтезу. Автори цієї надзвичайно популярної у світі платформи — переважно науковці й інженери-програмісти угорського походження (Trón і ін. 2005). Не дивно, що перша частина її назви «Hun-» походить від англомовної назви Угорщини.
Морфологію мови на платформі Hunspell описують два текстові файли: у файлі з розширенням .aff записуються правила словозміни, а у файлі з розширенням .dic — словник словоформ із початковою морфологічною інформацією та посиланнями на одну або кілька груп правил словозміни, які можна застосовувати додатково. Окреме правило можна уявити як інструкцію, у якій зазначено:
1) Що на що можна змінити в слові зі словника словоформ. Наприклад, у правилі
SFX 85 čias ty [^š]čias is:Masc_Sg_Voc
«SFX» означає, що змінюється закінчення слова, причому «-čias» можна замінити на «-ty».
«PFX» означало б, що змінюється початок слова. Заміна в середині слова не передбачена.
2) Номер групи правил словозміни, до якої належить це правило. Група може складатися з одного або кількох правил, які завжди застосовуються разом. У попередньому прикладі правило належить до групи з номером «85».
3) Умови, за яких можлива заміна (застосовується певний формалізм регулярних виразів). У нашому прикладі заміна можлива лише за умови, що кінець слова зі словника словоформ не є «-ščias» (наприклад, «vaikiščias»).
4) Морфологічна інформація, пов’язана з цією заміною. У нашому прикладі з такою заміною закінчення слова пов’язана морфологічна позначка «Masc_Sg_Voc» (чоловічий рід, однина, кличний відмінок, наприклад, «svety»).
4 Доступ в інтернеті: https://www.cs.hmc.edu/~geoff/ispell.html.
5 Доступ в інтернеті: http://aspell.net.
6 Доступ в інтернеті: 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
Докладніше з принципами укладання правил словозміни та зазначення морфологічної інформації в Hunspell можна ознайомитися на вебсайті цієї платформи7, а можливості опису морфології різних мов на цій платформі досить ґрунтовно досліджено в дисертації Томмі А. Пірінена (2014).
1.2. Специфічні вимоги до реалізації литовської мови
Щоб така формалізація мови підходила для морфологічного аналізу, синтезу, індексування текстової інформації та пошуку, потрібно виконати такі дві вимоги:
1) до словника словоформ можна вносити лише леми (початкові форми);
2) префіксальне, суфіксальне та зворотне словотворення має відображатися не у файлі .aff, а у файлі .dic.
Першу вимогу нелегко виконати в литовській мові через значне розмаїття дієслівних словозмін (близько 170 варіантів), але вирішити цю проблему допомогла можливість платформи Hunspell викликати одне правило словозміни з іншого. Хоча глибина таких викликів може дорівнювати лише одиниці, це значно зменшує розмір файлу правил словозміни — з кількох мільйонів до кількох десятків тисяч рядків.
Виконання другої вимоги дещо збільшує розмір файлу .dic, адже, наприклад, похідні з префіксами, суфіксами та зворотним компонентом від того самого кореня «imti» — «paimti», «suimti» та «nesiimti» — вноситимуться в окремі рядки. І це не єдиний негативний наслідок цієї вимоги: можна легко помилитися й не включити якесь рідше вживане похідне дієслово чи прикметник. Щоправда, цю проблему досить ґрунтовно розв’язують, добираючи леми передусім не з виданих словників, а з накопичених корпусів текстів.
1.3. Фрагменти литовських файлів.dic і.aff (приклади)
Уже кілька фрагментів литовського словникового файлу .dic з відповідниками прикладів слів Йонаса Яблонскіса, виділеними жирним шрифтом, показано на рисунку 2.
7 Доступ в інтернеті: 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
laukakmenis/118,122,132,137,141,145,157,159,9999 po:noun
laukan po:adverb
laukas/1,3,7,10,12,14,20,21,30,9999 po:noun
Laukavičienė/738,740,745,9999 po:noun_family_name
...
svečias/1467,1767,1775,1781,1784,1841,9999 po:adjective
svečias/71,73,85,93,98,100,106,116,9999 po:noun
svečiavimasis/1308,1310,1314,1315,1317,1319,9999 po:noun_reflexive
Svečiulienė/738,740,745,9999 po:noun_family_name
...
Gaidulis/118,122,132,141,145,157,9999 po:noun_family_name
Gaidulytė/738,740,745,749,754,760,9999 po:noun_family_name
gaidys/264,268,278,280,284,288,300,302,9999 po:noun
Gaidys/264,268,278,284,288,300,9999 po:noun_family_name
...
peilinis/2036,9999 po:adjective
peilis/118,122,132,137,141,145,157,159,9999 po:noun
peiliukas/1,3,8,10,12,14,20,21,30,9999 po:noun
Peipus/444,446,452,9999 po:noun_geographic_name
РИС. 2. Фрагмент файла .dic зі словоформами. Числа після косої риски позначають посилання на адресовані групи правил словозміни. Червоним виділено посилання на групи правил, показані на РИС. 3.
На рис. 3 наведено кілька фрагментів файлу правил словозміни литовської мови .aff:
SFX 21 Y 1
SFX 21 as uosna. is:Masc_Pl_I
...
SFX 98 Y 2
SFX 98 as ai. is:Masc_Pl_Nom
SFX 98 as ų. is:Masc_Pl_Gen
...
SFX 264 Y 6
SFX 264 is 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 is iams. is:Masc_Pl_Dat
SFX 145 ys iams. is:Masc_Pl_Dat
SFX 145 є iam. is:Masc_Pl_Dat_short
SFX 145 ys iam. is:Masc_Pl_Dat_short
SFX 145 є ius. is:Masc_Pl_Acc
SFX 145 ys ius. is: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
РИС. 3. Фрагменти файлу правил словозміни .aff. Жирним шрифтом виділено кілька правил, які далі використовуються для ілюстрування морфологічного аналізу.
BENDRINĖ KALBA 90 (2017)
www.bendrinekalba.lt
ISSN 2351–7204
VIRGINIJUS DADURKEVIČIUS. Lietuvių kalbos morfologija atvirojo kodo hunspell platformoje | 6
Використавши наведений у прикладах опис мови та стандартні (незалежні від мови) Hunspell засоби аналізу, ми отримали б для прикладів слів Йонаса Яблонскіса таку відповідь (див. рис. 4).
РИС. 4. Приклад морфологічного аналізу слів
2. ПЕРЕБІГ РОБОТИ ТА РЕЗУЛЬТАТИ
Коли вже створено повноцінний опис мови у форматі Hunspell (тобто створено відповідні файли .dic і.aff), відкриваються практично необмежені можливості для практичного застосування — від перевірки орфографії чи граматики до інтелектуальних систем пошуку інформації. Через досить складну морфологію литовської мови (багато правил та їхніх груп) і необхідність узгоджувати список лем із великими корпусами (понад 1 млрд слів), що відображають реальний стан сучасної писемної литовської мови, знадобилося приблизно 5 років від перших спроб до створення належно функціонального варіанта морфології. Приклади, наведені раніше в цій статті, мають переважно ілюстративний характер і покликані лише допомогти зрозуміти ідею; насправді правила та їхні групи набагато складніші, особливо ті, що стосуються дієслів.
Щоб скоротити час створення морфології та уникнути помилок під час запису тисяч правил і призначення їх лемам, спочатку було створено первинний, абстрактніший опис морфології, ніж той, якого вимагають специфікації Hunspell (правила — у таблиці MS Excel, леми та їхня класифікація — у базі даних MS Access). Також було створено програмні засоби для автоматичного перетворення цих первинних структур, легших для читання й розуміння людиною, на файли .aff і.dic або інший формат, визначений специфікою застосування. Найновіша версія литовських файлів .aff і.dic доступна на вебсайті автора GitHub8.
Упродовж усього процесу формалізації морфології використовувалися такі основні джерела:
8 Доступ онлайн: 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) Граматика сучасної литовської мови (DLKG 2006);
2) Корпус сучасної литовської мови Університету Вітовта Великого (далі — VDU)9 — ~140 млн слів;
3) Корпус машинного перекладу Вільнюського університету10 — ~800 млн слів, ~4 млн унікальних;
4) Документи Сейму Литовської Республіки (далі — LRS)11 — ~400 млн слів, ~1 млн унікальних;
5) Словник сучасної литовської мови (DŽ 2006) — ~60 тис. лем;
6) Словник литовської мови12 — ~500 тис. словникових статей;
7) Словник іншомовних слів (VTŽŽe) — ~22 тис. лем;
8) Словник литовських прізвищ (LPŽ) (~80 тис. прізвищ).
Загалом було сформовано приблизно 5000 адресованих груп правил (18 000 окремих правил). Розподіл груп правил за частинами мови показано на рисунку 5.
РИС. 5. Розподіл груп відмінювання за частинами мови
.dic файл (словник) було укладено з 171 000 лем. Розподіл лем за частинами мови показано на рисунку 6.
9 Доступ в інтернеті: http://tekstynas.vdu.lt/tekstynas/.
10 Доступ в інтернеті: https://www.versti.eu/.
11 Доступ в інтернеті: http://www.lrs.lt/.
12 Доступ в інтернеті: 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
РИС. 6. Розподіл лем за частинами мови
Під час відбору обмежувалися лише нормативною сучасною литовською мовою та уникали помилкових, нелитовських, небажаних, образливих і застарілих слів. Власні іменники додатково поділяли на прізвища, імена, географічні назви та інші випадки. Такий відбір полегшує застосування створеної морфології для перевірки правопису й дає змогу легше використовувати результати аналізу на наступних етапах опрацювання тексту (синтаксис, розпізнавання іменованих сутностей, індексування та пошук).
Точність новоствореного морфологічного аналізатора становить близько 98%, тобто в середньому аналізатор правильно інтерпретує 98 зі 100 слів (Kapočiūtė-Dzikienė ir kt. 2017). Решту 2% нерозпізнаних слів найчастіше становлять орфографічні помилки, слова інших мов (імена, прізвища, цитати з фраз тощо), небажані, ненормативні слова та нормативні слова, які не було внесено до списку лем.
3. ПРАКТИЧНЕ ЗАСТОСУВАННЯ
3.1. Система синтаксично-семантичного аналізу VDU
Новостворену морфологію литовської мови на платформі Hunspell у 2011–2015 роках було впроваджено в системі синтаксично-семантичного аналізу VDU13 для перевірки орфографії та граматики, а також для морфологічного й синтаксичного аналізу тексту (див. рис. 7). Морфологічний аналіз було доповнено змішаним статистично-правиловим зняттям неоднозначності (прихована модель Маркова, апроксимовані за золотим стандартом імовірності триграм, алгоритм Вітербі, кілька винятків). Докладніше про зняття неоднозначності в морфологічному аналізі йдеться в публікації Юргіти Капочюте-Дзикене, Еріки Рімкуте та Loïc Boizou (2017).
13 Доступ в інтернеті: 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
РИС. 7. Hunspell застосування морфології литовської мови в системі синтаксично-семантичного аналізу VDU
3.2. Система пошуку в реєстрі правових актів LRS
У 2011–2013 роках паралельно зі створенням нової морфології литовської мови її впроваджували в систему пошуку в Реєстрі правових актів у канцелярії LRS14. Зазвичай у таких системах ще до першого пошуку всі документи індексують шляхом лематизації, тобто всі слова в документах замінюють на їхні леми та запам’ятовують, де траплялася кожна лема. Перед виконанням пошукового запиту його текст також лематизують таким самим способом, тому згодом знаходять не лише форму слова, записану в запиті, а й будь-яку іншу форму цього слова, наявну в документах, які шукають. Оскільки в цій системі не можна було безпосередньо використати дані .dic,.aff, необхідний системі вихідний формат (текстовий файл, кожен рядок якого має вигляд [лема] [частина мови] → [список форм]) генерували з описаного вище первинного опису морфології. Хоча з цього опису можна згенерувати близько 15 млн теоретично можливих словоформ, через внутрішні обмеження пошукової системи використали лише близько 1 млн найчастотніших із них. Це рішення виправдало себе: пошук працює досить плавно й використовується досі (див. рис. 8).
14 Доступ в інтернеті: 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
РИС. 8. Застосування морфології литовської мови в пошуку Реєстру правових актів LRS
4.3. Система індексування документів і пошуку з відкритим вихідним кодом Solr/Lucene15
Щоб ширше використовувати переваги відкритого вихідного коду та досвід, накопичений під час реалізації морфології литовської мови в Реєстрі правових актів, було створено систему індексування та пошуку литовських документів на основі Solr/Lucene. Безпосереднє застосування даних .dic,.aff у цій системі можливе, але дуже неефективне, тому його замінили скінченним перетворювачем станів (FST – Finite State Transducer), побудованим на основі згаданого вище первинного опису морфології та такого, що генерує всі теоретично можливі форми слів згідно з цим описом. Таке рішення дає змогу не лише точно індексувати й знаходити всі потрібні форми слів, а й прискорити індексування в сотні разів, а також отримувати результати пошуку з використанням різноманітних семантичних зв’язків з урахуванням додаткової таксономічно-семантичної інформації. Наприклад, якщо в запиті вказано слово «змія», система додатково шукає «гадюка», «гримуча змія» тощо (див. рис. 9), а якщо в запиті вказано слово «гадюка», серед результатів пошуку вже не буде ні «змій», ні «гримучих змій» (Ralys, Dadurkevičius 2017).
15 Доступ в інтернеті: 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
РИС. 9. Приклад застосування морфології литовської мови в системі індексування документів і пошуку з відкритим вихідним кодом Solr/Lucene
4. ПЕРСПЕКТИВИ
Щоб ширше застосовувати реалізацію морфології литовської мови на платформі Hunspell, слід розвивати два її напрями: варіант нормативної мови та повний варіант (нормативна й ненормативна мова). Перший варіант і надалі давав би змогу виконувати завдання перевірки правопису та надавати рекомендації щодо виправлення порушень мовних норм, а другий був би придатний для розв’язання прикладних завдань аналізу живої мови.
Не менш важливим завданням на майбутнє є постійне поповнення морфологічного словника словами, які до нього не внесено, та новими словами, виправлення виявлених помилок у правилах словозміни й класифікації слів, а також публікація найновіших версій .dic,.aff щонайменше раз на рік.
Використавши вже накопичений досвід, було б нескладно підготувати також формальний опис литовських діалектів (особливо жемайтського) або мови старих литовських писемних пам’яток.
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