Лемматизация

Лемматизация является одной из базовых NLP-задач – приведение всех слов в тексте к начальным формам.

При решении задачи параллельного выравнивания текстов лемматизация может понадобится для дальнейшей обработки текста с помощью элайнеров или пайплайна, использующего словарь переводных эквивалентов. Мы столкнулись с этой необходимостью при экспериментах с LF-aligner.

В других ситуациях – например, при использовании векторных моделей наподобие Lingtrain – необходимость в лемматизации текстов пропадает.

Лемматизация на этапе постпроцессинга

При дальнейшей работе над проектом улучшение качества лемматизации текстов следует выделить в отдельную исследовательскую задачу, актуальную для двух направлений развития проекта:

  • создание словаря переводных эквивалентов
  • оценка и улучшение качества выравнивания текстов по предложениям. Подробнее – в разделе про качество выравнивания

Лемматизация текстов Цветной триоди

Церковнославянский текст

В условиях отсутствия готового модуля, позволяющего провести лемматизацию церковнославянского текста, а также учитывая описанную специфику Цветной Триоди, мы решили экспериментиовать как с моделями современного русского языка (Spacy, PyMorphy2, UDPipe), так и используя модели древних языков (UDPipe).

Результаты лемматизации Spacy и PyMorphy2 показали крайне низкое качество, и эти инструменты были исключены из списка рассматриваемых.

Для русского языка – современного и древнего – в UDPipe представлено 6 моделей. В таблице ниже изложены описания данных моделей:

Модель Тексты, корпуса, трибанки модели
old_church_slavonic-proiel-ud-2.6-200830 тексты старославянских памятников, представленные в корпусе PROIEL
old_russian-rnc-ud-2.6-200830 памятники древнерусской и церковнославянской литературы, представленные в базе Национального корпуса русского языка
old_russian-torot-ud-2.6-200830 корпус древнерусских и старославянских текстов Torot
russian-syntagrus-ud-2.6-200830 художественные тексты и новостные издания современного русского языка аннотированного корпуса SynTagRus
russian-gsd-ud-2.6-200830 конвертированный корпус Google Stanford Dependencies
russian-taiga-ud-2.6-200830 художественные, новостные, научные датасеты, субтитры и поэзия современного русского языка, представленные в корпусе Taiga

Для оценки качества моделей, каждая из них была использована при лемматизации тестового фрагмента Триоди – текста службы Вознесения.

Результаты

Наименее удовлетворительные результаты были получены при работе с церковнославянской моделью old_church_slavonic-proiel-ud-2.6-200830. Модели, основанные на корпусах Torot и RNC проявили себя лучше. Однако, Torot оказалась чувствительной к знакам препинания – при работе с этой моделью текст нуждается в предварительном удалении пунктуации.

Ошибки лемматизации были в основном общие – например, парсеру не удалось правильно построить инфинитивы предиката празднуем и глаголет.

С глаголет не справились и современные модели (SynTagRus, GSD, Taiga). В целом результаты последних были довольно ровными, хотя с некоторыми словоформами Taiga справлялась лучше, чем SynTagRus и GSD. Например, ей удалось распарсить словоформу вечерни (вечерня), с которой из других моделей справилась только Torot.

Помимо проблемы правильного построения начальной формы, возникли ошибки, связанные с омонимией. Так, модели GSD и Taiga, к примеру, не всегда могли принять правильное решение о начальной форме аккузатива и генитива существительного Господь (Господа), совпадающей с номинативом множественного числа господин. Лучшие результаты показала модель SynTagRus.

Выбор модели

При распространении лемматизации на полный текст Триоди необходимо выявить модель с наилучшим качеством. По результатам экспериментов мы решили отказаться от PROIEL, а из современных моделей выбирать между Taiga и SynTagRus, хотя их качество при лемматизации службы одного дня оказалось не совсем идеальным

В репозитории доступны код и результаты лемматизации.

Греческий текст

Для лемматизации древнегреческого текста используется модуль Backoff Lemmatizer библиотеки CLTK. Выбор лемматизатора основан на выводах, представленных в статье McGillivray-Vatri1, авторы которой анализируют точность четырех программных решений для лемматизации текста:

  • Diorisis
  • LAGT
  • GLEM
  • CLTK

По результатам двух серий экспериментов CLTK показал сравнительно высокую точность подбора корректной леммы, что и послужило определяющим фактором при выборе данного модуля для работы в рамках проекта.

Подробнее про backoff lemmatizer

Другим очевидным преимуществом backoff модуля является использование цепочки лемматизаторов: в случае неудачного результата при обработке токена программа обращается ко внешним лемматизаторам, пока не будет найдена лемма или не будут исчерпаны все указанные варианты. Данный подход существенно повышает точность обработки текста, однако имеет и определенные недостатки. Поскольку backoff-цикл прерывается при первой найденной лемме, результаты лемматизации будут сильно отличаться в зависимости от того порядка, в котором указаны внешние лемматизаторы в backoff-цепочке

Языковые особенности

В качестве экспериментальных корпусов в исследовании McGillivray-Vatri использовались классические тексты, что актуализирует проблему идентификации языка текста Цветной Триоди.

Библиотека CLTK, как и прочие аналогичные инструменты, направлена на обработку классических текстов, а модели Backoff Lemmatizer для древнегреческого языка обучены на материалах проекта Perseus.

Греческий текст Цветной Триоди, обрабатываемый в рамках проекта, довольно сложно поддается лингвистической классификации – необходим более глубокий анализ и консультация специалистов, чтобы выйти за рамки сформулированного внутри проекта условного обозначения греческий язык богослужебных текстов. Как и в случае с условно церковнославянским текстом, греческая Триодь находится на шкале между койне и греческим Нового Завета, сочетая элементы обеих форм греческого языка.

Результаты

Ниже представлены результаты лемматизации греческого фрагмента службы Вознесения при помощи лемматизаторов CLTK и UDPipe, а также фрагмент исходного текста для сравнения:

Ὁ Κύριος ἀνελήφθη εἰς οὐρανούς, ἵνα πέμψῃ τὸν Παράκλητον τῷ κόσμῳ, οἱ οὐρανοὶ ἡτοίμασαν τὸν θρόνον αὐτοῦ, νεφέλαι τὴν ἐπίβασιν αὐτοῦ, Ἄγγελοι θαυμάζουσιν, ἄνθρωπον ὁρῶντες ὑπεράνω αὐτῶν, ὁ Πατὴρ ἐκδέχεται, ὃν ἐν κόλποις ἔχει συναΐδιον. Τὸ Πνεῦμα τὸ ἅγιον κελεύει πᾶσι τοῖς Ἀγγέλοις αὐτοῦ· Ἄρατε πύλας οἱ ἄρχοντες ἡμῶν, Πάντα τὰ ἔθνη κροτήσατε χεῖρας. ὅτι ἀνέβη Χριστός, ὅπου ἦν τὸ πρότερον.

ὁ κύριος ἀναλαμβάνω εἰς οὐρανός ἵνα πέμπω ὁ παράκλητος ὁ κόσμῳ, ὁ οὐρανός ἑτοιμάζω ὁ θρόνος αὐτός νεφέλη ὁ ἐπίβασις αὐτός ἄγγελος θαυμάζω ἄνθρωπος ὁράω ὑπεράνω αὐτός ὁ πατήρ ἐκδέχομαι ὅς ἐν κόλπος ἔχω συναΐδιον ὁ πνεῦμα ὁ ἅγιος κελεύω πᾶς ὁ ἄγγελος αὐτός ἀείρω πύλη ὁ ἄρχων ἡμεῖς πᾶς ὁ ἔθνος κροτέω χείρ ὅτι ἀναβαίνω χριστός ὅπου εἰμί ὁ πρότερος

ὁ Κύριος ἀαλαμβάνω εἰς οὐρανός, ἵνα πέμπω ὁ Παράκλητος ὁ κόσμος , ὁ οὐρανός ἑτοιμάζω ὁ θρόνος αὐτός , νεφέλα ὁ ἐπίβασις αὐτός , Ἄγγελοι θαυμάζω , ἄνθρωπος ὁράω ὑπεράνω αὐτός , ὁ Πατὴρ ἐκδέχομαι , ὅς ἐν κόλπος ἔχω συναΐδιος ὁ Πνεῦμα ὁ ἅγιος κελεύω πᾶς ὁ Ἀγγέλοί αὐτός · Ἄρατε πύλη ὁ ἄρχων ἐγώ , πᾶς ὁ ἔθνος κροτάω χείρ ὅτι ἀνέβη Χριστός , ὅπου εἰμί ὁ πρότερος

Как видно из примеров, оба лемматизатора показывают довольно высокую точность. CLTK не справился со словом ὁ κόσμος (здесь в значении «мир»), оставив его в форме дательного падежа. Возможной причиной ошибки может являться iota subscriptum (подстрочная йота), встречающаяся, среди прочего, в формах существительных дательного падежа.

Что можно с этим сделать?

Потенциальным решением подобной проблемы может быть замена таких букв на формы iota adscriptum на этапе предварительной обработки текста: ῳ –> ωι

Фрагмент, обработанный при помощи UDPipe, содержит больше неточностей: диалектная форма νεφέλα вместо ожидаемого νεφέλη («облако»), пропущенная буква «ню» в глаголе ἀαλαμβάνω (здесь «возношусь»), а также необработанные формы ἄρατε (αἴρω, ἀείρω, «поднимаю, беру») и ἀνέβη (ἀναβαίνω, «восхожу»).

При этом, UDPipe распознает именованные сущности, что может оказаться актуальным, если будет решено добавить подобный функционал в пайплайн.

В репозитории доступны код и результаты лемматизации.


  1. McGillivray B., Vatri A. Lemmatization for ancient Greek: An experimental assessment of the state of the art. // Journal of Greek Linguistics. № 20 (2). P. 181-183.↩︎