ОГЛАВЛЕНИЕ
ВВЕДЕНИЕ
ГЛАВА I. ОСНОВНЫЕ ПРИНЦИПЫ ФОРМАЛИЗАЦИИ ПРЕДЛОЖЕНИЙ НА РУССКОМ ЯЗЫКЕ.
§1. Базовые тезисы------------------------------------------------------------------------ 9
§2. Иерархия базисных понятий 12
§3. Семантика предложно-падежных форм......................................................... —.......................................................20
ГЛАВА П. СЕМАНТИКА ПРЕДЛОЖЕНИЯ....----------------------------------------------------- ...------29
§1. Предварительная (морфологическая) обработка предложения...................................29
п.1 Создание морфологической структуры предложения........................................— 29
п.2 Простейший отброс альтернатив. 32
§2. Объектная обработка предложения 35
п.1 Создание и заполнение 0-формы. 35
п.2 Создание и заполнение 1-формы. 38
п.З Создание и заполнение 2-формы. .............. в.....0...........................Ь......9.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. ОР1 лнизлция механизма доступа а ааааааааа»ааааааааааа»ааааааааааааааааааа»ааааа»аааааа»аа«аааааа«ваа»*ааа 117
ЗАКЛЮЧЕНИЕ _____________________________________________________________________________________126
Л И Т Е Р А Т У Р А вавва#.вввавввввв.ввв»авв»*вввв#аааавв%#.ввв»аав#аввавввавввваваавв#ввв#аававававвааавввав«аввввававввавввввваав 131
2
Введение
Мы живем во время бурного развития информационных и компьютерных технологий. Задачи передачи, хранения и использования информации являются сегодня одними из самых актуальных проблем в области кибернетики и информатики. При решении конкретных задач в этой области непременно сталкиваешься с проблемой анализа текстов на естественных языках, будь то английский, русский или какой-нибудь другой язык общения люден между собой. Этт» проблема стала в некотором роде «бичом» разработчиков интеллектуальных систем, таких как системы машинного перевода ([1,2, 3]), системы автоматического поиска текста в массивах «необработанных» данных ([4, 5]), заполнение баз знаний и т. и.
Между тем, эта проблема родилась не сегодня, а в конце пятидесятых годов, когда появление первых компьютеров вызвало «интеллектуальный взрыв» в научном обществе, связанный с постановкой новых задач перед разработчиками систем искусственного интеллекта. В отличие от других задач для ЭВМ, которые имеют некоторое алгоритмическое решение, задачи данного класса характеризуются отсутствием известных схем решения априори. Для их решения используются иерархические построения и программы, имитирующие механизмы мышления человека [6]. Традиционно «узким» местом здесь является автоматическое выделение хотя бы элементарного смысла из текста на естественном языке.
Пионерами в области автоматического распознавания текстов принято считать специалистов Кембриджской школы семантики [7], в частности, М. Мастермана. Английскими учеными уже в начале 60-х годов была построена целая серия семантических языков, наибольший интерес из них представляет поздняя версия. В языке (английском) было выделено 58 элементарных смыслов - сем, или классификаторов, а также были введены рекурсивные правила построения из них формул. Классификаторы были сведены в несколько сот шаблонов, каждый из которых содержит по 3 класси-
3
фикатора. определяющих класс элементарных ситуаций. К таким шаблонам, к примеру, относятся формы «чсловек-место-дслать», или «человек-движе-нне-место». Далее анализ производится в два этапа. На первом этапе текст при помощи специального алгоритма разбивается на фрагменты, которые затем проверяются на содержание троек классификаторов, соответствующим шаблонам, которые далее и заменяются шаблонами. Разбиение предложения на шаблоны при этом может быть и неоднозначным (перекрещивающимся). На втором этапе для каждого варианта разбиения устанавливается, является ли полученная последовательность шаблонов семантически связанной. Два следующих друг за другом шаблона считаются семантически связанными, если какой-нибудь классификатор первого шаблона совпадает с каким-нибудь классификатором (или отрицанием классификатора) второго шаблона. Подробней об этом алгоритме можно узнать в [8].
Можно сказать, что результаты исследований ученых из Кембриджа повлияли на возникновение и все дальнейшее развит ие новой но тем временам науки - компьютерной лингвистики (см. о компьютерной лингвистике в [9]). Несмотря на то, что представителям Кембриджской школы семантики не удалось по чисто техническим причинам довести свой проект до логической точки, основные результаты этих исследований, а также их некоторые методы и приемы легли в основу, или хотя бы эхом отозвались в работах многих известных ученых в этой области, таких как Н. Хомский [10], И.А. Мельчук [11, 12], Ю.Д. Апресян [7].
В нашей стране «бум» компьютерной лингвистики пришелся на сере-дину-консц 70-х годов прошлого века (см., например [13, 14, 15, 16]). После некоторого периода скептицизма (80-е годы) вновь начал возрастать интерес к прикладным задачам теории искусственного интеллекта и компьютерной лингвистики ([17, 18, 19, 20, 21]). Этот рост продолжается и по сей день.
Настоящая работа также имеет непосредственное отношении к проблеме анализа текста на естественном языке с последующим выделением из него смысла. Исследование проходит на базе задачи «Воирос-Огвет», суть
4
кагором состоит в следующем:
Постановка задачи: Конструируется интеллектуальная система анализа текста на русском языке. На вход системы подается текст, состоящий из одного или нескольких предложений. От системы требуется, после соответствующей обработки входного текста, «умение» отвечать на вопросы но введенному тексту (более полную постановку задачи построения ВОС см. n § I Главы III). См. также [22].
Назовем подобного рода систему вопросно-ответной (ВОС). Следует заметить, что история знает построение систем подобного рода, однако большая часть из них сградала одним существенным недостатком. Для того чтобы система могла адекватно ответить на поставленный вопрос, необходимо было задать его в определенной форме, удобной для проведения анализа системой. Поясню это на следующем примере.
Предположим, на вход ВОС подается фраза «Шиш и Коля - одноклассники». Вопрос «Кто учится в одном классе?» одолеет, скорее всего, каждая ВОС, а вот вопрос «Кто учится в одной школе?» в большинстве случаев потребует перефразировать вопрос. Возможно, даже не со второю раза удастся «угадать» нужную форму вопроса.
Это неудобство и послужило поводом к разработке систем автоматического перефразирования текстов, пик создания которых пришелся на середину 70-х годов прошлого века. С некоторыми результатами в этой области можно ознакомиться, к примеру, в работах [7, 11]. В данной работе проблема необходимости перефразировки отсутствует. Подробнее об этом можно прочитать Главе III.
Целями настоящей работы являются:
1. Предложить метод математической формализации текста на русском языке. Текст представляется в виде формульной структуры, которая затем преобразуется в семантический граф.
2. Решение задачи построения вопросно-ответной системы с использованием указанного семантического графа.
5
Для достижения поставленных целей выполнялись следующие задачи:
1. Построение иерархии базисных существительных (§2 Главы I).
2. Семантический анализ предложно-падежных форм с пелыо определения их семантико-грамматического типа (§3 Главы I).
3. Построение семантического анализатора предложения, преобразующего предложение на русском языке в формульную структуру (см. Главу II).
4. Установление корсфсренциальных и анафорических связей между предложениями (см. §2 Главы III).
5. Преобразование полученной формульной структуры в семантическую сеть (см. §3 Главы III).
6. Решение задачи построения вопросно-ответной системы. В рамках згой задачи предложена семантическая операция сопоставления, позволяющая находить релевантные запросу ответы (см. §§4-5 Главы III).
На защиту выносятся:
1. Иерархия базисных существительных русского языка, построенная в виде ориентированного дерева типа РОД-ВИД и определяющая значительную часть структурных и ассоциативных связей в тексте.
2. Семантический анализатор простого распространенного предложения на русском языке. Анализатор включает в себя алгоритмы анализа предложно-падежных форм, однородных членов и отглагольных оборотов. Результатом семантического анализа предложения является семантическая формула (суперпозиция базисных функций и базисных понятий).
3. Концепция построения вопросно-ответной системы с помощью семантической сети.
Скажу несколько слов об актуальности проведенных исследований. Компьютер не может понимать естественные языки, как, впрочем, не понимает он и языки программирования. Но можно и нужно заставить машину уметь выполнять задания, представленные ей в форме естественного языка. Вот здесь как раз и возникает вопрос о формализации этого языка, то сеть переработки данных па естественном, понятном для человека языке на некоторый формаль-
6
ный (созданный программистом) язык, работа с которым была бы более удобной именно для компьютера. Форматизация естественною языка позволила бы решить много насущных проблем, таких как задача автоматического перевода, задача сортировки документов (как в электронном, так и в бумажном виде), задача автоматического поиска информации (в том числе, в электронных сетях) и другие. Подробнее об использовании формализации естественных языков можно прочитать в работах [1, 4, 5, 23, 24]. Мною были проведены исследования в области формализации русского языка и разработан алгоритм формализации произвольного предложения на русском языке. Важную роль в исследованиях сыграли идеи, изложенные в [25, 26, 27, 28]. Методика исследования и результаты подробно описаны в Г лавах I и II.
Однако, только формализация естественного языка не дает нам немедленного решения поставленной выше задачи. Предположим, удалось перевести входной текст и текст вопроса в некоторый формальный вид. Теперь нужно разработать некоторые правила, с помощью которых возможно определить, имеет ли вопрос адекватный ответ в исходном тексте. Кроме того, в случае возникновения нескольких альтернатив ответа желательно иметь и правила, позволяющие нам отбросить максимальное число ненужных альтернатив. Иными словами, необходимо выявить критерии наибольшей связанности семантической формулы вопроса и некоторой, по возможности единственной, части входного текста. Решение этих задач, а также вопросы хранения и обработки формализованного входного текста обсуждаются в Главе III. Некоторые идеи и методы исследования в этой обласні заимствованы в [7, II, 12]; в этом случае будут даны соответствующие указания. Вопросы, связанные с конструированием ВОС, весьма актуальны особенно сейчас, в век бурного развития информатики, информационных и сетевых технологий. Пользователю электронных сетей не нужно будег часами проглядывать массивы информации, а можно будет лишь с помощью 2-3 вопросов выяснить, имеется ли в текущей базе данных необходимая ему информация. Также изменится и подход к проблеме автоматического поиска, сортировки информации, появится возмож-
7
ность создавать системы, которые смогут самостоятельно заполнять базы знаний постоянно поступающей информацией па естественных языках.
Хочу также отметить, что целью проделанной работы было не 100-про-центное распознавание смысла в тексте на русском языке (на мой взгляд, ото практически невозможно), а достижение «планки» распознаваемости уровня 70-80% предложений текста.
8
Глава I. Основные принципы формализации предложений на русском языке. §1. Базовые тезисы.
В основе формализации естесгвенных языков, в том числе и русского, лежат тезисы, сформулированные в [25]. Сделаю краткое напоминание о тех из них, которые нам пригодятся в дальнейших рассуждениях:
Тезис I Язык представляет собой алгебраическую систему. £*-{//,/*■■■/> М}, где / - базисные функции на языке, а Л/ - структура языка, представляющая собой набор базисных понятий т/,...тг и их иерархию (см. §2).
Тезис 2 Каждое пре;цюженис языка можно представить в виде суперпозиций базисных функции /ь через которые выражается и каждое слово языка, за исключение базисных понятий т) с Л/.
Тезис 3 Каждая часть речи играег вполне определенную роль в организации синтаксической структуры предложения.
Существительные, являясь аргументами функций, образуют структуру данных языка; прилагательные - простейшие функции на существительных; глаголы - хорошо развитые функции в основном на существительных; наречия - функции на глаголах; простые предлоги - функции на существительных; сложные предлоги и союзы функции, аргументами которых являются суперпозиции функций.
Тезис 4 Грамматика неразрывно связана с семантикой языка и представляет собой семантический словарь.
Каждое слово описывается в виде семантической формулы, состоящей из базисных функций.
Тезис 5 Усвоение языка компьютером есть построение и пополнение семантического словаря.
Машина, как и человек, может использовать некоторое слово-функцию только тогда, когда знает, как присоединять к нему аргументы.
9
Тезис 6 Не существует языка, который невозможно точно и строго формализовать.
На эти тезисы опирается часть данной работы, касающаяся вопросов представления формальной структуры предложения. Более полно можно ознакомиться с этими и друз ими тезисами, касающимися формализации текстов на есгественных языках, в [25,26].
Итак, каждое слова в языке представляется в виде суперпозиции Р базисных функцийпричем аргументами Р являются только базисные понятия. Затем выбирается центральное слово предложения. Под центральным словом предложения будем понимать слово (оно чаше всего единственное), на котором держится вся синтаксическая структура предложения. Как правило, таким словом является глагол, но не обязательно. Например, в предложении «Ему благодарность от командования» центральным является слово «благодарность», а в предложении «Иван в деревне» центром предложения будет и вовсе пустое слово (глагол «быть»). Далее каждое предложение также представляется в виде суперпозиции О тех же базисных функций. 13 зависимости от предложения, это можно сделать двумя способами. Если центральное слово не пустое и не является служебной частью речи, то «склейка» семантической формулы производится с помощью замены аргументов центрального слова семантическими формулами других слов, которые в свою очередь также присоединяют к себе другие аріументьі (см. об этом в §6 и §9 Г лавы II). В другом же случае, в зависимости от типа центрального слова, создастся специальная семантическая формула, на основе которой и происходит «склейка» по принципу, описанному для первого случая.
Рассмотрим все вышесказанное на конкретном примере. Пусть нам нужно формализовать следующее предложение:
Мама купила себе новое платье.
Для каждого слова из семантического словаря имеем следующую формулу (формулы приведены в сокращении):
10
Слово Исходная форма Формула
ма.иа Мама 1413511 (род \ дат)
купила Купить * PerfOperOI (им. покупка(вин У род, у род \ где, дат \ для. за вин \ на вин))
себе Себя 5
новое Новый 203021
платье Платье 11363(род)
Таблица 1
Здесь номера типа 1413511, 5 и др. обозначают номер в иерархии базисных понятии (см. §2); Perf обозначает функцию, указывающую на совершенность действия; OperOl - наименование базисной функции. В скобках указаны возможные аргументы. Например, запись «род\дат» для описания слова «мама» обозначает, что данное слово может присоединять слово (существительное, количественное числительное, местоимение и т.п.) в родительном или дательном падеже (то есть, возможны варианты «мама кого?» или «кому мама?»). Видно, что слово «купить» может присоединять не мснсс пяти аргументов.
Теперь выбирается центральное слово предложения. Для этого предложения, очевидно, им будет слово «купила». Далее уже происходит склейка на основе семантической формулы для глагола «купить». Вместо первого аргумента «им» подставляется слово «мама» («кто купил?»); на место второго аргумента «вии\род» подставляется слово «платье» («что мама купила?»), которое, в свою очередь присоединяет к себе слово «новое» в виде определения; наконец, вместо четвертою аргумента «дат\для» подставляем снова слово «мама» («кому мама купила?» - «себе», т.е. «маме»). Для третьего и пятого аргумента в семантической формуле «купить», а также для аріументов слов «мама» и «платье» не имеегся соответствующих данных, поэтому вместо них подставляется пустое слово, которое будем обозначать символами о.
11
- Київ+380960830922