Новости
Новости сообщества
Новости рабочих групп
Другие новости





Забравена парола
Нямате достъп?
Регистрирайте се!!!
RSS-емисии
rss20.gif

Порталът е създаден с финансовата подкрепа на Руската хуманитарна фондация (RHF), номер на проекта 07-04-12140v.

(с) "Информационните технологии и писменото наследство", 2008-2020 г.

Лемматизатор для дореформенной русской орфографии PDF Печат Е-мейл
Автор: Алексей Евгеньевич Поляков   
04 Август 2012

Summary. Current linguistic processors are not suitable for analysis of pre-reform Russian texts due to numerous graphical, morphological and lexical differences from the modern language. We have developed a lemmatizer which can properly analyze pre-reform texts and has a facility for flexible adaptation to other spelling systems.

1. Постановка проблемы.

Существующие лингвистические процессоры для русского языка (спеллчекеры, лемматизаторы, программы распознавания) непригодны для анализа текстов в дореформенной орфографии. Во-первых, они не воспринимают дополнительные буквы (ѣ, і, ѳ, ѵ) и другие орфографические особенности, даже самые тривиальные, типа конечного -ъ. Во-вторых, они ориентированы на современный русский язык, который имеет заметные морфологические и лексические отличия от языка 18—19 века. Некоторые программы (mystem) включают ограниченный анализ старой орфографии путем приведения ее к современной (см. п. 3.1), однако они не могут учесть устаревшие формы и леммы. Исходный код этих программ обычно закрыт, а словари представлены во внутреннем формате, который непрозрачен и неудобен для редактирования. В итоге мы решили разработать собственный лемматизатор, включающий возможность гибкой настройки и адаптации к языку и орфографии 18—19 века.

Данное исследование выполнено в рамках работ по гранту РФФИ 11-06-00197 «Создание программного модуля проверки русской дореформенной орфографии».

2. Описание программы.

2.1. Определения.

Лемматизатор — программа, выполняющая грамматический разбор текста, который включает в себя следующие задачи:

1) токенизация — разбиение текста на элементарные знаки (токены) и определение их типа (слово, знак препинания, число, тег разметки и т.д.);

2) морфологический анализ для слов, имеющихся в словаре;

3) построение гипотез для нераспознанных слов (если это возможно);

4) анализ многословных сочетаний (если они есть в словаре).

Грамматическая модель — формальное описание словоизменения языка, включающее два компонента: грамматический словарь и таблица парадигм.

Грамматический словарь — список лексем с приписанной информацией о словоизменении, которая включает, как минимум, следующие параметры:

1) основа с указанием чередований;

2) постоянные признаки лексемы (часть речи, род, одушевленность...);

3) код словоизменительного типа (парадигмы).

Словоизменительный тип (парадигма) — набор флексий, общий для некоторого множества лексем, который задает соответствие между грамматическими значениями и соответствующими им формами.

2.2. Принципы.

Лемматизатор не привязан жестко к конкретному языку и в принципе может быть настроен на любой язык флективного типа при наличии соответствующей грамматической модели и правил токенизации. Вся конкретно-языковая информация (леммы, основы, парадигмы, флексии, граммемы) не зашита в код программы, а вынесена во внешние таблицы. Для записи словоизменительной информации была разработана специальная нотация, которую легко читать и править вручную.

Лемматизатор включает механизм, позволяющий ему адаптироваться к разным орфографическим системам. В процессе анализа исходный текст преобразуется во внутреннее (нормализованное) представление, которое является абстракцией от реального написания и может соответствовать нескольким орфографическим вариантам. Этот механизм позволяет анализировать тексты с плавающей орфографией, где почти любое слово может иметь несколько вариантов написания (и/і/ѵ, ф/ѳ, ъи/ы, ъ/’/пусто).

2.3. Алгоритм.

Алгоритм работы лемматизатора состоит из следующих этапов:

1) Токенизация — программа разбивает текст на токены и выделяет слова.

2) Нормализация — программа переводит слово во внутреннее представление, а исходная форма слова сохраняется для выдачи.

3) Программа пытается в цикле разбить слово на основу и флексию, а затем для каждого варианта разбиения проверяет дополнительные условия:

— основа сочетается с данной флексией (имеет нужную парадигму);

— основа имеет правильный вариант (при наличии чередования);

— основа совместима с лексемой по регистру;

— граммемы флексии совместимы с граммемами лексемы.

Для ускорения анализа используются заранее построенные таблицы флексий, основ и парадигм.

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

2.4. Возможности и области применения.

Разработанный нами лемматизатор имеет довольно широкие возможности:

1) он умеет анализировать текст в разных орфографиях;

2) он умеет строить гипотезы для слов, отсутствующих в словаре;

3) он понимает несколько входных форматов, включая текст с xml-подобной разметкой, и порождает несколько выходных форматов.

Программа может работать в следующих режимах:

1) полная лемматизация, где выдаются все варианты разбора с грамматической информацией;

2) частичная лемматизация, где выдаются леммы, а грамматическая информация дается в свернутом виде или не дается вообще;

3) режим спеллчекера, где просто помечаются нераспознанные слова, но не дается грамматическая информация и не порождаются гипотезы.

В настоящее время лемматизатор используется в следующих проектах:

— Создание конкорданса к текстам Ломоносова;

— Создание корпуса текстов и словаря языка К.Н. Батюшкова;

— Подготовка текстов в старой орфографии для электронных библиотек;

и некоторых других.

3. Лингвистическая модель.

3.0. Введение.

При создании лемматизатора мы отталкивались от грамматической модели современного русского языка, зафиксированной в словаре Зализняка. Далее, мы проанализировали основные особенности языка 18—19 века на основе грамматических описаний и реальных текстов. Эти особенности можно условно разделить на три группы:

1) орфография (дополнительные буквы, другие правила написания);

2) словоизменение (устаревшие формы);

3) лексика (устаревшие слова).

3.1. Орфография (упрощенный вариант).

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

1) заменить устаревшие буквы на современные (і=>и, ѣ=>е, ѳ=>ф, ѵ=);

2) отсечь конечный ;

3) заменить без-/во)з-/из-/низ-/раз-/роз-/ч(е)рез- => -c перед глухими (NB);

4) заменить конечные -аго/яго(ся) => -ого/его, -ыя/ия(ся) => ые/ие (NB).

Мы проверили этот метод на большом корпусе текстов и получили неплохие результаты. Большая часть слов была разобрана правильно, неопознанными остались устаревшие формы и лексемы.

Однако метод упрощения, хотя позволяет быстро получить результат, дает слишком много шума. Во-первых, механическая замена букв без учета морфологической структуры слова иногда работает неверно (правила 3 и 4). Во-вторых, смешиваются слова, которые различаются буквами ѣ—е (слѣзъ—слёзъ, сѣлъ—сёлъ, свѣдѣніе—сведеніе, Вѣна—вена, морѣ—море). В-третьих, невозможно отличить ошибочные написания, которые при переводе в современный вид совпадают с правильными. Очевидно, что для полноценного анализа старой орфографии необходим словарь и грамматическое описание, где точно указаны места употребления букв (прежде всего, ѣ и ѳ) в составе корней, суффиксов и флексий, а также учтены устаревшие формы.

3.2. Словоизменение.

Если взять за основу модель словоизменения современного русского языка, то для анализа текстов в старой орфографии, помимо графических отличий, необходимо добавить в грамматическую модель формы, отсутствующие в современном языке или не учтенные в словаре Зализняка:

1) Адъективные флексии (-аго/-яго, -ыя/-ія).

2) Усеченные формы прилагательных (красна/o/ы/у), которые формально совпадают с краткими формами, однако имеют и другие падежи (красну).

3) Особые формы местоимений (ея, онѣ, однѣ, однѣхъ).

4) Творительный падеж 3-го склонения на -ію (милостію, помощію).

5) Сравнительная степень на -ѣй (сильнѣй) и -яе (сильняе, скоряе).

6) Вариант частицы -ся после гласных (валюся, валилася), который употребляется также в современном языке (в некоторых идиолектах).

7) Деепричастия совершенного вида от основы презенса (прийдя, увидя, взгромоздясь), которые вполне употребительны в современном языке.

8) Глагольные флексии -ти и -ши (ходиши, ходити), которые характерны для 18-ого века и, видимо, должны трактоваться как церковнославянизмы.

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

3.3. Орфографическая вариативность.

Характерной особенностью языка 18—19 века по сравнению с современным является значительная лексическая и орфографическая вариативность. Там, где в современном языке зафиксирован один вариант слова, в старых текстах можно встретить несколько взаимозаменяемых вариантов. Орфографические правила неоднократно менялись в течение 18—20 веков, а в советское время многие тексты были переизданы в частично модернизированной орфографии. Поэтому в реальных текстах наблюдается причудливое смешение разных орфографий, с которым вынужден работать наш лемматизатор.

Основные точки вариативности в старой орфографии — те же, что и в современной:

1) обозначение мягкости для шипящих (мечь—меч, идешь—идеш, ночьной—ночной);

2) обозначение ё/о после шипящих и ц (чёрный—чорный, дьячёк—дьячок, шёл—шол, лицо—лице, зайцов—зайцев);

3) глухие/звонкие согласные в позиции нейтрализации (возсиять—воссиять, восток—возток, дерзкий—дерзский—дерсский—дерский);

4) употребление прописных букв (Английскйй, Англичане, Славенский);

5) слитное/раздельное/дефисное написание (кто нибудь, повидимому, по русски, до тла, вшутку, то-есть, кто-бы—ктоб, небойся, долголь);

6) отражение фонетических колебаний, например и/й/ь (дыхание—дыханье, счастие—счастье, вариант—варьянт, италиянский—итальянский).

Для анализа орфографической вариативности нет универсального метода, но можно предложить решения для конкретных случаев:

1) Нормализация — преобразование написания в нормализованную форму, которая далее анализируется по стандартной грамматической модели.

2) Расширение грамматической модели — включение дополнительных форм в парадигмы.

3) Расширение лексической модели — специальная нотация для записи лексической вариативности ("гиперграфемы") или включение дополнительных вариантов в словарь.

4) Модификация алгоритма для анализа слитных написаний.

4. Направления дальнейшей работы.

Для анализа текстов 18—19 века необходимо создание полноценной словарной базы, прежде всего, грамматического словаря, который содержит все основные лексемы и грамматические формы, характерные для языка данного периода. В качестве лексической базы для такого словаря нужно использовать статистические данные, полученные из реальных текстов, а также следующие лексикографические источники:

— Словарь Академии Российской (1789—1794);

— Словарь церковнославянского и русского языка (1847);

— Полный русский орфографический словарь (1898);

— Словарь русского языка 18 века;

и другие словари.

 
< Предишна   Следваща >