Алгоритмы cегментации предложений на простые составляющие
О.А. Невзорова, М.П. Сергеев
Аннотация
В статье обсуждается алгоритмы сегментации предложений некоторых типов на простые составляющие. Рассматриваются простые предложения с однородными членами, осложненные деепричастными или причастными оборотами.
- Общая схема анализа текста
Традиционная схема анализа текста включает несколько стандартных этапов обработки, среди которых выделим следующие основные:
- I. Этап предварительной обработки.
На вход процедуры предобработки поступает исходный текст, на выходе порождается специальный текст, содержащий информацию о структурных особенностях исходного текста (границы текстовых структур определенного типа, числовые характеристики структурных компонентов текста, оценки пунктуационного образа текста).
- II. Этап морфологической разметки текста.
На входе - совокупность элементов текста, полученная на предыдущем этапе, на выходе - морфологический образ текста, т.е. совокупность элементов-слов с приписанными морфологическими характеристиками.
III. Этап сегментации текста.
На входе – результаты морфологической разметки текста, на выходе – совокупность сегментов определенных типов.
- IV. Этап семантико-синтаксического анализа текста.
На входе - результаты обработки текста на этапе III. На выходе - семантико-синтаксический образ текста, т.е. совокупность сегментов с приписанными семантическими характеристиками.
В статье рассматриваются алгоритмы сегментации простых предложений, осложненных однородными членами, причастными или деепричастными оборотами. Сегментация предложения на составляющие является важным этапом анализа текста, поскольку фактически интерпретация текста осуществляется на основе элементов, выделенных на этом этапе. Под сегментацией понимается процесс группировки элементов текста в сегменты, задающий взаимооднозначное отображение множества элементов во множество сегментов текста.
Каждый сегмент имеет главное слово, семантическая роль которого важна, и второстепенные слова, определяющие главное слово в сегменте, семантическая роль которых не учитывается.
Модуль сегментации образует из последовательности элементов предложения структуры внутренних данных (сегменты). Структурами представления сегментов являются таблицы, содержащие информацию о простых и сложных сегментах. Принадлежность элементов предложения к определенному типу сегмента или к определенной однородной группе определяется по ссылке элемента на запись в таблице сегментов или в таблице однородных групп.
- Типы сегментов
Выделяются шесть основных типов сегментов:
- Именной сегмент – определительная конструкция, возможно с предлогом, в котором существительное является главным словом, а предлог и определения-прилагательные – второстепенными словами.
Пример 1. [на больших и сверхбольших расстояниях]
- Именной сегмент с числительным - именной сегмент, в состав которого входит как второстепенный член - числительное.
Пример 2. [первая страница]
- Именной сегмент даты - именной сегмент с числительным, в состав которого в качестве главного слова входит название месяца.
Пример 3. [девятнадцатого июня]
- Глагольный сегмент, в котором глагол является главным словом, а наречия - второстепенными словами. Если глагол - составной, то главным словом считается последний глагол, с которым согласуются группы существительных.
Пример 4. [штатно осуществляется]
- В сегмент причастного оборота входят все элементы, стоящие в предложении между двумя запятыми, выделяющими причастный оборот, если причастный оборот находится после определяемого слова, или между причастием и определяемым словом, если причастный оборот стоит до определяемого слова. Поиск определяемого слова происходит в области до причастного оборота, если он выделяется запятыми, или после причастия, если оборот не выделен запятыми. Определяемое слово согласуется с причастием по морфологическим признакам. Причастный оборот строится при обнаружении слова в форме причастия.
Пример 5. [, соответствующие режиму ДБВ,]
- В сегмент деепричастного оборота входят все элементы, стоящие в предложении между двумя запятыми, выделяющими деепричастный оборот. Деепричастный оборот строится при обнаружении слова в форме деепричастия.
Пример 6. [сопровождая одиночную цель с сохранением обзора]
Сегмент имеет признак, показывающий наличие отрицания при главном слове.
- Алгоритмы построения сегментов
В процессе сегментации первыми выделяются глагольные сегменты, далее, с начала предложения, строятся именные сегменты. При обнаружении в предложении причастия или деепричастия запускается процедура построения сегмента причастного или деепричастного оборота.
В процессе сегментации определяются однородные члены предложения. Признаком, по которому запускается процедура построения однородной группы, является запятая либо союз. Для создания однородной группы должны быть найдены слова одной части речи, согласованные по морфологическим признакам.
Определим некоторые понятия.
Под морфологической группой (МГ) будем понимать набор слов с одинаковыми морфологическими характеристиками.
Морфологическая группа с разделителями (МГР) - это набор слов, разделенных знаками препинания или союзами (и, или, либо).
Семантико-морфологическая группа (СМГ) - это набор слов с одинаковыми морфологическими и семантическими характеристиками.
Семантико-морфологическая группа с разделителями (СМГР) - это набор слов с одинаковыми морфологическими и семантическими характеристиками, разделенных знаками препинания или союзами.
А. Алгоритм построения глагольного сегмента
Глагольный сегмент строится, если статистика предложения содержит данные о наличии в предложении глаголов и наречий. При просмотре элементов предложения ведется подсчет глаголов в личной форме и в форме инфинитива.
Если анализируемый элемент:
- наречие: включить в текущий сегмент;
- глагол в форме инфинитива:
если предыдущий глагол в форме инфинитива, то
- создать новый глагольный сегмент;
- включить глагол в новый сегмент;
- установить значение признака инфинитива;
- если предыдущий глагол не в однородной
группе то создать однородную группу глаголов,
иначе присоединить глагол к однородной группе;
иначе – присоединить глагол к текущему глагольному сегменту;
- установить значение признака инфинитива.
- глагол в личной форме:
если предыдущий глагол не в форме инфинитива, то
- создать новый глагольный сегмент;
- включить глагол в новый сегмент;
- если предыдущий глагол не в однородной группе то создать однородную группу глаголов,
иначе присоединить глагол к однородной группе;
иначе – присоединить глагол к текущему глагольному сегменту.
Б. Алгоритм построения именного сегмента, именного сегмента с числительным, именного сегмента даты
Обозначим,
{A} - непрерывные морфологические группы прилагательных,
S – имена существительные;
V – глагол,
[] – сегмент.
Опишем правила построения именных сегментов.
- МГ или МГР, стоящие в начале предложения, после глагола, после разделителя, не входящего в МГ, объединяются в один сегмент с первым существительным, стоящим после них.
[{A}S] [{A1}S1] V [{A2}S2]
[{A1}S1] {,/союз} [{A2}S2] - если S1 и S2 согласованы по морфологическим признакам, то это МГ существительных.
- МГ или МГР, стоящие перед точкой, перед глаголом, между глаголом и точкой, объединяются в один сегмент с первым существительным, стоящим перед ними.
[S{A}] .
[S{A}] V
3.1. В конструкциях вида: [S1{A1}] [{A2}S2] сначала выделяются сегменты [S1 А1], затем [А2 S2].
При этом S1, S2 - не МГ, т.е. не согласованы по морфологическим признакам.
3.2. если S1, S2 - МГ, то конструкция: S1 A S2. Для разрешения данной неоднозначной ситуации построения сегмента предусматривается выход на диалог.
- В конструкции вида S V A будет образовано два сегмента: [S]и [A].
В. Алгоритм построения сегмента деепричастного оборота
Процедура построения деепричастного оборота запускается при обнаружении в предложении деепричастия. При этом:
- производится поиск первой запятой от текущего элемента к началу предложения до первой запятой, не являющейся членом однородной группы;
- создается сегмент деепричастного оборота;
- к сегменту присоединяются элементы предложения до следующей запятой, не являющейся членом однородной группы.
Г. Алгоритм построения сегмента причастного оборота
Процедура построения причастного оборота запускается в следующих случаях:
- При обнаружении в предложении причастия. При этом:
- создается сегмент причастного оборота;
- к сегменту присоединяются элементы предложения до обнаружения в предложении существительного, согласованного с причастием по морфологическим признакам.
- При обнаружении в предложении запятой, не являющейся членом однородной группы, и наличии причастия, после которого располагается следующая запятая. При этом:
- производится поиск первой запятой от текущего элемента к началу предложения до первой запятой, не являющейся членом однородной группы;
- создается сегмент причастного оборота;
- к сегменту присоединяются элементы предложения до следующей запятой, не являющейся членом однородной группы.
3.5. Построение однородных групп
Однородные группы причастных и деепричастных оборотов строятся одновременно с построением сегментов: при обнаружении запятой или союза производится проверка на наличие однородных членов.
Аналогично строятся однородные группы именных сегментов, но сначала осуществляется поиск однородных определений, а затем однородных существительных.
- Представление сегментов текста
Информация о структуре сегмента представляется в специальных таблицах. Все данные, использующиеся в программе, представлены в виде таблиц формата DBaseIV. Представление данных в виде таблиц наряду с легкостью чтения позволяет применять стандартные процедуры работы с таблицей: добавление, удаление, редактирование записи, быстрый поиск записи в таблице, а также механизмы связывания таблиц по ключевым полям.
Таблица Segments содержит идентификаторы и информацию о сегментах предложения:
- номер раздела;
- номер предложения;
- номер сегмента;
- тип сегмента (глагольный,именной);
- главное слово;
- семантическая роль;
- характеристика времени глагола;
- наклонение глагольного сегмента;
- признак присутствия в сегменте частицы "не".
Таблица Links содержит идентификаторы и информацию об однородных группах предложения:
- номер раздела;
- номер предложения;
- номер однородной группы.
Рассмотрим пример сегментации предложения, построенный на основе приведенных выше алгоритмов сегментации.
Пример 7. Скобки [] выделяют сегменты предложения.
[Режим] [ДБВ] [предназначен] [для обеспечения] [ведения] [воздушного боя] [на больших и сверхбольших дальностях] [с использованием] [информации] [от обзорно-прицельных комплексов] [БРЭО] и [применением] [управляемых ракет] [класса "воздух-воздух"] [Р1], [Р12], [Т1], [Т12], [Т2], [Т6].
Элементы однородных групп:
- больших и сверхбольших
- с использованием и применением
- Р1, Р12, Т1, Т12, Т2, Т6
- Основные выводы
Описанные в статье алгоритмы сегментации реализованы программно с использованием интегрированной среды Delphi 4.0. Проведенное тестирование алгоритма на реальных текстах дало хорошие результаты при сегментации простых предложений с однородными членами, осложненными причастными и деепричастными оборотами. Следующая задача – сегментация сложных предложений. Наши предварительные выводы по сегментации сложноподчиненных предложений достаточно оптимистичны, поскольку в русском языке существуют специальные маркеры (союзы и союзные слова), разделяющие части сложного предложения. Что касается сложносочиненных предложений, то задача их сегментации в полном объеме пока еще не решена. Основная трудность связана с разделением процессов построения однородных групп и частей сложного предложения.