"Прикладное программное обеспечение: системы автоматической обработки текстов" - читать интересную книгу автора

2.2.3. Основные программы

Морфологический анализ знакомых слов. Программа МОРФ1

Программа МОРФ1 строит все возможные разбиения входной словоформы на основу и флексию и ищет соответствующие части в словаре (первоначально МОРФ1 пытается найти в словаре совпадающее со словоформой Н-слово, а затем последовательно рассматривает словоформу как основу с пустой флексией, основу с флексиями длиной 3, 2 и 1) или неизменяемое слово.

Проверку правильности разбиения - сочетаемости основы и флексии - осуществляет вспомогательная программа, она же устанавливает значения ГП, определяемые флексией. Когда МОРФ1, отщепив флексию, не может найти полученную основу в словаре, происходит обращение к подпрограмме, применяющей к основе правила чередования. Если и после применения правил чередования найти основу в словаре не удалось, слово признается незнакомым и формируется обращение к программе морфологического анализа незнакомых слов МОРФ2 - список вариантов трактовки словоформы (грамматически корректные разбиения на основу и флексию, неизменяемое слово).

Результат работы МОРФ1 (для знакомого слова) - список вариантов анализа, каждый из которых содержит: грамматические признаки словоформы и ссылку на словарную статью, описывающую семантическое значение слова.

Примеры:

стекла → (7 2 3 1 2) - существительное (неодуш.,ср.род) стекло

в форме: ед.число, родит.падеж

(7 2 3 2 (1 4)) - существительное (неодуш.,ср.род) стекло

в форме: мн.число, именит. или винит.падеж

(9 1 1 3 2 1 1) - глагол стечь

в форме: прош.вр., женск.род, ед.число

Упрощенный вариант программы МОРФ1 - программа МОРФ3 - решает так называемую задачу лемматизации: определяет только начальную форму слова, не формируя список грамматических характеристик словоформы.

Примеры:

стеки → стек, стечь

стекла → стекло, стечь

стеками → стек


Морфологический анализ незнакомых слов. Программа МОРФ2

На вход программы поступает сформированный МОРФ1 список вариантов трактовки словоформы.

Пример (словоформа квазибиологом):

квазибиологом+∅ (ср. космодром/управдом)

квазибиолог+ом (ср. биолог+ом)

квазибиологом (ср. бегом)

При обработке незнакомого слова МОРФ2 учитывает флексию и строение основы. В большинстве случаев исследование флексии не позволяет однозначно установить не только П-класс, род слов субстантивного склонения, вид спрягаемых слов, но даже М-класс анализируемого слова, так как, например, флексия встречается у слов всех четырех рассматриваемых М-классов (класс-а, красив-а, дядин-а, ворош-а). Для уточнения грамматических признаков незнакомых слов МОРФ2 учитывает следующие составляющие (диагностические сегменты) основы: префикс, суффикс или некоторую цепочку букв в конце основы, последнюю букву основы.

По префиксу можно обнаружить некоторые Н-слова и установить вид некоторых глаголов. Анализ суффикса помогает установить М-класс, П-класс, род (а иногда и одушевленность) слова субстантивного склонения, вид глагола или даже все нужные (описываемые в словарной статье) грамматические признаки слова. По последней букве основы легко уточняется П-класс, а иногда и М-класс слова. Программа МОРФ2 работает с таблицами, содержащими 28 префиксов и 67 суффиксов. Анализ незнакомого слова МОРФ2 начинает с варианта расщепления с максимальной длиной флексии.

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

В таких ситуациях результат работы МОРФ2 сопоставляется с предсказаниями, и, в случае соответствия, запоминается. Если же предсказание не подтвердилось, начинает обрабатываться другой вариант разбиения словоформы. Если ожидаемый результат не получен, либо слово признается неизменяемым, либо в нем ищутся и исправляются ошибки.

Для каждого отобранного варианта формируются результаты анализа словоформы (и вариант/варианты новой словарной статьи).

Пример (словоформа квазибиологом):

(7 0 1 1 (1 4)) - существительное (одуш. или неодуш., ср.род)

квазибиологом в форме: ед.число, именит. или винит.падеж

(7 1 1 1 5) - существительное (одуш.,муж.род)

квазибиолог в форме: ед.число, творит.падеж

(11) - неизменяемое слово (возможно, наречие)


Заполнение словаря по грамматическим описаниям слов. Программа СЛОВ1

Основная сервисная программа автоматической генерации словарных статей - программа СЛОВ1. В ходе ее разработки были составлены таблицы соответствия словарной информации из словаря Зализняка и словарной информации ФМРС. Отметим, что программа СЛОВ1 автоматизирует трудоемкую, требующую хорошего знания ФМРС работу по составлению словарных статей. Действия, выполняемые программой, зачастую весьма нетривиальны из-за различий морфологической модели словаря Зализняка, и ФМРС. На вход программы поступает словарная статья, взятая из словаря Зализняка или (если такого слова там нет) сформированная экспертом.

Программа автоматически определяет: 1) основу записываемого в словарь системы слова; 2) номера М-класса, П-класса, С-класса; 3) наличие чередований и их контекст; 4) наличие других частных особенностей словоизменения. При работе с программой СЛОВ1 словарные статьи кодируются по определенным стандартным правилам, в частности, заменяются символы, отсутствующие на клавиатуре (например, цифра в кружке заменяется на цифру в круглых скобках).

По первому элементу словарной информации из словаря Зализняка в большинстве случаев определяется номер М-класса, у слов субстантивного склонения также одушевленность и род, у спрягаемых слов - вид. Если, например, этот элемент "п", то слово относится к 8-му М-классу; "ж" - к 7-му М- классу, женскому роду, неодушевленное; "мо" - к 7-му М-классу, мужскому роду, одушевленное; "нсв" - к 9-му М-классу, несовершенному виду.

После определения М-класса происходит переход на соответствующую ветвь алгоритма, где по второму элементу - цифре - определяется номер П-класса. Если второй элемент - не цифра (это означает, что слово изменяется по необычной модели), то СЛОВ1 фиксирует несовпадение номера С-класса с номером М-класса (т.е. наличие соответствующего исключения) и формирует необходимый фрагмент словарной статьи.

Остальные элементы исходной словарной статьи либо уточняют номер П-класса, либо свидетельствуют о наличии в слове чередований, исключений или об отсутствии у слова некоторых форм. Например, символ "П2" означает, что у слова есть второй предложный падеж (локатив), символ "*" является признаком чередования. Для определения конкретного номера чередования СЛОВ1 анализирует строение начальной формы слова. Так, при обработке первого варианта слова лев номер чередования (4 - чередование: ь - е) определяется по буквам ле, стоящим перед последней согласной основы (буква в в данном случае неинформативна). Стандартный вариант основы (льв-) определяется по номерам П-класса и чередования.

Результатом работы программы СЛОВ1 является словарная статья или список таких словарных статей - в случае, когда слово из словаря Зализняка представляется в ФМРС семейством Н-слов и/или основ И-слов (для спрягаемых слов, например, программа строит словарную статью, описывающую личные формы глагола и деепричастия, и несколько статей для причастий).


Заполнение словаря по тексту. Программа СЛОВ2

Программа СЛОВ1 используется в ситуации, когда список слов, предназначенных для включения в компьютерный словарь, составлен заранее. Другая технологическая схема предполагает автоматизацию не только этого, но и предыдущего этапа - этапа выявления незнакомых слов по характерным текстам.

Отдельные программы различаются:

– глубиной лингвистического анализа текста (пословный анализ, частичный синтаксический анализ, полный синтаксический анализ, синтактико-семантический анализ);

– "степенью самостоятельности" программ формирования словаря (работа без обращения за помощью к человеку, работа в диалоге с пользователем/администратором и под его контролем)

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

* РАБОТАЕТ ПРОГРАММА ФОРМИРОВАНИЯ СЛОВАРЯ ПО ТЕКСТУ *

УКАЖИТЕ, ПОЖАЛУЙСТА, ОТКУДА БУДЕТ ВВОДИТЬСЯ ТЕКСТ

(К - С КЛАВИАТУРЫ, ‹ИМЯ ФАЙЛА› - ИЗ ВНЕШНЕГО ФАЙЛА)

К

ВВОДИТЕ ТЕКСТ. ПРИЗНАК КОНЦА - //.

ВНУТРИ КОЛБЫ РАСПОЛАГАЕТСЯ СТЕРЖЕНЬ, ВЫПОЛНЕННЫЙ ИЗ

СТЕКЛА. ЧЕРЕЗ СТЕРЖЕНЬ ... //

ВЫБЕРИТЕ РЕЖИМ РАБОТЫ, УКАЗАВ НОМЕР РЕЖИМА:

1 - ЗАПИСЬ СЛОВАРНЫХ СТАТЕЙ В БУФЕР БЕЗ ВЫДАЧИ ИНФОРМАЦИИ

2 - ЗАПИСЬ СЛОВАРНЫХ СТАТЕЙ В БУФЕР С ВЫДАЧЕЙ ИНФОРМАЦИИ

3 - ФОРМИРОВАНИЕ СЛОВАРНЫХ СТАТЕЙ С ПОМОЩЬЮ ПОЛЬЗОВАТЕЛЯ

3

ПЕРВАЯ ФРАЗА: НЕЗНАКОМЫЕ СЛОВА: КОЛБЫ, СТЕРЖЕНЬ, СТЕКЛА

СЛОВО 'КОЛБЫ' - СУЩЕСТВИТЕЛЬНОЕ? (Д/Н)

Д

К КАКОМУ РОДУ ОТНОСИТСЯ СУЩЕСТВИТЕЛЬНОЕ 'КОЛБЫ'? (М/Ж/С)

Ж

ЯВЛЯЕТСЯ ЛИ ОНО ОДУШЕВЛЕННЫМ? (Д/Н)

Н

К КАКОМУ РОДУ ОТНОСИТСЯ СУЩЕСТВИТЕЛЬНОЕ 'СТЕРЖЕНЬ'? (М/Ж/С)

М

ЯВЛЯЕТСЯ ЛИ ОНО ОДУШЕВЛЕННЫМ? (Д/Н)

Н

СЛОВО 'СТЕКЛА' - ГЛАГОЛЬНАЯ ФОРМА? (Д/Н)

Н

К КАКОМУ РОДУ ОТНОСИТСЯ СУЩЕСТВИТЕЛЬНОЕ 'СТЕКЛА'? (М/Ж/С)

С

СФОРМИРОВАНЫ СЛОВАРНЫЕ СТАТЬИ С ОСНОВАМИ:

КОЛБ-, СТЕРЖН-, СТЕКЛ-.

ВТОРАЯ ФРАЗА: ...

...


Морфологический синтез форм слова. Программа ФОРМ1

По словарной статье (знакомого слова) и набору значений ГП строится соответствующая словоформа.

Примеры:

ЛЕВ (животное), творит.падеж, ед.число (7 0 0 1 5) → ЛЬВОМ

ЛЕВ (ден.единица), творит.падеж, ед.число (7 0 0 1 5) → ЛЕВОМ


Морфологический синтез парадигмы. Программа ФОРМ2

По словарной статье (знакомого слова) строится массив всех форм этого слова. Порядок элементов массива определяется номером М-класса.

Примеры:

синтез всех форм знакомого существительного КАССИРША

КАССИРША КАССИРШИ - им.падеж, ед. и мн.число

КАССИРШИ КАССИРШ - род.падеж, ед. и мн.число

КАССИРШЕ КАССИРШАМ - дат.падеж, ед. и мн.число

КАССИРШУ КАССИРШ - вин.падеж, ед. и мн.число

КАССИРШЕЙ КАССИРШАМИ - твор.падеж, ед. и мн.число

КАССИРШЕ КАССИРШАХ - предл.падеж,ед. и мн.число

синтез всех форм знакомого глагола ВОРОШИТЬ

ВОРОШИТЬ - начальная форма

ВОРОШИ ВОРОШИТЕ - формы повелит. наклонения

ВОРОШУ (БУДУ ВОРОШИТЬ) - 1 лицо,ед.ч,наст.и буд.вр.

ВОРОШИШЬ (БУДЕШЬ ВОРОШИТЬ) - 2 лицо,ед.ч,наст.и буд.вр.

ВОРОШИТ (БУДЕТ ВОРОШИТЬ) - 3 лицо,ед.ч,наст.и буд.вр.

ВОРОШИМ (БУДЕМ ВОРОШИТЬ) - 1 лицо,мн.ч,наст.и буд.вр.

ВОРОШИТЕ (БУДЕТЕ ВОРОШИТЬ) - 2 лицо,мн.ч,наст.и буд.вр.

ВОРОШАТ (БУДУТ ВОРОШИТЬ) - 3 лицо,мн.ч,наст.и буд.вр.

ВОРОШИЛ ВОРОШИЛА ВОРОШИЛО ВОРОШИЛИ - формы прош.времени

ВОРОША ВОРОШИВ - деепричастия

Рассмотрим примеры, показывающие возможность комбинирования отдельных программ библиотеки "Русская морфология". Пусть написана управляющая программа, получающая на входе некоторую словоформу, обращающаяся к программе МОРФ1 (и - если слова нет в словаре - к МОРФ2) и генерирующая все формы (программа ФОРМ2) для каждого варианта анализа. Среди этих форм обязательно должна быть входная словоформа.

Примеры:

обработка незнакомого слова ХРЮША

ВАРИАНТ 1

склонение по образцу слова НОЖ/БОГАЧ

* значение ГП "одушевленность" неизвестно *

ХРЮШ ХРЮШИ

ХРЮША ХРЮШЕЙ

ХРЮШУ ХРЮШАМ

ХРЮША / ХРЮШ ХРЮШЕЙ / ХРЮШИ

ХРЮШОМ ХРЮШАМИ

ХРЮШЕ ХРЮШАХ

ВАРИАНТ 2

склонение по образцу слова МАРШ

* значение ГП "одушевленность" неизвестно *

ХРЮШ ХРЮШИ

ХРЮША ХРЮШЕЙ

ХРЮШУ ХРЮШАМ

ХРЮША / ХРЮШ ХРЮШЕЙ / ХРЮШИ

ХРЮШЕМ ХРЮШАМИ

ХРЮШЕ ХРЮШАХ

ВАРИАНТ 3

склонение по образцу слова ТУЧА/КАССИРША

* значение ГП "одушевленность" неизвестно *

ХРЮША ХРЮШИ

ХРЮШИ ХРЮШ

ХРЮШЕ ХРЮШАМ

ХРЮШУ ХРЮШ / ХРЮШИ

ХРЮШЕЙ ХРЮШАМИ

ХРЮШЕ ХРЮШАХ

ВАРИАНТ 4

склонение по образцу слова СВЕЖИЙ

ПОХРЮШЕЕ ХРЮШЕЕ

ХРЮШ ХРЮША ХРЮШЕ ХРЮШИ

ХРЮШИЙ ХРЮШАЯ ХРЮШЕЕ ХРЮШИЕ

ХРЮШЕГО ХРЮШЕЙ ХРЮШЕГО ХРЮШИХ

ХРЮШЕМУ ЖРЮШЕЙ ХРЮШЕМУ ХРЮШИМ

ХРЮШЕГО amp; ХРЮШИЙ ХРЮШУЮ ХРЮШЕЕ ХРЮШИХ amp; ХРЮШИЕ

ХРЮШИМ ХРЮШЕЙ ХРЮШИМ ХРЮШИМИ

ХРЮШЕМ ХРЮШЕЙ ХРЮШЕМ ХРЮШИХ

ВАРИАНТ 5

спряжение по образцу слова ТОЧИТЬ/СЛЫШАТЬ

ХРЮШИТЬ

ХРЮШИ ХРЮШИТЕ

ХРЮШУ (БУДУ ХРЮШИТЬ)

ХРЮШИШЬ (БУДЕШЬ ХРЮШИТЬ)

ХРЮШИТ (БУДЕТ ХРЮШИТЬ)

ХРЮШИМ (БУДЕМ ХРЮШИТЬ)

ХРЮШИТЕ (БУДЕТЕ ХРЮШИТЬ)

ХРЮШАТ (БУДУТ ХРЮШИТЬ)

ХРЮШИЛ ХРЮШИЛА ХРЮШИЛО ХРЮШИЛИ

ХРЮША ХРЮШИВ

ВАРИАНТ 6

неизменяемое слово типа АНТРАША

ХРЮША

Заметим, что если бы слово хрюша анализировалось с предсказаниями, результат был бы более точен. Так, при предсказании «существительное женского рода» был бы выдан только третий вариант, при предсказании «форма глагола» - только пятый.


обработка незнакомого слова КРОВАТЬ

ВАРИАНТ 1

спряжение по образцу слова ПИРОВАТЬ

* значение ГП "вид" неизвестно *

(выбран несовершенный вид)

КРОВАТЬ

КРУЙ КРУЙТЕ

КРУЮ (БУДУ КРОВАТЬ)

КРУЕШЬ (БУДЕШЬ КРОВАТЬ)

КРУЕТ (БУДЕТ КРОВАТЬ)

КРУЕМ (БУДЕМ КРОВАТЬ)

КРУЕТЕ (БУДЕТЕ КРОВАТЬ)

КРУЮТ (БУДУТ КРОВАТЬ)

КРОВАЛ КРОВАЛА КРОВАЛО КРОВАЛИ

КРУЯ КРОВАВ

ВАРИАНТ 2

склонение по образцу слова ПЕЧАТЬ

* значение ГП "одушевленность" неизвестно *

КРОВАТЬ КРОВАТИ

КРОВАТИ КРОВАТЕЙ

КРОВАТИ КРОВАТЯМ

КРОВАТЬ КРОВАТЕЙ / КРОВАТИ

КРОВАТЬЮ КРОВАТЯМИ

КРОВАТИ КРОВАТЯХ

ВАРИАНТ 3

неизменяемое слово типа ДЕСКАТЬ

КРОВАТЬ

Start to type here