scieee AI-readable full text Open interactive document viewer

Lietuvių kalbos morfologija atvirojo kodo „Hunspell“ platformoje

Virginijus Dadurkevičius

Full text

VIRGINIJUS DADURKEVIČIUS Вильнюсский университет МОРФОЛОГИЯ ЛИТОВСКОГО ЯЗЫКА НА ПЛАТФОРМЕ ОТКРЫТОГО КОДА HUNSPELL1 КЛЮЧЕВЫЕ СЛОВА: компьютерная лингвистика, литовский язык, грамматика, морфология, морфологический анализ, проверка орфографии, индексирование текста, поиск, открытый исходный код, Hunspell. ВВЕДЕНИЕ Более 100 лет назад благодаря усилиям Йонаса Яблонскиса (1901, 1918, 1922) началась нормализация литовского языка, и он был приспособлен стать главным средством объединения государства. Уже в первой грамматике литовского языка Йонаса Яблонскиса Lietuviškos kalbos gramatikoje (1901) были формализованы фонетика, морфология и синтаксис литовского языка: определены основные понятия, приведены правила словоизменения и строения предложения (см. рис. 1). РИС. 1. Фрагмент из грамматики литовского языка Йонаса Яблонскиса Lietuviškos kalbos gramatikos 19012 Неоценимый вклад Йонаса Яблонскиса в нормализацию лексики литовского языка и объяснение семантических особенностей слов. Долгое время этого вполне хватало ученикам и учителям, писателям и читателям, чиновникам и учёным. С появлением цивилизационно преобразующего новшества — компьютеров — возникла необходимость в том, чтобы классическая грамматика и лексика «облеклись в новое одеяние» и стали полноценной частью новых 1 Статья подготовлена на основе доклада Грамматика литовского языка в мире открытого исходного кода, представленного на 24-й международной конференции имени Йонаса Яблонскиса Цифровые языковые ресурсы, направления их развития и возможности применения (29.09.2017); её организовали Центр исследований стандартного языка Института литовского языка и кафедра литовского языка Вильнюсского университета. 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 is iam. is:Masc_Pl_Dat_short SFX 145 ys iam. is:Masc_Pl_Dat_short SFX 145 is 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 įuos. is:Masc_Pl_Loc_short SFX 145 ys įuos. 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ė и др. 2017). Оставшиеся 2% нераспознанных слов чаще всего составляют орфографические ошибки, слова других языков (имена, фамилии, цитаты из фраз и т. п.), нерекомендуемые и ненормативные слова, а также правильные слова, не включённые в список лемм. 3. ПРАКТИЧЕСКОЕ ПРИМЕНЕНИЕ 3.1. Система синтаксико-семантического анализа VDU Созданная новая морфология литовского языка на платформе Hunspell в 2011–2015 годах была применена в системе синтаксико-семантического анализа VDU13 для проверки орфографии и грамматики, а также для проведения морфологического и синтаксического анализа текста (см. рис. 7). Морфологический анализ был дополнен смешанным статистико-правиловым снятием неоднозначности (скрытая марковская модель, вероятности триграмм, аппроксимированные по золотому стандарту, алгоритм Витерби, несколько исключений). Подробнее о снятии неоднозначности при морфологическом анализе говорится в публикации Юргиты Капочюте-Дзикене, Эрики Римкуте и Лоика Буазу (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: применение морфологии литовского языка в системе синтаксико-семантического анализа ВДУ 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), созданным на основе ранее упомянутого первичного описания морфологии и генерирующим все теоретически возможные формы слов согласно этому описанию. Такое решение позволяет не только точно индексировать и находить все нужные словоформы, но и ускорить индексирование в сотни раз, а также получать результаты поиска, используя различные семантические связи и учитывая дополнительную таксономическую и семантическую информацию. Например, если в запросе указано слово «gyvatė» («змея»), система дополнительно ищет «angis» («гадюка»), «barškuolė» («гремучая змея») и т. п. (см. рис. 9), тогда как при указании в запросе слова «angis» среди результатов поиска уже не будет ни «gyvačių» («змей»), ни «barškuolių» («гремучих змей») (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