Содержание к диссертации
Введение
ГЛАВА I. Основные принципы формализации предложений на русском языке 9
1. Базовые тезисы 9
2. Иерархия базисных понятий 12
3. Семантика предложно-падежных форм 20
ГЛАВА II. Семантика предложения 29
1. Предварительная (морфологическая) обработка предложения 29
п.1 Создание морфологической структуры предложения 29
п.2 Простейший отброс альтернатив. 32
2. Объектная обработка предложения 35
п.1 Создание и заполнение 0-формы. , 35
п.2 Создание и заполнение 1-формы 38
п.З Создание и заполнение 2-формы. . 40
3. Первичная обработка операций над действиями 45
4. Первичный анализ однородных членов предложения 46
5. Первичная обработка причастных и деепричастных оборотов 56
6. Алгоритм склейки части предложения, для которой определено центральное слово 62
7. Построение семантической формулы для причастных оборотов 76
8. Построение семантической формулы для деепричастных оборотов 79
9. Генеральная склейка простого предложения в семантическую формулу.80
ГЛАВА III. Построение вопросно-ответной системы 93
1. Постановка задачи 93
2. Некоторые особенности семантического анализа текста 95
3. Организация базы знаний 102
4. Обработка входного текста и запросов. организация уровней понимания ввос 112
5. Организация механизма доступа 117
Заключение 126
Литератур а 131
- Иерархия базисных понятий
- Объектная обработка предложения
- Первичная обработка причастных и деепричастных оборотов
- Некоторые особенности семантического анализа текста
Введение к работе
Мы живем во время бурного развития информационных и компьютерных технологий. Задачи передачи, хранения и использования информации являются сегодня одними из самых актуальных проблем в области кибернетики и информатики. При решении конкретных задач в этой области непременно сталкиваешься с проблемой анализа текстов на естественных языках, будь то английский, русский или какой-нибудь другой язык общения людей между собой. Эта проблема стала в некотором роде «бичом» разработчиков интеллектуальных систем, таких как системы машинного перевода ([1,2, 3]), системы автоматического поиска текста в массивах «необработанных» данных ([4, 5]), заполнение баз знаний и т. п.
Между тем, эта проблема родилась не сегодня, а в конце пятидесятых годов, когда появление первых компьютеров вызвало «интеллектуальный взрыв» в научном обществе, связанный с постановкой новых задач перед разработчиками систем искусственного интеллекта. В отличие от других задач для ЭВМ, которые имеют некоторое алгоритмическое решение, задачи данного класса характеризуются отсутствием известных схем решения априори. Для их решения используются иерархические построения и программы, имитирующие механизмы мышления человека [6]. Традиционно «узким» местом здесь является автоматическое выделение хотя бы элементарного смысла из текста на естественном языке.
Пионерами в области автоматического распознавания текстов принято считать специалистов Кембриджской школы семантики [7], в частности, М. Мастермана. Английскими учеными уже в начале 60-х годов была построена целая серия семантических языков, наибольший интерес из них представляет поздняя версия. В языке (английском) было выделено 58 элементарных смыслов - сем, или классификаторов, а также были введены рекурсивные правила построения из них формул. Классификаторы были сведены в несколько сот шаблонов, каждый из которых содержит по 3 класси-
фикатора, определяющих класс элементарных ситуаций. К таким шаблонам, к примеру, относятся формы «человек-место-делать», или «человек-движение-место». Далее анализ производится в два этапа. На первом этапе текст при помощи специального алгоритма разбивается на фрагменты, которые затем проверяются на содержание троек классификаторов, соответствующим шаблонам, которые далее и заменяются шаблонами. Разбиение предложения на шаблоны при этом может быть и неоднозначным (перекрещивающимся). На втором этапе для каждого варианта разбиения устанавливается, является ли полученная последовательность шаблонов семантически связанной. Два следующих друг за другом шаблона считаются семантически связанными, если какой-нибудь классификатор первого шаблона совпадает с каким-нибудь классификатором (или отрицанием классификатора) второго шаблона. Подробней об этом алгоритме можно узнать в [8].
Можно сказать, что результаты исследований ученых из Кембриджа повлияли на возникновение и все дальнейшее развитие новой по тем временам науки - компьютерной лингвистики (см. о компьютерной лингвистике в [9]). Несмотря на то, что представителям Кембриджской школы семантики не удалось по чисто техническим причинам довести свой проект до логической точки, основные результаты этих исследований, а также их некоторые методы и приемы легли в основу, или хотя бы эхом отозвались в работах многих известных ученых в этой области, таких как Н. Хомский [10], И.А. Мельчук [11, 12], Ю.Д. Апресян [7].
В нашей стране «бум» компьютерной лингвистики пришелся на середину-конец 70-х годов прошлого века (см., например [13, 14, 15, 16]). После некоторого периода скептицизма (80-е годы) вновь начал возрастать интерес к прикладным задачам теории искусственного интеллекта и компьютерной лингвистики ([17, 18, 19, 20, 21]). Этот рост продолжается и по сей день.
Настоящая работа также имеет непосредственное отношении к проблеме анализа текста на естественном языке с последующим выделением из него смысла. Исследование проходит на базе задачи «Вопрос-Ответ», суть
которой состоит в следующем:
Постановка задачи: Конструируется интеллектуальная система анализа текста на русском языке. На вход системы подается текст, состоящий из одного или нескольких предложений. От системы требуется, после соответствующей обработки входного текста, «умение» отвечать на вопросы по введенному тексту (более полную постановку задачи построения ВОС см. в 1 Главы III). См. также [22].
Назовем подобного рода систему вопросно-ответной (ВОС). Следует заметить, что история знает построение систем подобного рода, однако большая часть из них страдала одним существенным недостатком. Для того чтобы система могла адекватно ответить на поставленный вопрос, необходимо было задать его в определенной форме, удобной для проведения анализа системой. Поясню это на следующем примере.
Предположим, на вход ВОС подается фраза «Миша и Коля - одноклассники». Вопрос «Кто учится в одном классе?» одолеет, скорее всего, каждая ВОС, а вот вопрос «Кто учится в одной школе?» в большинстве случаев потребует перефразировать вопрос. Возможно, даже не со второго раза удастся «угадать» нужную форму вопроса.
Это неудобство и послужило поводом к разработке систем автоматического перефразирования текстов, пик создания которых пришелся на середину 70-х годов прошлого века. С некоторыми результатами в этой области можно ознакомиться, к примеру, в работах [7, 11]. В данной работе проблема необходимости перефразировки отсутствует. Подробнее об этом можно прочитать Главе III.
Целями настоящей работы являются:
Предложить метод математической формализации текста на русском языке. Текст представляется в виде формульной структуры, которая затем преобразуется в семантический граф.
Решение задачи построения вопросно-ответной системы с использованием указанного семантического графа.
Для достижения поставленных целей выполнялись следующие задачи:
Построение иерархии базисных существительных (2 Главы I).
Семантический анализ предложно-падежных форм с целью определения их семантико-грамматического типа (3 Главы I).
Построение семантического анализатора предложения, преобразующего предложение на русском языке в формульную структуру (см. Главу II).
Установление кореференциальных и анафорических связей между предложениями (см. 2 Главы III).
Преобразование полученной формульной структуры в семантическую сеть (см. 3 Главы III).
Решение задачи построения вопросно-ответной системы. В рамках этой задачи предложена семантическая операция сопоставления, позволяющая находить релевантные запросу ответы (см. 4-5 Главы III).
На защиту выносятся:
Иерархия базисных существительных русского языка, построенная в виде ориентированного дерева типа РОД-ВИД и определяющая значительную часть структурных и ассоциативных связей в тексте.
Семантический анализатор простого распространенного предложения на русском языке. Анализатор включает в себя алгоритмы анализа предложно-падежных форм, однородных членов и отглагольных оборотов. Результатом семантического анализа предложения является семантическая формула (суперпозиция базисных функций и базисных понятий).
Концепция построения вопросно-ответной системы с помощью семантической сети.
Скажу несколько слов об актуальности проведенных исследований. Компьютер не может понимать естественные языки, как, впрочем, не понимает он и языки программирования. Но можно и нужно заставить машину уметь выполнять задания, представленные ей в форме естественного языка. Вот здесь как раз и возникает вопрос о формализации этого языка, то есть переработки данных на естественном, понятном для человека языке на некоторый формаль-
ный (созданный программистом) язык, работа с которым была бы более удобной именно для компьютера. Формализация естественного языка позволила бы решить много насущных проблем, таких как задача автоматического перевода, задача сортировки документов (как в электронном, так и в бумажном виде), задача автоматического поиска информации (в том числе, в электронных сетях) и другие. Подробнее об использовании формализации естественных языков можно прочитать в работах [1, 4, 5, 23, 24]. Мною были проведены исследования в области формализации русского языка и разработан алгоритм формализации произвольного предложения на русском языке. Важную роль в исследованиях сыграли идеи, изложенные в [25, 26, 27, 28]. Методика исследования и результаты подробно описаны в Главах I и П.
Однако, только формализация естественного языка не дает нам немедленного решения поставленной выше задачи. Предположим, удалось перевести входной текст и текст вопроса в некоторый формальный вид. Теперь нужно разработать некоторые правила, с помощью которых возможно определить, имеет ли вопрос адекватный ответ в исходном тексте. Кроме того, в случае возникновения нескольких альтернатив ответа желательно иметь и правила, позволяющие нам отбросить максимальное число ненужных альтернатив. Иными словами, необходимо выявить критерии наибольшей связанности семантической формулы вопроса и некоторой, по возможности единственной, части входного текста. Решение этих задач, а также вопросы хранения и обработки формализованного входного текста обсуждаются в Главе III. Некоторые идеи и методы исследования в этой области заимствованы в [7, 11, 12]; в этом случае будут даны соответствующие указания. Вопросы, связанные с конструированием ВОС, весьма актуальны особенно сейчас, в век бурного развития информатики, информационных и сетевых технологий. Пользователю электронных сетей не нужно будет часами проглядывать массивы информации, а можно будет лишь с помощью 2-3 вопросов выяснить, имеется ли в текущей базе данных необходимая ему информация. Также изменится и подход к проблеме автоматического поиска, сортировки информации, появится возмож-
ность создавать системы, которые смогут самостоятельно заполнять базы знаний постоянно поступающей информацией на естественных языках.
Хочу также отметить, что целью проделанной работы было не 100-процентное распознавание смысла в тексте на русском языке (на мой взгляд, это практически невозможно), а достижение «планки» распознаваемости уровня 70-80% предложений текста.
Иерархия базисных понятий
Словарь базисных понятий русского языка содержит слова, которые нельзя выразить через другие более простые понятия. Он содержит около 18000 существительных, называющих физические и абстрактные объекты, 1032 базисных прилагательных и 929 базисных глаголов. Смысл всех остальных слов (их около 80000) выражается суперпозициями, построенными из базисных функций и базисных понятий. Наибольший интерес для нас в рамках настоящей работы имеет множе ство базисных существительных. Это множество естественным образом разбивается на классы, которые образуют древовидную структуру по типу РОД-ВИД. Разработка классификации базисных существительных русского языка была начата в 1997 году профессором Тузовым при моем непосредственном участии; в 1998 году был выполнен ее первый черновой вариант. При построении классификации мы руководствовались правилами: 1. Все элементы класса должны иметь схожие семантические свойства, которые наследуются от другого класса, определяемого как надкласе. Элементы класса должны не только наследовать все семантические свойства надкласса, но могут и иметь свои индивидуальные признаки. Класс, стоящий в корне этой древовидной структуры назвали «нечто». Один или несколько подклассов могут иметь многие классы, но слишком мелкое деление является нецелесообразным, во всяком случае, в рамках данной работы. (1.2.1) 2. Если один элемент какого-либо класса может использоваться как аргумент в некоторой семантической формуле, то и остальные элементы этого класса могут быть аргументами в этой же формуле. То же должно выполняться и для подклассов данного класса, причем обратное не всегда верно. (1.2.2) 3. Каждому из классов присваивается свой идентификационный номер, причем желательно, чтобы по номеру можно было определить надкласе данного класса. (1.2.3) С тех пор иерархия базисных существительных претерпела значительные перемены: имена классов переменились, сами классы были основательно подчищены от случайного «мусора», помещенного в них при первом разбиении на классы, некоторые классы слились в один, некоторые исчезли, к существительным добавились аналогичные иерархии других частей речи.
Тем не менее, концепция классификации сохранилась. Ниже приводится краткий вариант классификации с небольшой глубиной. С ее полным вариантом можно ознакомиться в [25]. В левом столбце находится номер класса в иерархии; в правом «путь» в иерархии, т.е. самое правое слово (или словосочетание через знак «_») является именем самого класса, левее расположено имя надкласса, еще левее имя надкласса для надкласса и т.д. Если относиться к номерам класса не как к числам, а как к словам (или строкам), то видно, что номер надкласса входит в номер класса, начиная с крайней левой позиции. Так, к примеру, номер класса 1211 («деревья») содержит в себе номер своего надкласса 121 («растения»). Классификация базисных слов русского языка является мощным инструментом для решения многих вопросов в задаче формализации текстов на русском языке. Наиболее важным из них является вопрос о семантическом анализе свободных предложно-падежных форм. В русском языке предлоги являются функциями на существительных, иначе говоря, смысл предложно-падежной формы (т.е. формы типа «предлог + падежная форма существительного», причем предлог может быть опущен) зависит от типа существительного, на котором определен предлог. Например: Он вернулся из леса = Он вернулся откуда? из леса (1.3.1) Он вернулся из жалости = Он вернулся почему? из жалости (1.3.2) Семантическая формула глагола «вернуться» достаточно громоздка, и я не буду приводить ее здесь; скажу только, что этот глагол может присоединять к себе аргументы «им», «откуда» и «куда». Отсюда видно, что в примере 1.3.1 предложно-падежная форма «из леса» автоматически присоединяется к глаголу «вернуться» (как аргумент типа «откуда»), а в примере 1.3.2 предложно-падежная форма «из жалости» не является аргументом какого-либо слова предложения. Такие предложно-па-дежные формы называются свободными. Наличие или отсутствие свободных форм в простом предложении определяет предложение как, соответственно, распространенное или нераспространенное. Однако, сразу определить, является ли предложно-падежная форма свободной или нет, может только человек, так как он сразу интуитивно понимает, что предложно-падежная форма «из леса» имеет тип «откуда», а «из жалости» - «почему». Необходимо выработать алгоритм, с помощью которого можно было бы автоматически определять тип той или иной предложно-падежной формы. Здесь к нам и приходит на помощь классификация базисных существительных. Информацию о первичных грамматических типах предложно-падеж-ных форм мы получаем из морфологического анализатора, разработанного профессором В.А. Тузовым.
С его помощью мы можем определить падеж (или возможные падежи), число, род и другие морфологические качества существительного, а также, при необходимости, вычислить и морфологические характеристики глагола (или другой части речи), присоединяющего данную предложно-падежную форму. Подробно о морфологическом анализе можно узнать в [25]. Морфологический анализатор позволяет нам вычислить, например, что «из леса» имеет первичный грамматический тип «из чего», «жалости» - «че-го\чему\чём», а «из жалости» - «из чего». Эта информация получается из специального морфологического словаря, а также из грамматических свойств предлогов. К примеру, предлог «из» присоединяет к себе существительные только в форме родительного падежа, что в примере 1.3.2 позволяет отбросить для «жалости» первичные грамматические типы «чему» и «чём» (дательный и предложный падеж соответственно). Одна и та же предложно-падежная форма в разных предложениях может быть свободной или несвободной. Рассмотрим еще два примера: Иван построил себе дом из кирпича. (1.3.3) Иван купил дом из кирпича. (1.3.4) В примере 1.3.3 предложно-падежная форма «из кирпича» не является свободной; в предложении она выполняет чисто синтаксическую роль (слово «построил» присоединит ее в качестве одного из своих аргументов). В примере 1.3.4 та же форма является свободной и должна сама определить свое место в предложении (в примере 1.3.4 она должна быть присоединена к слову «дом» в качестве его определения («какой?»)). Но в обоих случаях после морфологического анализа для формы «из кирпича» мы получаем один первичный грамматический тип «из чего». Требуется преобразовать первичный грамматический тип к семантико-грамматическому типу ([25]). То есть, к примеру, в 1.3.4 тип «из чего» в тип «какой». Для этого мною был построен следующий алгоритм (алгоритм приведен в варианте для нескольких основных предлогов). Алгоритм семантического анализа предложно-падежных форм: 1. Каждому предлогу русского языка присваивается свой номер-код,
Объектная обработка предложения
Одной из основных проблем по распознаванию смысла в текстах на естественных языках является, несомненно, проблема разрешения альтернатив. Как уже говорилось выше, многие слова русского языка3 имеют не единственную словарную форму {омонимичность), а значит, и не единственное смысловое значение. Более того, все знаменательные части речи имеют не одну, а несколько форм, получаемых при склонении, спряжении, изменении совершенности глагола и т.п. Таким образом, одно и то же слово в разных словоформах может иметь различное число значений4. Так, к примеру, слово «лес» имеет два значения (в грубом описании): земной ландшафт {«лес шумит») и строительный материал {«грузить лес»). Это лексические альтерна тивы (словарные) слова. Форма же этого слова «леса» помимо двух указанных значений имеет еще два: постройка {«строительные леса») и инвентарь для рыболовства {«прозрачная рыболовная леса»). Таким образом, к лексическим альтернативам добавляется пара морфологических альтернатив. Требуется минимизировать число альтернативных смыслов для слов. Различные смыслы слов могут быть описаны и словами, являющимися даже разными частями речи. Например, слово «мыла» может быть глаголом («мыть») или существительным («мыло»). В данном случае слова явно отличаются друг от друга морфологическим описателем (частью речи). Такие альтернативы отсекать проще, потому что для неверных альтернатив в предложении возникают сразу же морфологические или синтаксические нестыковки, благодаря которым сразу же можно отбросить ту альтернативу, которая не увязывается с остальными словами предложения.
Решить проблему что называется «одним махом», выделить ее в общем алгоритме семантического анализа предложения очень сложно, часто даже невозможно. Поэтому приходится решать ее «по частям»: на различных этапах анализа отбрасывать альтернативы по мере очевидной непригодности той или иной из них. На этапе предварительной обработки текста нам удается избавиться лишь от самых непригодных значений, опираясь исключительно на морфологические признаки слова (в основном, часть речи). Ниже, в таблице 3 представлены правила для простейшего отброса альтернатив на данном этапе анализа: взятых из морфологической структуры предложения. Следует отметить, что отбираются также и объекты, имеющие несколько различных морфологических альтернатив, т.е. те, которые не удалось отсеять при морфологической обработке предложения. ОЬ2 - имя объекта, зависимого от рассматриваемого по родительному падежу (ЗРП-объект, или ЗРПО). Дело в том, что практически все объекты в русском языке могут присоединять к себе другой объект в форме родительного падежа. Семантика присоединяемого объекта, в принципе, может и не быть непосредственно связана с присоединяющим объектом10, но на данном этапе этот факт не является существенным. При анализе объекта мы просто смотрим, не следует ли за ним в предложении другой объект в форме родительного падежа (возможно, с определениями или определительными словами слева - см. п.2 настоящего параграфа). Если такой объект имеется, то его и принимаем за ЗРПО. Если такой объект отсутствует, то поле для него просто не заполняется. N1 и N2 - соответственно, индексы основного объекта и ЗРПО (т.е. слов, определяющих данные объекты) в массиве объектов СЛОВО объекта ПРЕДЛОЖЕНИЕ морфологической структуры.
Если ЗРПО отсутствует, то N2 принимается равным 0. Nishl и Nish2 - соответственно, индексы в массиве объектов ИСХОД для основного объекта и ЗРПО. Наличие этих индексов объясняется возможностью наличия нескольких альтернатив (в том числе - и морфологи ческих) для упомянутых объектов. На данном этапе nishl и nish2 могут быть незаполненными (т.е. иметь нулевое значение). Npcl - индекс в массиве объектов ЧИСЛО-ПАДЕЖ для объекта типа ИСХОД nishl. Если имеется несколько альтернатив (как в примере 2.1.2), то данное поле также не заполняется (Npcl=0). Как правило, большая часть альтернатив объектов ЧИСЛО-ПАДЕЖ отсеивается именно во время объектной обработки предложения. Nfll - индекс в массиве объектов ФОРМУЛА для объекта типа ИСХОД nishl. При наличии нескольких вариантов формул на данном этапе также не заполняется (Nfll=0). Form - семантическая формула основного объекта. Если поле nfll пусто, то условно записывается первая формула из массива объектов ФОРМУЛА для объекта типа ИСХОДnishl (принятая за основную согласно статистическим исследованиям - [25]). Narg - номер аргумента «род» в формуле Form в случае наличия ЗРПО, в противоположном случае принимается равным 0. Nisp - указывает, является ли основный объект ЗРП-объектом для какого-то другого объекта. Если да, то в это поле записывается номер этого объекта, в противоположном случае - 0. Общий вид 0-формы таким образом представляет собой таблицу, составленную из строк, формат которых показан в таблице 4. Конечно, часто при анализе предложений многие поля остаются незаполненными. Рассмотрим построение 0-формы на примере такого предложения:
Девочка купила в магазине две тонких тетради, ручку и большой альбом для рисования (2.2.1) Общий вид 0-формы для нее при инициализации будет иметь сле Из таблицы видно, что даже в таком простом предложении на данном этапе сформировано 7 объектов, один из них - ЗРПО (слово «тетрадь»). Помимо данных, представленных в таблице 5, каждому элементу формы присваивается свой номер, используемый другими формами (см., например, 3 Главы III). Таким образом, при построении и заполнении 0-формы мы получаем первичную морфологическую, синтаксическую и даже семантическую информацию об объектах, входящих в предложение. п.2 Создание и заполнение 1-формы. Следующим этапом является создание 1-формы - базы данных, содержащей информацию о различных характеристиках объектов, содержащихся в 0-форме. Каждому такому объекту сопоставляется некоторый набор определений, состоящий из стоящих непосредственно слева от объекта слов. На данном этапе не подразумевается проверка на однородные члены предложения. Начиная со слова, стоящего слева от объекта, мы двигаемся влево (к началу предложения). Каждое слово на этом пути проверяется на соответствие следующим условиям: 1. Слово должно являться определением для объекта. Под понятием определения я подразумеваю не только прилагательные, но и различные другие определительные слова (см. ниже по тексту). Здесь должно четко соблюдаться одно правило: все определительные слова присоединяются к объекту в определенном порядке (справа налево) - [11]. А именно: сначала к объекту
Первичная обработка причастных и деепричастных оборотов
В первичную обработку причастных и деепричастных оборотов входит определение рамок (величины) оборотов, а также базового слова - т.е. слова, к которому относится оборот. Для причастных оборотов таким словом является описываемый причастием объект с теми же морфологическими свойствами, что и у причастия; для деепричастных оборотов - почти всегда (за особым исключением) - подлежащее в предложении. Для такой первичной обработки причастных и деепричастных оборотов также используются особые формы, хранящие описанную выше информацию. Ввиду синтаксической схожести причастных и деепричастных оборотов эти первичные формы одинаковы, носят название индексных форм и имеют следующую структуру: Num - индекс причастия или деепричастия в массиве объектов СЛОВО объекта ПРЕДЛОЖЕНИЕ (т.е. номер слова) морфологической структуры. Numbeg и Numfin - соответственно, индексы первого и последнего слова причастного или деепричастного оборота в морфологической структуре предложения. Basis - индекс базового слова оборота в морфологической структуре предложения (понятие базовых слов причастного и деепричастного оборота, а также их различия даны выше). Заполнение индексных форм для причастных оборотов происходит в следующем порядке: 1. Прежде всего в морфологической структуре производится поиск слов, являющихся причастиями (эта информация содержится в поле «тип глагола»).
Если причастий в предложении нет, то выходим из алгоритма. В противном случае заполняем поле Num индексной формы причастных оборотов. 2. Причастный оборот, стоящий до определяемого слова не обособляется (т.е. запятыми не выделяется). На этом шаге проверяются слова, стоящие после причастия. При этом возможны следующие варианты: Встретился знак препинания. В этом случае считаем, что определяемое причастным оборотом слово стоит перед причастным оборотом. В поле Numfin записывается номер слова, стоящего перед указанным знаком препинания. Считаем, что причастный оборот стоит после определяемого слова. Переходим к шагу №3. Отмечу, что здесь охватывается и случай конца предложения. Встретился объект из 0-формы (существительное, местоимение или количественное числительное, имеющее те же число и падеж (еще лучше - и род), что и рассматриваемое причастие1 . В этом случае фиксируется конец причастного оборота. В поле Basis индексной формы записывается индекс указанного объекта 0-формы, а в поле Numfin - индекс слова, стоящего перед этим объектом16. Переходим к шагу №3. Во всех остальных случаях переходим к рассмотрению следующего слова (знака препинания). 3. Причастный оборот, стоящий после определяемого слова обяза тельно обособляется (т.е. выделяется запятыми).
После предыдущего шага возможны следующие 2 варианта: Поле Basis индексной формы еще не заполнено. Это означает, что на предыдущем шаге было определено, что причастный оборот стоит после определяемого слова. Тогда осуществляем поиск ближайшего перед рассматриваемым причастием знака препинания. Считаем, что слово, стоящее перед этим знаком препинания и есть базовое слово для причастного оборота (или ЗРПО базового слова). Исходя из этого, заполняем поле Basis индексной формы для причастного оборота. Также в поле Numbeg записываем индекс слова, стоящего сразу после указанного знака препинания. Осуществляется выход из алгоритма17. Поле Basis индексной формы уже заполнено. Это означает, что причастный оборот стоит перед определяемым словом. В данном случае следует найти начало причастного оборота (т.е. вычислить поле Numbeg для индексной формы). Рассматриваем слова, стоящие перед причастием. Возможны следующие случаи: - Найден или «висячий» предлог (т.е. предлог, не учтенный при заполнении 2-формы) или предлог, связанный с базовым словом. В этом случае в поле Numbeg записываем индекс слова, стоящего после указанного предлога. Причем, в случае «висячего» предлога осуществляется дополнительное заполнение 2-формы для этого предлога и базового слова по алгоритму, описанного в соответствующем пункте настоящего параграфа. - Найден глагол (в любой из своих форм). В этом случае в поле Numbeg записываем индекс слова, стоящего после данного глагола. - Встретился знак препинания (этот случай встречается очень редко, в основном - в сложных предложениях). Тогда в поле Numbeg записываем индекс слова, стоящего после найденного знака препинания. - Дошли до начала предложения. В этом случае в поле Numbeg индексной формы записываем индекс первого слова предложения (т.е. Num beg=l). Описанный алгоритм заполнения индексных форм для причастных оборотов применяется для всех причастий, даже одиночных (т.е. причастий, не имеющих зависящих от него слов). Заполнение индексных форм для деепричастных оборотов производится несколько иначе, чем для причастных оборотов.
Ниже представлен алгоритм такого заполнения: 1. Здесь, также как и в первом шаге по заполнению индексных форм для причастных оборотов, в морфологической структуре осуществляется поиск слов, являющихся деепричастиями. Если деепричастий в предложении нет, то выходим из алгоритма, иначе заполняем поле Num индексом деепричастия в массиве объектов СЛОВО морфологической структуры предложения. 2. Все деепричастные обороты (как и отдельные деепричастия) выделяются запятыми вне зависимости от своего места в предложении. На этом шаге заполняем поля Numbeg и Numfin индексной формы для деепричастных оборотов. Для этого сначала осуществляется поиск ближайшего перед деепричастием знака препинания. Если такой знак препинания найден, то в поле Numbeg индексной формы записывается индекс слова, стоящего сразу после этого знака препинания. Если же указанного знака препинания не найдено (т.е. дошли до начала предложения), то в поле Numbeg записывается индекс первого слова предложения (т.е. Numbeg=l). Далее осуществляется поиск ближайшего после деепричастия знака препинания (включая «.»). В поле Numfin индексной формы записывается индекс слова, стоящего перед найденным знаком препинания. 3. На этом шаге осуществляется поиск базового слова для деепричастного оборота с дальнейшим заполнением поля Basis индексной формы. Как было уже сказано выше, в подавляющем большинстве случаев, таким базовым словом в предложении является подлежащее. Однако существует и два других, гораздо более редких, случая: Подлежащего в предложении нет, однако есть действующее лицо, обозначенное дательным падежом. Например: «Готовясь к экзамену, нам пришлось просмотреть большое количество дополнительного материала». Действующее лицо совсем не выражено, предложение - безличное. Например: «Слушая его рассказ, трудно было понять случившееся». В предложениях такого рода как бы подразумевается действующее лицо в дательном падеже (в предложении выше - «нам трудно...», «мне трудно...» и т.д.). Как правило, в таких предложениях обязательно присутствуют слова типа невозможно, трудно, легко, нельзя, можно и т.п.18. В рамках настоящей работы я не буду давать подробный алгоритм определения базового слова для деепричастных оборотов в этих двух случаях. Во втором случае, например, вообще можно ограничиться привязкой деепричастного оборота к виртуальному объекту (типа «некто»), однако реально в таких случаях следует рассматривать предложение с привязкой к конкретному контексту. Ограничусь лишь основным случаем, когда в предложении имеется четко выраженное действующее лицо - подлежащее. Подлежащее всегда стабильно обладает одним морфологическим свойством: оно находится в именительном падеже. Дальнейшие рассуждения строятся на статистических исследованиях расположения основных частей речи (подлежащего, сказуемого) и деепричастного оборота в предложении. Введем некоторые обозначения. Пусть П - подлежащее, С - сказуемое, Д - деепричастный оборот. В 2.5.1 дан перечень возможных взаиморасположений подлежащего, сказуемого и деепричастного оборота в предложении в порядке убывания вероятности такого взаиморасположения.
Некоторые особенности семантического анализа текста
Рассматриваемый в Главе II семантический анализатор предложения позволяет представить предложение в виде единой суперпозиции базисных функций. При этом следует отметить, что базисные функции (см. 1 главы I) сами по себе уже определяют достаточно жесткую связь между словами предложения, а также между словами предложения и базисными словами (базисными классами) русского языка. Например, предложение «Иван сжег письмо» имеет следующую суперпозицию базисных функций: Рerf Caus (Иван, FinFunc(Lab(nucbMO, ОГОНЬ))), что буквально можно трактовать как «Иван сделал так (Cans), чтобы письмо, подвергнутое действию огня (Lab), прекратило существование (FinFunc)». Как видно из этой трактовки, данная суперпозиция базисных функций и базисных слов уже включает в себя дополнительную информацию, как-то: о каузальной зависимости (Иван - причина того, что...), связи слова «письмо» с явно не указанным в предложении базисным словом «огонь», и даже о прекращении существования некоторого объекта (письма). Несколько сложнее обстоит дело с семантическим анализом текста, состоящего из нескольких предложений (или одного сложного предложения).
Здесь помимо обнаружения связей внутри каждого предложения необходимо также определить связи между предложениями, провести некоторую последовательную «цепочку» от первого предложения текста до последнего. С этой точки зрения интересны разработки в области коммуникативной организации смысла (КОС). Вот наиболее важные для КОС понятия и принципы: 1. Фиксирование последовательности развертывания текста ([7, 11, 12]). В тексте последовательно от предложения к предложению описываются объекты в терминологии «старое-новое» по мере возникновения ранее не упоминавшихся объектов (сущностей). Например: «На каникулы Иван (старое) ездил к тетке Марии (новое) в деревню (новое). Тетка (старое) приняла его (старое) очень приветливо». В этом тексте слово «тетка», выступающее в первом предложении как «новое», во втором предложении уже приобретает статус «старое», так как употребляется уже не впервые. Стоит отметить, что любой указатель в предложении (т.е. местоимение) всегда является «старым»31, так как подразумевается, что он указывает на объект, ранее уже встречавшийся в тексте. 2. Членение смысла на тему (то, о чем говорится) и рему (то, что говорится) ([11, 12]). Неправильное определение темы и ремы в предложении может привести к ошибочному семантическому толкованию предложения. Это можно видеть на таком примере: Петр (тема) поехал в Москву (рема) Ф В Москву (тема) поехал Петр (рема) К сожалению, определение тем и рем в предложении дело весьма затруднительное, и автоматически, на мой взгляд, практически нереализуемое. Отмечу, что в большинстве случаев в предложениях наблюдаются соответствия типа «тема-старое» и «рема-новое». Однако это соблюдается не всегда. Например ([11]): «На горизонте (тема-старое) сверкали снежные вершины горного хребта (рема-новое). Небольшой городок (тема-новое) раскинулся у его (рема-старое) подножия». В таких предложениях, впрочем, правильность определения темы и ремы редко кардинально влияет на смысл предложения. 3. Определение связей кореференции (связей между словами и выра жениями, именующими один и тот же объект). Эти связи ([30]) наиболее зна чимы в рамках анализа текста, так как неправильное их распознавание ведет к большому числу ошибок при поиске объектов. Хорошо, если в тексте каждый объект (сущность) имеет собственное имя.
Однако, такая ситуация встречается крайне редко. Гораздо чаще в тексте один и тот же объект может называться разными именами (например: «академик Иванов ИИ.», «академик», «Иванов», «Иван Иванович» и т.п.), или присутствуют слова-указатели - местоимения. В первом случае кореференциальные связи можно установить, если входной текст является полным: тогда новые имена объекта вводятся постепенно, от предложения к предложению. Если же входной текст представляет собой отрывок из полного текста (не является полным), то связи кореференции выявить невозможно. Не менее сложным является и случай с указателями. Не всегда удается легко определить, на какой объект указывает то или другое местоимение, особенно когда приходится анализировать часть текста (например, одно или два предложения), вырванную из общего контекста. К примеру, в тексте «Иван купил сыну щенка. Он был очень подвижный и веселый.» выделенное местоимение «он» можно отнести (при автоматическом анализе) как к слову «щенок», так и к слову «сын» (а, возможно, и к слову «Иван»). Я предлагаю следующий алгоритм анализа слов-указателей( прежде всего речь идет, конечно, о личных и указательных ме-стоимениях ): 1) Предполагается, что рассматриваемое местоимение указывает на объект из предыдущего предложения (в случае, если местоимение находится в придаточном предложении сложноподчиненного предложения или в причастном либо деепричастном обороте, то из главного предложения) - назовем его основным, в свою очередь не являющимся указателем. Т.е. не допускается «ссылка на ссылку». 2) Пусть центральным словом основного предложения является глагол с семантической формулой G(xlf Х2, ..., х„), где х1} ...,хп — его аргументы. Обозначим совокупность всех этих аргументов через X. Введем два подмножества множества X. Очевидно, что X jjx2 =Х. Теперь можно сформулировать правило соответствия указателя именованному объекту: слово-указатель соответствует следующему объекту основного предложения (в порядке убывания приоритета): Объект содержится в множестве X. В случае наличия несколь ких таких объектов хк1, хк2, ..., Хкт приоритет отдается объекту, яв ляющемуся аргументом центрального глагола с наименьшим индек сом.