Загрузил Андрей Арчаков

KompLigvinistika

Реклама
Содержание
Введение .............................................................................................. 11
Часть I. Компоненты .............................................................. 14
Глава 1. Компьютерная морфология .......................................... 14
1. Как найти слова ................................................................. 14
2. Каким может быть анализ слов ........................................ 16
3. Лексическая неоднозначность ......................................... 18
4. Анализ морфологии на основе правил ............................ 20
4.1. Что хранить в словарях? .....................................................20
4.2. Морфологические модули АОТ .........................................21
4.3. Морфологический анализатор Pymorphy2
и словарь проекта OpenCorpora .........................................24
4.4. Анализатор Mystem.............................................................26
5. Статистические методы анализа слов ............................. 27
5.1. Статистическая частеречная разметка...............................27
5.2. Триграммная скрытая Марковская модель .......................29
5.3. Частеречная разметка незнакомых слов ............................31
Литература .............................................................................. 32
Электронные ресурсы ............................................................ 33
Глава 2. Компьютерный синтаксис ............................................. 35
1. Разные подходы к анализу синтаксических
структур.............................................................................. 35
1.1.
1.2.
1.3.
1.4.
Что такое парсинг................................................................35
Грамматики зависимостей ..................................................36
Грамматики непосредственных составляющих................40
Комбинированные теории анализа предложения .............43
2. Неоднозначность и проблема комбинаторного
взрыва ................................................................................. 44
4
Содержание
3. Статистический парсинг................................................... 47
4. Современные синтаксические анализаторы: семь
глаз и типы в цехе.............................................................. 48
4.1.
4.2.
4.3.
4.4.
4.5.
Лингвистический процессор ЭТАП ..................................48
DictaScope и АОТ ................................................................50
Stanford NLP, RASP, OpenNLP ...........................................52
Link Grammar Parser ............................................................53
NLTK ....................................................................................56
5. Дальнейшие задачи ........................................................... 57
Литература .............................................................................. 58
Электронные ресурсы ............................................................ 59
Глава 3. Компьютерное представление значений ..................... 60
1. О семантическом модуле .................................................. 60
2. Модели представления знаний в компьютерной
семантике ........................................................................... 61
2.1.
2.2.
2.3.
2.4.
2.5.
Виды семантических представлений ................................61
Сетевые модели ...................................................................61
Концептуальные графы ......................................................64
Фреймы и сценарии ............................................................65
Современные разновидности семантических
представлений .....................................................................68
3. Формальные онтологии .................................................... 69
3.1.
3.2.
3.3.
3.4.
3.5.
3.6.
3.7.
3.8.
Структура формальных онтологий ....................................69
Классификация формальных онтологий ...........................70
Особенности создания формальных онтологий ...............71
Языки представления и редакторы формальных
онтологий .............................................................................72
Методы автоматического построения формальных
онтологий .............................................................................74
Современные онтологические ресурсы. ...........................75
Применение формальных онтологий ................................76
Стандартизация и оценка качества формальных
онтологий .............................................................................78
Содержание
5
4. Компьютерные тезаурусы ................................................. 79
4.1.
4.2.
4.3.
4.4.
4.5.
Какие бывают тезаурусы ....................................................79
Компьютерные тезаурусы типа WordNet...........................82
Компьютерные тезаурусы для русского языка..................84
Надстройки к компьютерным тезаурусам .........................87
Прикладное использование компьютерных
тезаурусов ............................................................................89
5. Настоящее и будущее компьютерной семантики ........... 90
Литература .............................................................................. 90
Электронные ресурсы ............................................................ 93
Глава 4. Распознавание и синтез речи ........................................ 96
1. Навстречу эпохе говорящих машин ................................ 96
2. Синтез речи ........................................................................ 97
2.1. Методы синтеза ...................................................................99
2.2. Устройство TTS-синтезатора речи ...................................103
2.3. Модуль лингвистической обработки текста ...................103
3. Распознавание речи ......................................................... 107
3.1. Вариативность речи — главное препятствие для
разработчиков систем распознавания речи .....................109
3.2. Основные типы современных систем
распознавания речи ........................................................... 112
3.3. Лингвистический и статистический подходы к
распознаванию речи .......................................................... 114
3.4. Скрытые Марковские модели .......................................... 116
3.5. Как работает статистическая система
распознавания речи? ......................................................... 117
4. Новые горизонты............................................................. 119
Литература ............................................................................ 120
Электронные ресурсы .......................................................... 122
Глава 5. Машинное обучение в лингвистике .......................... 123
1. Введение: Формализация задач машинного
обучения ........................................................................... 123
6
Содержание
2. Методы машинного обучения ........................................ 126
2.1.
2.2.
2.3.
2.4.
2.5.
2.6.
Метрические методы классификации .............................128
Статистические методы классификации .........................129
Линейные методы классификации ..................................131
Регрессионные методы .....................................................132
Искусственные нейронные сети ......................................133
Кластеризация ...................................................................135
3. Заключение ...................................................................... 137
Литература ............................................................................ 137
Электронные ресурсы .......................................................... 138
Глава 6. Корпусная лингвистика ............................................... 140
1. Корпусы вчера и сегодня ................................................ 140
2. Основные свойства корпуса ........................................... 141
2.1.
2.2.
2.3.
2.4.
Электронный .....................................................................141
Репрезентативный .............................................................141
Размеченный ......................................................................142
Прагматически ориентированный ...................................143
3. Какие бывают корпусы ................................................... 143
3.1. Параллельные корпусы .....................................................144
3.2. Корпусы устной речи ........................................................144
4. Разметка корпусов ........................................................... 145
4.1. Средства разметки .............................................................145
4.2. Лингвистическая разметка ...............................................146
5. Интернет как корпус ....................................................... 148
6. Сервис корпусного менеджера ....................................... 150
7. Как сделать корпус самому ............................................ 152
8. Корпусы как инструмент будущего ............................... 153
Литература ............................................................................ 154
Электронные ресурсы .......................................................... 156
Содержание
7
Часть II. Направления ......................................................... 158
Глава 7. Машинный перевод ...................................................... 158
1. Три подхода к машинному переводу ............................. 158
2. Перевод на основе правил .............................................. 160
2.1. Три способа перевода с помощью правил ......................160
2.2. Трансферный подход ........................................................161
2.3. Пример словарей и грамматик компании PROMT .........162
3. Статистический машинный перевод ............................. 164
3.1.
3.2.
3.3.
3.4.
3.5.
Главная формула перевода ...............................................164
Модель языка и цепи Маркова .........................................165
Оценка максимального правдоподобия ...........................169
Методы сглаживания ........................................................170
Модель перевода ...............................................................172
4. Гибридный перевод ......................................................... 184
5. Методы оценки качества перевода ................................ 185
6. Некоторые современные системы машинного
перевода ........................................................................... 186
Литература ............................................................................ 190
Электронные ресурсы .......................................................... 190
Глава 8. Информационный поиск ............................................. 192
1. Где ищем?......................................................................... 192
2. Что ищем? ........................................................................ 193
3. Как ищем? ........................................................................ 194
3.1. Индекс ................................................................................194
3.2. В идеальном мире .............................................................196
3.3. Тем временем в реальности .............................................196
4. Что такое хорошо?........................................................... 198
4.1.
4.2.
4.3.
4.4.
Релевантность, полнота, точность ...................................198
Фильтрация и ранжирование ...........................................199
Факторы ранжирования ....................................................200
Оценки релевантности ......................................................201
8
Содержание
4.5. Не все слова одинаково полезны .....................................201
5. А где же лингвистика? .................................................... 204
5.1.
5.2.
5.3.
5.4.
Стандартные запчасти ......................................................205
Расширения ........................................................................206
Расстояния .........................................................................208
Еще немного поисковой лингвистики .............................209
Литература ............................................................................ 210
Электронные ресурсы .......................................................... 212
Глава 9 Извлечение информации ............................................. 213
1. Какую информацию извлекаем? .................................... 213
2. Распознавание сущностей .............................................. 216
2.1.
2.2.
2.3.
2.4.
2.5.
2.6.
2.7.
2.8.
Какие сущности извлекаем ..............................................216
Зависимость категории от контекста ...............................217
Неоднозначность идентификации ...................................218
Концептуальные сложности .............................................218
Разрешение анафоры и кореферентности .......................219
Установление референта...................................................220
Автоматические подходы .................................................220
Использование экстратекстуальных сигналов ................222
3. Извлечение отношений ................................................... 224
3.1. Какие отношения извлекаем ............................................224
3.2. Обучение моделей на размеченных текстах ...................225
3.3. Полуавтоматическое создание размеченного
корпуса ...............................................................................226
3.4. Временное измерение .......................................................228
4. Извлечение событий ....................................................... 228
5. Для тех, кто хочет попробовать сам .............................. 232
Литература ............................................................................ 233
Электронные ресурсы .......................................................... 234
Глава 10. Диалоги и чат-боты....................................................... 235
1. Компьютер притворяется человеком ............................. 235
Содержание
9
2. Особенности диалога на естественном языке .............. 236
3. Архитектура диалоговых систем ................................... 237
3.1. Модуль понимания естественного языка ........................238
3.2. Диалоговый менеджер ......................................................238
3.3. Модуль генерации естественного языка .........................239
4. Как работают чат-боты ................................................... 240
4.1. Имитация беседы ..............................................................240
4.2. Язык AIML и другие подходы ..........................................241
5. Обучение диалоговых систем на реальных
диалогах ........................................................................... 243
6. Углубление диалога ......................................................... 244
Литература ............................................................................ 245
Электронные ресурсы .......................................................... 246
Глава 11. Анализ тональности ..................................................... 247
1. Компьютер отслеживает чувства ................................... 247
2. С чего начинается оценка? ............................................. 248
3. Как измерить тональность текста .................................. 250
3.1. Подход с использованием правил и словарей .................250
3.2. Подход с использованием машинного обучения ............255
4. Как это выглядит на практике ........................................ 256
5. Оценка качества работы алгоритмов ............................. 257
Литература ............................................................................ 258
Электронные ресурсы .......................................................... 260
Глава 12. Компьютерная текстология ........................................ 261
1. Что такое текстология ..................................................... 261
2. Этапы текстологического исследования
рукописной традиции...................................................... 262
3. Компьютер в работе текстолога ..................................... 267
3.1. Автоматическое сравнение рукописей ............................267
3.2. Компьютерная классификация рукописей ......................268
10
Содержание
Литература ............................................................................ 274
Глава 13. Квантитативная лингвистика: что можно
сосчитать в языке и речи? ........................................... 275
1. Буквы и звуки: как определить, на каком языке
написан текст? — Дешифровка ..................................... 275
2. Морфемы: как оценить сложность языка? —
Типология ........................................................................ 277
3. Части речи: можно ли определить, о чем текст? —
Стилеметрия .................................................................... 279
4. Сто слов: как определить возраст языков? —
Глоттохронология ............................................................ 281
5. Слова, слова, слова: сколько слов мы знаем и
сколько нам нужно знать? — Частотные словари ........ 284
6. Порядок, строй, парадигма: насколько стройна
грамматика? — Квантитативная морфология .............. 291
Литература ............................................................................ 293
Электронные ресурсы .......................................................... 294
Глава 14. Речевое воздействие и манипулирование ................. 296
1. Что такое речевое воздействие? ..................................... 296
2. Кто и зачем изучает речевое воздействие? ................... 298
3. Разновидности речевого воздействия............................ 299
4. Языковое манипулирование: приемы и ресурсы.......... 303
Литература ............................................................................ 308
Указатель терминов ........................................................................ 310
Введение
Прикладная лингвистика — наука о том, как использовать
знания о естественном человеческом языке для решения практических задач. Традиционные и знакомые всем области этого раздела
лингвистики: перевод с одного языка на другой, обучение родному
и иностранному языкам, разработка письменности и составление
словарей. Плодами труда лингвистов-прикладников являются учебники, грамматики и словари.
Однако в последние десятилетия в связи с массовым использованием компьютеров, смартфонов и Интернета появилась новые
области прикладной лингвистики. Мы задаем вопросы поисковым
системам, общаемся в социальных сетях и пользуемся автоматическими переводчиками и словарями. Современные прикладные лингвисты создают компьютерные программы, которые не только помогают людям общаться с компьютером, но и позволяют сделать
такое общение более эффективным, то есть более результативным и
менее заметным для пользователя.
Нам не надо знать специальные поисковые языки, чтобы искать
информацию в интернете или электронном библиотечном каталоге.
Даже не обязательно писать свои вопросы и команды компьютеру
— можно просто произнести их четко и громко, и он их поймет.
Нет необходимости учить иностранные языки, чтобы читать иностранные новости в сети — браузер сам переводит с любого языка.
Современные технологии в области прикладной лингвистики
используются не только в компьютерах и смартфонах. В социальных сетях, в сфере рекламы, в области языковой политики и при
проведении лингвистической экспертизы применяются практические знания о нашем языке и о том, как мы его используем в тех
или иных ситуациях.
В нашей книге мы раскрываем «кухню» современной прикладной лингвистики. Прежде всего, речь пойдет об автоматической
обработке письменных текстов на естественном языке при помощи компьютеров (по-английски эта область называется Natural
Language Processing, или NLP). Этим занимается компьютерная
лингвистика и ее разделы компьютерная морфология, синтаксис
12
Введение
и семантика. Но мы коснемся также проблем преобразования звукового языка в письменный язык и в обратную сторону, рассматривая область речевых технологий. Кроме того, мы рассмотрим методы машинного обучения и корпусной лингвистики, которые
являются важными компонентами многих современных систем
анализа и обработки языковых данных. Обо всем этом первая часть
книги «Компоненты».
Во второй части книги «Направления» мы описываем ряд конкретных областей прикладной лингвистики. Некоторые из них хорошо известны и широко распространены, например, машинный
(или автоматизированный) перевод и информационный поиск.
Другие находятся «за кадром» и стали использоваться недавно в
Интернете, социальных сетях, чатах, форумах, блогах: извлечение
информации, автоматическое распознавание эмоциональной
окраски текста, диалоги и чат-боты. Компьютерная текстология и квантитативная лингвистика малоизвестны за пределами
лингвистики — они изучают свойства человеческих языков и текстов на этих языках компьютерными и математическими методами,
тем не менее, их результаты могут показаться весьма интересными
всем, кто интересуется языками и лингвистикой. Речевое воздействие — традиционная область прикладного языкознания, которая
восходит еще к античной риторике, но сейчас ее наработки повсеместно используются в средствах массовой информации и рекламе.
Мы надеемся, что прочитав эту книгу, читатель получит достаточно полное представление о современных аспектах прикладной
лингвистики, а также узнает что-то новое о тех лингвистических
технологиях, которые его окружают в повседневной жизни и помогают в удовлетворении его информационных и коммуникационных
потребностей, связанных с языком.
Читатель может быть уверен, что найдет в книге изложение основных методов и подходов современной прикладной лингвистики
из первых рук — от специалистов, которые работают в этой научной области. При чтении большинства глав не требуется предварительных знаний по лингвистике или математике, однако, в некоторых случаях встречаются довольно сложные рассуждения и формулы, и читателю надо быть готовым поработать головой. Разъяснение трудных мест и дальнейшее образование тем не менее можно
Введение
13
получить самостоятельно с помощью литературы и ссылок на электронные ресурсы, которые даны в каждой главе этой книги.
Все авторы этой книги закончили отделение математической
лингвистики филологического факультета Санкт-Петербургского
университета. Уже более 40 лет этой кафедрой заведует А. С. Герд,
замечательный человек и ученый, который во многом определил
лицо современной прикладной лингвистики в России. Он смог отстоять кафедру во время «кризиса структурализма» в середине
1970-х, благодаря нему кафедра пережила тяжелые «перестроечные» 1990-е годы и устояла во время «оптимизации» начала
XXI века.
В 2016 году Александру Сергеевичу Герду исполняется 80 лет.
Мы все, редакторы этой книги, а также авторы, сотрудники и выпускники кафедры математической лингвистики СПбГУ, от всей души
поздравляем Александра Сергеевича с днем рождения и приносим
ему эту книгу как наш скромный подарок.
Редакторы И. С. Николаев, О. В. Митренина, Т. М. Ландо
Часть I
Компоненты
Глава 1
Компьютерная морфология
Авторы: Виктор Владиславович Бочаров, выпускник 2000 года,
участник проекта OpenCorpora.org;
Ольга Владимировна Митренина, выпускница 1993 года, доцент
кафедры математической лингвистики СПбГУ
1. Как найти слова
Морфология — это раздел лингвистики, который изучает структуру
слов и их морфологические характеристики. Классическая морфология
проанализирует слово собака примерно так: это существительное женского рода, оно состоит из корня собак и окончания а, окончание показывает,
что слово употреблено в единственном числе и в именительном падеже.
Компьютерная морфология анализирует и синтезирует слова программными средствами. В наиболее привычной формулировке под морфологическим анализом подразумевается определение леммы (базовой,
канонической формы слова) и его грамматических характеристик. В
области автоматической обработки данных также используется термин
«нормализация», обозначающий постановку слова или словосочетания в
каноническую форму (грамматические характеристики исходной формы
при этом не выдаются). Обратная задача, т. е. постановка леммы в нужную
грамматическую форму, называется порождением словоформы.
Морфологическому анализу предшествует подготовительный этап:
текст нужно разбить на предложения, а в каждом предложении выделить
слова, знаки препинания и другие элементы текста — смайлики, числа,
формулы, таблицы и пр. Этот этап называется токенизацией
(tokenization), а выделенные в результате единицы (слова, числа, знаки
препинания и пр.) называются токенами (tokens).
Глава 1. Компьютерная морфология
15
Задачи компьютерной морфологии, как и большинство задач прикладной лингвистики, решаются тремя типами подходов [Hajič 2004; Hajič
et al. 2001; Коваль 2005; Леонтьева 2006]:
• подходы на основе правил, составленных экспертами (rule-based
methods);
• статистические методы (statistical methods), связанные в основном с
машинным обучением (machine learning);
• гибридные подходы, совмещающие статистику и правила (hybrid
methods).
Токенизацию можно проводить с помощью любого из этих трех подходов.
Правила для выделения предложений на первый взгляд кажутся очевидными: предложения заканчиваются точкой, многоточием, вопросительным или восклицательным знаком. Можно рассматривать эти знаки
как границы предложений. Но точкой могут заканчиваться также сокращения, например, кв., гр., и пр. и пр.i Тогда можно добавить правило о том,
что конец предложения отмечается точкой и следующей за ней прописной
буквой. Под это правило ошибочно попадут инициалы, например,
Дж. Д. Сэлинджер, и при этом не попадут предложения из социальных
сетей, где прописные буквы используются не всегда. Однако, немного подумав, можно составить достаточно эффективный набор правил для выделения границ предложений.
Подходы, использующие статистические данные и методы машинного обучения, подробно описаны в пятой главе нашей книги. Они предполагают, что на вход компьютеру можно дать представительный корпус
примеров с отмеченными границами предложений, и он по аналогии научится находить границы новых предложений, которых не было в этом
корпусе.
Гибридный подход совмещает статистику и правила.
Слова (точнее, словоформы — слова в определенной грамматической форме) в русском языке выделять достаточно просто — у нас они
разделяются пробелами, хотя и тут иногда возникают сложности. Гораздо
сложнее дело обстоит в японском или в китайском языке — там пробелы
используются далеко не всегда.
К счастью, большинство стандартных пакетов морфологического
анализа включают в себя токенизацию, поэтому, скорее всего, вам не придется программировать эту процедуру с нуля.
16
Часть I. Компоненты
2. Каким может быть анализ слов
Все выделенные в процессе токенизации словоформы надо проанализировать. Это значит, для каждой словоформы необходимо определить, (1)
какие у нее грамматические признаки, (2) к какой части речи она относится и (3) в некоторых случаях (например, при машинном переводе, использующем словарь) надо понять, какой единице словаря соответствует данная словоформа.
Например, для первого слова Решал в предложении Решал всё тот
же я мучительный вопрос необходимо (1) понять, что это глагол,
(2) определить значения прошедшего времени, мужского рода и единственного числа, а затем, возможно, (3) сопоставить его с нужным разделом
компьютерного словаря.
Поскольку память у современных компьютеров практически не ограничена, можно попытаться заложить в нее все словоформы и для каждой
указать ее грамматические значения и другую необходимую информацию.
Такой подход известен как морфологический анализ со словарем словоформ. В этом словаре будут целиком храниться, например, слова решал,
решает, решала, решаем и др. Для каждого из них будет указано соответствующее ему время, число и род.
Такой словарь получится довольно большим, и значительная часть
сведений в нем будет многократно повторяться. Он может применяться в
тех языках, где слова мало изменяются грамматически. В них грамматическая информация передается не через изменение слов, а с помощью различных синтаксических средств: вспомогательных глаголов, предлогов,
порядка слов и пр. Например, русский творительный падеж в слове молотком в английском языке передается с помощью предлога: with a
hammer. Поэтому при обработке подобных языков основная грамматическая информация извлекается на следующем этапе — на уровне анализа
предложения, которому посвящена следующая глава.
Главный недостаток словаря словоформ — в него невозможно включить абсолютно все слова живого языка. Ведь новые слова появляются
очень часто, и человеческий мозг умеет их обрабатывать без словаря словоформ.
Глокая куздра штеко будланула бокра и курдячит бокрёнка — эта
знаменитая фраза Л. В. Щербы показывает, что роль слова и его форму
можно понять даже тогда, когда неизвестно его значение. Очевидно, что
действия здесь осуществлялись куздрой, которая была глокая, и что действиям подверглись бокр и бокренок, эти действия назывались будлануть и
курдячить, первое действие уже завершилось, а второе продолжается. Мы
можем понять это благодаря грамматике: формы слов и порядок их следо-
Глава 1. Компьютерная морфология
17
вания подсказывают, где в предложении глагол, а где существительные, и
в каких грамматических формах они употреблены.
Технологии, позволяющие автоматически анализировать незнакомые
слова, тоже существуют. Для их обработки применяется предиктивный
(предсказательный) морфологический анализ, задача которого состоит
в том, чтобы «угадать» грамматические характеристики слова и его основу, глядя на те его части, которые могли бы быть окончанием, суффиксами
или приставками. Здесь годятся не только правила, но и машинное обучение: компьютер обучается на имеющемся словаре лемм и словоформ и
сравнивает новое слово, которого нет в словаре, с имеющимися, чтобы
выбрать наиболее подходящий образец. Этот подход может порождать и
курьезы, например слово «кровать» может быть разобрано таким анализатором как глагол, поскольку оно похоже на глагол «ковать».
Но далеко не для всех языков удобен подход на основе традиционного
морфологического представления, состоящего из перечисления склонений
и спряжений. Представим, что нам нужно проанализировать слова немецкого языка для целей информационного поиска. В немецком возможны
слова типа Donaudampfschifffahrtskapitän (капитан рейса, выполняемого
пароходом по Дунаю). Если не делить его, то документ не будет найден по
запросам, содержащим слова Dona (Дунай), Dampfschiff (пароход), Fahrt
(рейс) и Kapitän (капитан), хотя он, вполне возможно, был бы релевантным ответом по этим запросам. Более того, составные части могут свободно
сочетаться
друг
с
другом,
т. е.
возможны
слова
Newaschifffahrtkapitaen (капитан рейса, выполняемого пароходом по Неве)
и Donaudampfschifffahrtsmatros (матрос рейса, выполняемого пароходом
по Дунаю). Аналогичным образом не удастся найти документ, в котором
встретилось слово Anfangsschwierigkeiten (трудности начального периода)
по запросу Schwierigkeit (трудность), если не разделить исходное слово на
два. Таким образом, решая задачи, связанные с информационным поиском
применительно к немецкому языку, словом удобнее считать отдельные
составные части сложного слова.
Еще сложнее дело обстоит в турецком языке. Словоизменение там
осуществляется путём прибавления аффиксов, обозначающих грамматические значения. При этом явного ограничения на количество этих аффиксов не существует, что позволяет составлять очень длинные слова. Вот
пример из английской Википедии:
Muvaffak — успешный
Muvaffakiyet — успех
Muvaffakiyetsiz — неуспешный
Muvaffakiyetsizleş — стать неуспешным
Muvaffakiyetsizleştir — сделать неуспешным кого-либо
Muvaffakiyetsizleştirici — тот, кто делает неуспешным кого-либо
18
Часть I. Компоненты
Muvaffakiyetsizleştiricileş — стать тем, кто делает кого-либо неуспешным
и далее можно продолжать добавлять морфемы справа, пока не получится
слово
Muvaffakiyetsizleştiricileştiriveremeyebileceklerimizdenmişsinizcesine.
Его можно перевести примерно так:
Как будто бы ты оказался среди тех, кого нам непросто будет сделать
теми, кто делает кого-либо неуспешным.
Очевидно, что для целей информационного поиска или автоматического перевода нужно проанализировать структуру таких слов, отделяя
каждую морфему.
Составить словарь всех возможных словоформ турецкого языка так,
как, например, это делается для русского или английского, не представляется возможным. Один из вариантов решения задачи морфологического
анализа для языков такого типа — это объединение словаря морфем и набора правил, задающих их возможные сочетания. Так устроен, например,
свободно доступный морфологический анализатор для турецкого языка
TRmorph.
3. Лексическая неоднозначность
Многие слова допускают неоднозначный анализ — в этом случае говорят о лексической или морфологической неоднозначности. Например,
словоформа стали может быть образована как от существительного
сталь, так и от глагола стать, а словоформа море может быть связанна с
тремя существительными — море (часть Мирового океана), мор (эпидемия) и мора (единица в стихосложении).
Самые распространенные типы лексической неоднозначности — это
омонимия и полисемия. При омонимии совпадают совершенно разные
слова (например, лук может обозначать оружие или растение), а полисемия возникает там, где у одного слова проявляется несколько разных значений. Известный пример полисемии — это слово взять, которое может
обозначать до пятидесяти разных действий: принять в руку, получить в
свое пользование, арестовать, принять на работу и пр. Этот вид неоднозначности важен при машинном переводе, когда нам нужно понять правильное значение слова.
Частичная лексическая омонимия — это совпадение отдельных
форм слов, они называются омоформами. Слово физики может обозначать
группу ученых-физиков или быть родительным падежом слова физика.
Глава 1. Компьютерная морфология
19
Грамматическая омонимия — совпадение форм одного слова. Например, у слова дочь совпадают формы именительного и родительного
падежей: Дочь обедает и Вижу дочь.
Сложные случаи неоднозначности могут быть вызваны конверсией.
Так называется переход слова из одной части речи в другую. В русском
языке наиболее частым примером конверсии является переход из прилагательного в существительное, например, слово слепой.
Сложность для анализа могут представлять также омографы — одинаковые по написанию слова, имеющие разное звучание и значение. Например, это первое слово в сочетании большая часть (большАя или бОльшая?). В устной речи им соответствуют омофоны — одинаковые по звучанию слова, отличающиеся по написанию. Например, сочетание ко злу
(или козлу?) в предложении Можно ли быть равнодушным ко злу. Но омофоны — это проблема распознавания речи, которой посвящена третья глава.
В живом общении люди редко замечают языковую неоднозначность.
Это говорит о том, что в языке есть эффективные способы уменьшения
уровня неоднозначности. Вот некоторые их них:
1) Использование знаний о мире. Например, в предложении Съешь лук
человек не проинтерпретирует слово лук как оружие для стрельбы —
мы не рассматриваем здесь маловероятный случай сказочной истории, в которой чудовищу советуют обезоружить средневекового лучника, проглотив его оружие.
2) Использование контекста. Легко понять, о каком луке идет речь, если
у нас есть сочетание лук со стрелами или картошка с луком.
3) Предпочтение самых частых форм. В предложении Мужик купил порося вряд ли кому-то придет в голову рассматривать слово порося как
деепричастие от глагола поросить, хотя оно вполне может оказаться
деепричастием.
4) Использование интонации — увы, этот метод не подходит для обычных письменных текстов.
Реализовать эти и другие способы борьбы с неоднозначностью — это
одна из важных задач лингвиста-практика. Разрешение морфологической
омонимии рассматривают как отдельную задачу, т. к. для неё необходимы
дополнительные данные, в то время как её результат нужен не всегда. Методы разрешения морфологической неоднозначности разнообразны: они
могут быть основаны на контекстных алгоритмах, на выводимых из текста
правилах или на вероятностных моделях (обучение с учителем и без учителя), или использовать гибридные методы [Brill 1992; Protopopova,
Bocharov 2013; Karlsson 1995; Shmidt 1994]. Во многих случаях (например, для последующего синтаксического анализа) наличие нескольких
20
Часть I. Компоненты
гипотез, одна из которых с большой степенью достоверности (> 99,9 %)
является правильной, предпочтительнее однозначного ответа, ошибочного
даже в 0,1 % случаев. Достижимая в настоящий момент точность при автоматическом снятии морфологической неоднозначности описана в статье [Шаров и др. 2015].
4. Анализ морфологии на основе правил
4.1. Что хранить в словарях?
Для многих языков, например английского или русского, морфологический анализ и синтез удобно проводить с помощью заранее созданных
словарей, в которых тем или иным способом задан список базовых форм
слов и всех соответствующих им словоформ. Например, в словаре должна
храниться лемма (базовая форма) глагола решать с указанием ее основы
реша- и со ссылкой на другую базу, где хранятся все варианты концовок
для этого слова и указанием их грамматических форм:
-л — 3-е лицо, единственное число, мужской род, прошедшее время;
-ла — 3-е лицо, единственное число, женский род, прошедшее время;
-ю — 1-е лицо, единственное число, настоящее время
и т. д.
В школьной грамматике основой считается часть слова без окончания. В большинстве случаев она не меняется при грамматических изменениях самого слова — так ведет себя, например, основа слон в словоформах слон, слону, слонами, слонов. Но в некоторых словах основа может
изменяться. Например, для словоформ день, дню и дне основами будут
ден-, дн- и дн-, такое явление называется чередованием. Поэтому самый
популярный на сегодня подход использует псевдоосновы (или машинные основы). Это неизменяемые начальные части слов. Для слова день
такой неизменяемой частью будет д-. А оставшиеся концы — псевдофлексии — могут заноситься в дополнительные таблицы или храниться
как-то иначе. Каждой псевдофлексии присваивается набор грамматических значений. Так, -ень будет обозначать единственное число и именительный падеж для упоминавшийся псевдоосновы д-.
Формы некоторых слов могут образовываться от разных корней. Например, у слова ходить есть форма шел. Это называется супплетивизмом.
В таких случаях, если не придумать какое-нибудь другое решение, псевдооснова получается нулевая, и все слово превращается в псевдофлексию.
В русском языке супплетивизм и чередования очень распространены, поэтому псевдоосновы часто получаются очень короткими, а псевдофлексии
— слишком сложными.
Глава 1. Компьютерная морфология
21
Если в главном словаре анализатора хранятся леммы — основные
формы слов с указанием основы, то такой подход называют лемматизацией (lemmatization). Ему противопоставляют стемминг (stemming) —
подход без использования словаря основ. В стемминге есть только правила обрабатывания суффиксов и, возможно, небольшие словари исключений. Существует бесплатный инструмент для написания стеммеров —
Snowball. Он разработан для 20 языков, в том числе и для русского, и может быть реализован на многих языках программирования. Но для русского языка стемминг работает гораздо хуже, чем лемматизация.
Современные модули морфологического анализа для распространённых языков используют словарные базы данных объемом не менее 100
тысяч базовых форм слов. Вся русская морфология чаще всего базируются на грамматическом словаре А. А. Зализняка [Зализняк 1977]. Он был
впервые издан в 1977 году и с тех пор неоднократно переиздавался. В
данный момент в сети доступны отсканированные страницы этого словаря
и различные базы данных, построенные на его основе. Бумажный словарь
содержит систематизированное описание 100 тысяч слов с указанием особенностей их словоизменения.
Чем больше компьютерный словарь, тем лучше, однако всегда можно
найти слова, которых в словаре не окажется: это могут быть новые слова,
узкоспециализированные термины, жаргонизмы, слова с опечатками. Для
них необходима система предиктивного анализа.
Далее мы рассмотрим некоторые доступные модули для морфологического анализа русского языка. Они различаются составом и объёмом
словаря, скоростью поиска по нему, набором тегов, обозначающих грамматические признаки, способом обработки несловарных слов и наличием
дополнительных функций (например, ранжированием гипотез или снятием неоднозначности с учётом контекста). Кроме этого, различаются юридические условия их использования (лицензия, указывающая, в частности,
разрешено ли использование в коммерческих целях), доступность исходного кода модуля, возможность пополнения словаря новыми словами, не
привлекая к этому разработчиков. Существуют также разные варианты
технического оформления модуля: отдельная программа, библиотека для
языка С/C++, модуль для языка Python и т. д.
4.2. Морфологические модули АОТ
Рабочая группа АОТ (Автоматическая обработка текста, руководитель
— А. В. Сокирко) выкладывает свои разработки в свободный доступ начиная с 2002 года. Их библиотеки можно использовать бесплатно даже в
коммерческих проектах. Проект включает в себя модули для проведения
графематического, морфологического, синтаксического и семантического
22
Часть I. Компоненты
анализа. Разработчики реализовали снятие морфологической неоднозначности с использованием скрытых марковских моделей и синтаксический
анализатор именных групп [Сокирко, Толдова 2005].
Модуль морфологического анализа АОТ реализован в виде библиотеки на языке C++ и сопровождается программой-редактором словарей
(MorphWiz), позволяющей в удобном интерфейсе просматривать содержимое морфологического словаря, добавлять, удалять и исправлять описание
слов.
Морфология в проекте АОТ включает в себя словари для русского
(174 тысячи лемм), английского (104 тысячи лемм) и немецкого (218 тысяч лемм) языков. За основу русского морфологического словаря был взят
грамматический словарь Зализняка. Все три словаря записаны в одинаковом формате, а поиск по ним осуществляется одним и тем же программным кодом. Демонстрационный интерфейс поиска по морфологическому
словарю развернут на сайте проекта АОТ.
Морфологический модуль (включающий библиотеку LemmatizerLib)
обрабатывает словоформы по отдельности и не учитывает их контекст.
Результатом анализа словоформы является набор морфологических гипотез, каждая из которых включает следующие данные:
• флаг словарности, который показывает, основана ли гипотеза на словарной лемме или сгенерирована предиктивным алгоритмом.
• набор неизменяемых грамматических признаков (граммем), например
одушевленность существительного или вид глагола;
• текстовая строка, представляющая лемму (аношкинские коды, о которых будет сказано чуть ниже);
• часть речи;
• множество наборов изменяемых грамматических признаков (граммем) для данной словоформы, по набору для каждого варианта лемматизации, например число существительного, род прилагательного
и пр.
На рис. 1 показаны наборы граммем всех возможных форм для слова
«МЫЛА» представлены в виде их объединения (рд, ед U им, мн U вн, мн
= вн, рд, им, ед, мн).
Глава 1. Компьютерная морфология
23
Рис. 1
Перечень всех использующихся в проекте АОТ частей речи и граммем представлен на странице проекта. Уникальный двухбуквенный идентификатор, соответствующий некоторой комбинации значений селективных признаков и граммем, называется аношкинским кодом или анкодом.
Например, коду аа соответствует комбинация граммем «С,мр,ед,им», а
коду аб — «С,мр,ед,рд». Список всех возможных анкодов (сочетаний
граммем), использующихся библиотекой LemmatizerLib, содержится в
файлах {r,e,g}gramtab.tab (для русского, английского и немецкого языков).
Модель словоизменения в системе АОТ может порождать маловероятные (или ошибочные) словоформы. Например, возможно порождение
форм сравнительной степени прилагательных и форм на «по-», образованных на основе форм сравнительной степени, в тех случаях, где эти
формы не кажутся естественными: «призывнОй» — «призывнЕе»* —
«попризывнЕе»*, «столОвый» — «столОвее»* — «постолОвее»* и т. д.
Лишние формы не являются проблемой при анализе текста, однако могут
вызвать сложности при постановке слова или словосочетания в указанную
форму.
С технической точки зрения лингвистические анализаторы проекта
АОТ спроектированы так, чтобы их было удобно использовать изнутри
других программ: библиотека на C++ LemmatizerLib, COM-интерфейс
Lemmatizer и .Net интерфейс LemmatizerNet. Для обработки одного тек-
24
Часть I. Компоненты
стового файла существует программа FileLem. Готовые к использованию
модули и программы доступны на сайте проекта по адресу
http://aot.ru/download.php.
На настоящий момент работа над лингвистическими модулями проекта АОТ продолжается, и морфологический словарь пополняется новыми
словами.
4.3. Морфологический анализатор Pymorphy2 и
словарь проекта OpenCorpora
Словарная база проекта АОТ была использована в других разработках, среди которых морфологический анализатор pymorphy на языке
Python и морфологический словарь проекта OpenCorpora. С содержательной точки зрения pymorphy — это реализация алгоритмов морфологического анализа, описанных в документации проекта АОТ, на языке Python с
поправкой на внутреннее представление данных (в АОТ используется конечный автомат, в pymorphy — таблицы пар ключ-значение). Последняя
версия анализатора была выпущена в 2011 году, и с тех пор разработка и
исправление ошибок в pymorphy остановлены.
С 2012 года ведущий разработчик проекта pymorphy Михаил Коробов
начал работу над новым проектом — pymorphy2, в котором заново реализованы хранение словаря и поиск по нему. В качестве словаря в этой системе используется словарная база проекта «Открытый корпус».
Так же как и морфологический анализатор АОТ, pymorphy2 обрабатывает словоформы независимо друг от друга. В качестве результата он
возвращает набор гипотез, каждая из которых является возможной морфологической интерпретацией заданной словоформы. Рассмотрим пример из
документации по pymorphy2:
>>> morph.parse('стали')
[Parse(word='стали', tag=OpencorporaTag('VERB,perf,intr
plur,past,indc'), normal_form='стать', score=0.983766,
methods_stack=((<DictionaryAnalyzer>, 'стали', 884, 4),)),
Parse(word='стали', tag=OpencorporaTag('NOUN,inan,femn
sing,gent'), normal_form='сталь', score=0.003246,
methods_stack=((<DictionaryAnalyzer>, 'стали', 12, 1),)),
Parse(word='стали', tag=OpencorporaTag('NOUN,inan,femn
sing,datv'), normal_form='сталь', score=0.003246,
methods_stack=((<DictionaryAnalyzer>, 'стали', 12, 2),)),
Parse(word='стали', tag=OpencorporaTag('NOUN,inan,femn
sing,loct'), normal_form='сталь', score=0.003246,
methods_stack=((<DictionaryAnalyzer>, 'стали', 12, 5),)),
Глава 1. Компьютерная морфология
25
Parse(word='стали', tag=OpencorporaTag('NOUN,inan,femn
plur,nomn'), normal_form='сталь', score=0.003246,
methods_stack=((<DictionaryAnalyzer>, 'стали', 12, 6),)),
Parse(word='стали', tag=OpencorporaTag('NOUN,inan,femn
plur,accs'), normal_form='сталь', score=0.003246,
methods_stack=((<DictionaryAnalyzer>, 'стали', 12, 9),))]
В этом примере pymorphy2 предложил шесть вариантов анализа словоформы стали. Первый вариант — это форма глагола стать. Остальные
пять вариантов связаны с существительным сталь в единственном (sing) и
множественном (plur) числе в родительном (gent), дательном (datv), предложном (loct), именительном (nomn) и винительном (accs) падежах
В pymorphy2 реализован предиктивный морфологический анализ для
слов, которых не удалось найти в словаре. В следующем примере анализатор обработал слова бутявковедами, правильно определил его базовую
форму бутявковед и понял, что это одушевленное существительное
(NOUN,anim) мужского рода (masc), в форме множественного числа (plur)
и творительного падежа (ablt):
>>> morph.parse('бутявковедами')
[Parse(word='бутявковедами',
tag=OpencorporaTag('NOUN,anim,masc plur,ablt'),
normal_form='бутявковед', score=1.0,
methods_stack=((<FakeDictionary>, 'бутявковедами', 51, 10),
(<KnownSuffixAnalyzer>, 'едами')))]
В pymorphy2 также предусмотрена возможность постановки слов в
начальную форму, произвольную форму по указанным граммемам и согласования существительного с заданным числительным.
Морфологический словарь проекта OpenCorpora, использующийся в
pymorphy2, является побочным результатом работы над аннотированным
Открытым корпусом текстов на русском языке OpenCorpora. В его разметке каждому слову сопоставляется не только набор граммем, описывающих
его форму, но и номер леммы в морфологической базе данных. Морфологический словарь OpenCorpora основан на словаре АОТ и полностью его
включает. Набор граммем для этого словаря был разработан заново, после
чего словарь АОТ был автоматически преобразован в новый формат. Словарь OpenCorpora продолжает вручную пополняться словами, которые
были встречены в текстах корпуса. На момент написания этой книги копия словаря со свежими дополнениями ежедневно публикуется на сайте
проекта в текстовом формате и в формате XML. Проект OpenCorpora не
имеет своего модуля морфологического анализа, pymorphy2 пока является
26
Часть I. Компоненты
единственным инструментом, который использует словарную базу Открытого корпуса.
4.4. Анализатор Mystem
Морфологический анализатор mystem — это внутренняя разработка
компании Яндекс, и его исходный код недоступен. Бинарные сборки программных модулей mystem для Windows, Mac OS и Linux опубликованы
на сайте Яндекса. Первая версия mystem была разработана Ильёй Сегаловичем и Виталием Титовым. На данный момент в свободном доступе находится третья версия, в состав которой включён модуль снятия частеречной омонимии. Неоднозначность между разными формами одного и того
же слова не снимается.
Без снятия омонимии
Со снятием омонимии
./mystem -e UTF-8 -gni
./mystem -e UTF-8 -gnd
эти{этот}
типы{тип}
стали{становиться|сталь}
есть{быть|есть}
в{в}
цехе{цех}
эти{этот}
типы{тип}
стали{становиться}
есть{есть}
в{в}
цехе{цех}
Анализатор mystem использует словарь, который «зашит» внутрь
программы и недоступен для пользователя: его нельзя ни посмотреть, ни
изменить. Если возникает необходимость дополнить словарную базу анализатора специфической для некоторой предметной области лексикой,
пользователи могут подключать свой дополнительный словарь к mystem
при запуске. Подробное описание формата пользовательского словаря и
способов использования mystem есть на сайте Яндекса.
При помощи mystem можно обработать текстовую строку или текстовый файл. Для использования анализатора изнутри других программ существуют несколько модулей, предоставляющих программный интерфейс
к mystem. Среди них pymystem3 для Python и mystem-scala для Java и
Scala. Эти модули разработаны и поддерживаются самостоятельными разработчиками, а их список ведётся на странице Mystem сайта NLPub.
Список доступных морфологических анализаторов для русского языка не так велик, как для английского, однако он не ограничивается перечисленными выше. Существуют также следующие морфоанализаторы для
русского языка:
Глава 1. Компьютерная морфология
27
• TreeTagger — языконезависимый инструмент с закрытым исходным
кодом, он действует на основе машинного обучения (деревья решений), хотя последние его версии помимо статистики начали использовать словарь, так что из чисто статистического анализатора он стал
гибридным.
• Stemka — вероятностный морфологический анализатор для русского
и украинского языков. Доступен в виде исходного кода на языке C++.
• морфологический модуль проекта FreeLing.
• набор правил стемминга для русского языка на языке обработки строк
Snowball.
Компьютерные лингвисты, разрабатывающие морфологические парсеры для русского языка, принимают участие в соревновании по оценке
качества морфоанализаторов и разработке стандартов морфологического
анализа [Ляшевская и др. 2010]. В ходе соревнования проводится тестирование систем, выполняющих обработку всех слов во входном тексте и работающих с контекстными данными. Соревнование проводится по нескольким дорожкам. В зависимости от возможностей решения задач автоматического разрешения морфологической неоднозначности, различаются
два вида морфоанализаторов — проводящие или не проводящие разрешение неоднозначности. Для парсеров, не снимающих неоднозначность, введены дорожки «Лемматизация», «POS», «Морфология», «Редкие слова», а
для разрешающих неоднозначность парсеров — дорожки «Дизамбигуация:
леммы» и «Дизамбигуация: частеречные теги». Соревнование позволило
создать «Золотой стандарт» морфологической разметки русскоязычных
текстов: так, согласно экспертным оценкам, точность ручной разметки эталонного корпуса составляет 94,4 % по леммам, 95,4 % по частеречным тегам, 89,0 % по тегам грамматических категорий и 85,5 % по всей морфологической аннотации.
5. Статистические методы анализа слов
5.1. Статистическая частеречная разметка
Статистический подход к компьютерной морфологии основан на методах машинного обучения, о которых подробно рассказывается в пятой
главе нашей книги. Кроме того, о них можно узнать из тех работ, которые
приводятся в списке литературы в конце данной главы. А здесь мы подробно рассмотрим только один вид статистического анализа слов — автоматическую частеречную разметку (part of speech tagging, POS-tagging).
В результате этой разметки каждому слову в предложении будет простав-
28
Часть I. Компоненты
лена метка или тег (от английского слова tag — бирка) соответствующей
части речи. Например, если на входе компьютер получит предложение
Дождь стучит в стекло, то на выходе он должен выдать последовательность частей речи существительное, глагол, предлог, существительное.
Или, если заменить существительное символом N, глагол символом V, а
предлог символом P, то на выходе получится цепочка NVPN.
Как научить компьютер проводить автоматическую разметку? Казалось бы, надо дать ему словарь, где дождь и стекло будут отмечены как
существительные, а стучит — как глагол. Но слово стекло может оказаться глаголом прошедшего времени, ведь язык неоднозначен. Кроме того, чисто статистические методы обходятся без словарей.
Тут можно вспомнить, что в русском языке после предлога будет идти, скорее всего, существительное, а не глагол. Поэтому при автоматической разметке надо учитывать не только тег каждого слова, но и тот контекст, в котором оказывается этот тег.
Проще всего, если у нас уже есть хороший размеченный корпус —
большой набор текстов, где у каждого слова в предложении проставлен
соответствующий ему тег:
Дождь
стучит
в
стекло
N
V
P
N
С помощью такого корпуса можно обучить компьютер размечать новые предложения.
Для начала на основе корпуса надо составить два множества:
1) Множество словоформ Ψ — набор всех слов этого корпуса в том виде, в каком они находятся в тексте. Ведь для компьютера слова дождь
и дождя — это разные цепочки символов.
2) Множество тэгов Ω — набор всех тэгов, которые использовались в
этом корпусе. Их может быть, например, два десятка, но вряд ли
больше сотни, даже если привычные части речи разбить на несколько
категорий.
Каждое предложение в нашем корпусе можно рассматривать как цепочку x1, x2,…xn. Такая цепочка состоит из n элементов множества Ψ, где n
— длина предложения.
Соответствующие словам этого предложения теги тоже можно рассмотреть как цепочку, последовательность элементов из множества тегов
Ω. Эту цепочку можно представить так: y1, y2,…yn.
Иными словами, можно сказать, что цепочке словоформ x1, x2,…xn из
множества Ψ соответствует цепочка тегов y1, y2,…yn из множества Ω.
Задача статистического анализатора — найти для любой цепочки словоформ из множества Ψ наиболее вероятную последовательность тегов
из множества Ω. Например, если у нас есть предложение Пришел добрый
Глава 1. Компьютерная морфология
29
пёс, то для него теоретически возможны любые последовательности из
трех тегов: NNN, NVV, NPV и все другие комбинации. Но компьютер должен прийти к выводу, что самая вероятная последовательность для данного предложения — это VAN (глагол, прилагательное, существительное).
Как научиться считать и сравнивать такие вероятности? В следующем
разделе мы рассмотрим один способ решения этой проблемы.
5.2. Триграммная скрытая Марковская модель
Автоматическую частеречную разметку можно провести с помощью
триграммной скрытой Марковской модели (Trigram hidden Markov
model — Trigram HMM). Эта модель строится на основе корпуса. Для нее
нам понадобятся упоминавшиеся в предыдущем разделе множества Ψ и Ω,
а также два набора параметров, каждый из которых соответствует некоторой условной вероятности:
•
Параметры s(w|t).
• Параметры q(t|u, v).
3) Параметр s(w|t) — это вероятность того, что тегу t соответствует
слово w. Например, s(пёс|N) — это вероятность того, что тегу N (существительное) соответствует слово пёс. Казалось бы, логичнее использовать
обратный параметр — вероятность появления тега t, если у нас есть слово
w, но интересующий нас параметр именно такой — в качестве условия
выступает тег, и оценивается вероятность соответствия ему того или иного
слова.
С помощью имеющегося корпуса этот параметр легко оценить для
всех словоформ w из множества Ψ и тегов t из множества Ω. Здесь нужно
сделать важное замечание: с помощью корпуса мы не сможем вычислить
вероятности чего-либо. Мы сможем только оценить вероятность, выбрать
ее правдоподобное значение. Для параметра s(w|t) это можно сделать следующим образом:
1. Вначале нужно вычислить с(t) — сколько раз в корпусе встретился
тег t. Например, сколько раз там встретился тег N (допустим, он встретился 10 000 раз).
2. Затем посчитать с(t → w) — сколько раз в корпусе тегу t соответствовала словоформа w. В нашем примере — сколько раз тегу N соответствовала словоформа пёс (допустим, 20 раз).
3. После этого можно посчитать s(w|t) как результат деления с(t → w)
на с(t). Это значение может рассматриваться как вероятность того, что
тегу t будет соответствовать словоформа w:
s(w|t) =
с( →
с( )
)
30
Часть I. Компоненты
В нашем примере s(пёс|N) =
с( → пёс)
с( )
=
=
4) Оставшийся параметр q(t|u, v) — это вероятность появления тэга t
при условии того, что перед ним находятся теги uv. Например, q(N|V, A) —
это вероятность появления тега N при условии того, что перед ним находятся теги VA. Эта вероятность для русского языка довольно велика. Такая
последовательность тегов встречается, например, в сочетании съел невкусный суп или в предложении Произошла странная история.
На основе корпуса этот параметр можно посчитать для всех возможных сочетаний тегов. Самый простой способ вычислить параметр q(t|u, v)
похож на вычисление параметра s(w|t).
1. Первым делом вычисляется с(uvt) — сколько раз в корпусе встречается цепочка из идущих подряд тегов uvt. В нашем примере — сколько
раз встречалась цепочка тегов VAN (допустим, 200 раз).
2. Затем нужно посчитать с(uv) — сколько раз в корпусе встречается
цепочка из идущих подряд тегов uv. В нашем примере — сколько раз
встретились теги VA (допустим, 80 000 раз).
3. После этого q(t|u, v) вычисляется путем деления с(uvt) на с(uv). Это
соответствует вероятности того, что тег t будет идти после цепочки тегов
uv. У нас получится 200/80000 = 1/400.
При вычислении параметра q(t|u, v) необходимо учитывать начала и
концы предложений. Если какой-то тег встретился в самом начале предложения, то у него нет словоформ, которые могли бы выступить в роли u и
v. Ничего страшного. В этом случае u и v можно заменить звездочками.
Тогда параметр q(N|*, *) будет обозначать вероятность того, что тег N (существительное) встречается в абсолютном начале предложения, а параметр q(N|*, А) будет соответствовать вероятности того, что тег N (существительное) идет в предложении вторым после тега А (прилагательное).
Концы предложений тоже необходимо учитывать, поэтому последним
тегом можно считать слово STOP. Оно обозначает, что за ним тегов уже
нет — предложение закончилось. Тогда для нашей системы необходимо
также почитать параметры q(STOP|u, v) — вероятности того, что последовательность тегов u, v — последняя в предложении.
Конечно, полученные значения вероятностей будут приблизительные.
Их можно улучшить с помощью методов сглаживания, о которых будет
рассказано в седьмой главе этой книги.
После того, как на основе корпуса посчитаны значения всех параметров, наша триграммная скрытая Марковская модель готова. С ее помощью
можно оценивать вероятности соответствия предложения и цепочки тегов.
Делать это можно по следующей формуле:
Глава 1. Компьютерная морфология
р(x1, …xn, y1,…yn+1) = ∏
( |
,
)∏
31
( | )
Слева — совместная вероятность последовательности словоформ и
последовательности тегов. Справа — произведение двух множителей.
Первый множитель — это произведение n + 1 параметра, вероятностей
появления каждого тега уi после двух предшествующих ему тегов. Тег yn+1
соответствует слову STOP. Второй множитель — произведение параметров, отвечающих за соответствие тех или иных словоформ различным тегам.
Эта формула появилась не случайно, у нее есть объяснение и вывод,
но мы не будем перегружать эту книгу обилием математических подробностей. Любопытный читатель может прочитать об этой формуле в специализированных учебниках. Кроме того, некоторые дополнительные пояснения приводятся в статистической части седьмой главы данной книги,
посвященной машинному переводу.
Рассмотрим на примере, как работает эта формула. Какова вероятность того, что предложению Пришел добрый пёс соответствует цепочка
тегов VNN (глагол, существительное, существительное). Да, мы сознательно рассмотрим пример с ошибкой: VNN, а не VAN (глагол, прилагательное, существительное).
Рассчитаем эту вероятность по формуле, не забыв поставить последним тегом слово STOP:
р(Пришел, добрый, пёс, V, N, N, STOP) = q(V |*, *) × q(N |*, V) × q(N
|V, N) × q(STOP |N, N) × s(Пришел|V) × s(добрый|N) × s(пёс|N)
Теперь нам остается посчитать эти вероятности для всех других последовательностей тегов (AVN, NVV, AAN и пр.), а затем выбрать наиболее вероятный вариант. Но если у нас 20 тегов, то для предложения из
трех слов это будет 203 = 800 вариантов. А для предложения из 10 слов —
2010 = 10240000000000 вариантов. Слишком много.
Тут на помощь приходит динамическое программирование, а точнее
— алгоритм Витерби (Viterbi algorithm). Он позволяет решать такие задачи коротким путем, не перебирая все возможные варианты. В сети есть
много его описаний, поэтому мы не будем здесь его подробно рассматривать, а перейдем к еще одной лингвистической проблеме.
5.3. Частеречная разметка незнакомых слов
Допустим, в новом предложении упоминается чиновник с фамилией
Неподкупнов. Такой фамилии не было в обучающем корпусе, поэтому параметр s(Неподкупнов|t) не определен ни для какого тега. Как быть?
32
Часть I. Компоненты
Одно из решений может быть таким. Очень редкие слова в обучающем корпусе заменяются псевдословами. Вот примеры возможных замен:
Варианты редких слов
в обучающем корпусе
Сорокин, Черномор, Коваленко
1963, 2018, 1147
13, 55, 63
ДЮШ, ВЦСПС
Псевдослово
для замены
Слово-с-большой-буквы
Четыре-цифры
Две-цифры
Все-прописные
После замены редких слов псевдословами проводится обучение системы — вычисляются описанные выше параметры. Теперь, если нам
встретится в предложении чиновник Неподкупнов, который обучающем
корпусе не попадался, его можно будет заменить на псевдослово (нашем
случае — Слово-с-большой-буквы), и тогда он будет проанализирован как
Сорокин, Черномор и Коваленко.
В заключение отметим, что самый надежный способ научиться компьютерной морфологии — это попытаться самостоятельно создать систему морфологической разметки. В этом вам помогут литература и ссылки
на электронные ресурсы, которые приводятся в конце данной главы.
Литература
Зализняк А. А. Грамматический словарь русского языка. Словоизменение. М., 1977.
Изд. 2-е, испр. и доп. М., 1980. Изд. 3-е. М., 1987. Изд. 4-е, испр. и доп. М.,
2003. Изд. 5-е, испр. М., 2008. http://zaliznyak-dict.narod.ru/index.htm
Коваль С. А. Лингвистические проблемы компьютерной морфологии. СПб., 2005.
Леонтьева Н. Н. Автоматическое понимание текстов. Системы, модели, ресурсы.
М., 2006.
Ляшевская О. Н. и др. Оценка методов автоматического анализа текста: морфологические парсеры русского языка. Компьютерная лингвистика и интеллектуальные технологии: По материалам ежегодной Международной конференции
«Диалог–2010». Вып. 9(16). М., 2010.
Сокирко А. В. Морфологические модули на сайте www.aot.ru // Компьютерная лингвистика и интеллектуальные технологии: Труды международной конференции
«Диалог’2004».
М.,
2004.
http://www.dialog21.ru/Archive/2004/Sokirko.pdf.
Сокирко А. В. Сравнение эффективности двух методик снятия лексической и морфологической неоднозначности для русского языка (скрытая модель Маркова
и синтаксический анализатор именных групп) / А. В. Сокирко, С. Ю. Толдова
// Интернет-математика 2005. Автоматическая обработка веб-данных. М.,
2005. С. 8094. http://www.aot.ru/docs/RusCorporaHMM.htm
Глава 1. Компьютерная морфология
33
Шаров С. А., Беликов В. И., Копылов Н. Ю., Сорокин А. А., Шаврина Т. О. Корпус с
автоматически снятой морфологической неоднозначностью: К методике лингвистических исследований. Компьютерная лингвистика и интеллектуальные
технологии. По материалам ежегодной конференции Диалог. М., 2015.
http://www.dialog-21.ru/digests/dialog2015/materials/pdf/SharoffSAetal.pdf
Brill E. A simple rule-based part-of-speech tagger // Proceedings of the Third Conference on Applied Natural Language Processing (ANLF-92), Trento, Italy, 1992.
Brian Roark, Richard William Sproat. Computational approaches to morphology and
syntax. Oxford University Press, 2007.
Clark Alexander. et al. (Eds.) The Handbook of Computational Linguistics and Natural
Language
Processing.
Wiley-Blackwell,
Malden,
MA,
2010.
http://stp.lingfil.uu.se/~santinim/sais/ClarkEtAl2010_HandbookNLP.pdf
Hajič J. Disambiguation of Rich Inflection (Computational Morphology of Czech). Prague, 2004.
Hajič J., Krbec P., Květoň P., Oliva K., Petkevič V. Serial Combination of Rules and
Statistics: A Case Study in Czech Tagging. ACL, 2001.
Jurafsky Daniel, James H. Martin. Speech and Language Processing. An Introduction to
Natural Language Processing, Computational Linguistics, and Speech Recognition.
Second
Edition.
Upper
Saddle
River,
NJ,
2009.
https://www.cs.colorado.edu/~martin/slp2.html
Karlsson F., et al. (Eds.) Constraint Grammar: A Language-Independent System for
Parsing Unrestricted Text. Mouton De Gruyter, 1995.
Manning Christopher D., Schütze Hinrich. Foundations of Statistical Natural Language
Processing. MIT Press. Cambridge, MA, 1999.
Mitkov Ruslan (Ed.). The Oxford Handbook on Computational Linguistics. Oxford University Press, 2005.
Protopopova E. V., Bocharov V. V. Unsupervised learning of part-of-speech disambiguation rules // Компьютерная лингвистика и интеллектуальные технологии: По
материалам ежегодной Международной конференции «Диалог» (Бекасово,
29 мая — 2 июня 2013 г.). Вып. 12 (19). М., 2013.
Schmid H. Part-of-speech tagging with neural networks //COLING '94 — Proceedings
of the 15th conference on Computational linguistics. V. 1. Stroudsburg (PA): ACL,
1994. Pp. 172–176. http://portal.acm.org/citation.cfm?id=991915
Электронные ресурсы
АОТ http://aot.ru/, репозиторий проекта http://sourceforge.net/projects/seman/
FileLem http://sourceforge.net/p/seman/svn/HEAD/tree/trunk/Source/FileLem/
FreeLing, морф. модуль http://nlp.lsi.upc.edu/freeling/doc/userman/html/node5.html
MULTEXT-East http://nl.ijs.si/ME/, http://corpus.leeds.ac.uk/mocky/.
MyStem, перечень известных программных интерфейсов https://nlpub.ru/Mystem
Mystem-Scala для Java и Scala https://github.com/alexeyev/mystem-scala
OpenCorpora http://opencorpora.org
Pymorphy (репозиторий проекта) https://github.com/kmike/pymorphy
Pymorphy2 https://github.com/kmike/pymorphy2
Pymystem3 для Python (https://github.com/Digsolab/pymystem3)
34
Часть I. Компоненты
Snowball http://snowball.tartarus.org/
Stemka, исходный код на языке C++ http://www.keva.ru/stemka/stemka.html
TreeTagger https://nlpub.ru/TreeTagger
TRmorph https://github.com/coltekin/Trmorph
Викисловарь в скачиваемом виде http://dumps.wikimedia.org/ruwiktionary/latest
Глава 2
Компьютерный синтаксис
Автор: Алексей Владимирович Добров, выпуск 2008 года, ассистент кафедры математической лингвистики СПбГУ
1. Разные подходы к анализу синтаксических
структур
1.1. Что такое парсинг
При решении многих задач, относящихся к машинной обработке текстовых данных на естественном языке, требуется точная и подробная информации о структуре предложений. Необходимость в такой информации
возникает при создании систем машинного перевода, интеллектуального
(семантического) информационного поиска, извлечения фактических данных и мнений, автоматической рубрикации и реферирования текстов —
систем, так или иначе связанных с автоматическим пониманием текстов (АПТ/NLU). Часто в них используются методы, основанные на правилах (rule-based methods) — математические формализации языковой
грамматики и семантики. Вместе с тем, статистические методы (statistical
methods), включая методы машинного обучения (machine learning), также
могут основываться на синтаксической разметке текстовых коллекций.
Парсинг (синтаксический анализ) в широком смысле — это автоматический анализ структуры любых текстовых данных. В более узком понимании термин «парсинг» означает процедуру машинного анализа
структуры текста на естественном языке, в том числе — структуры предложения.
Простейший анализ структуры предложения входит в школьную программу. Например, в предложении Белка нашла большой орех требуется
подчеркнуть подлежащее и сказуемое, определить, к чему относится прилагательное большой, подписать вопросы над стрелками: кто? что? какой? Это лишь один из возможных способов синтаксического анализа. В
некоторых западных школах ученики расставляют в предложении квадратные скобки. Казалось бы, разница не столь велика, но на самом деле за
расстановкой скобок стоит иное понимание устройства предложения.
36
Часть I. Компоненты
Три основных подхода к описанию синтаксиса — это грамматики
зависимостей, грамматики непосредственных составляющих и комбинированные теории, например, теория синтаксических групп.
1.2. Грамматики зависимостей
В отечественной лингвистике и в некоторых западных научных школах принят подход, основанный на грамматике зависимостей (ГЗ), который представляет структуру предложения в виде дерева (графа) зависимостей. Его основоположником принято считать французского лингвиста
Луи Теньера ([Теньер 1988]). С точки зрения ГЗ, строение предложения
подобно строению молекулы: предложение состоит из слов и связей между ними. Вместе с тем, синтаксическую связь нельзя назвать двусторонней; в большинстве случаев синтаксическая связь является подчинительной. Синтаксические связи «устанавливают между словами отношения
зависимости»: из двух слов одно является главным, а другое — зависимым. Например, в словосочетании Большая Советская Энциклопедия
имеется две связи, изображённые на рис. 1. Эти связи образуют отношение зависимости: в обеих связях главной является словоформа Энциклопедия; словоформы Большая и Советская, соответственно, оказываются
зависимыми.
Рис. 1. Дерево зависимостей подобно строению молекулы, но связи обладают
направленностью
Количество и состав возможных зависимых слов определяется способностью главного слова вступать с ними во взаимодействие. Эта способность называется валентностью. Главное слово может само стать зависимым по отношению к какому-либо другому слову, но только к одному (именно поэтому синтаксическая структура оказывается древовидной).
Получается, что любое связное сочетание слов (словосочетание, фраза)
обладает одним центральным (корневым) элементом, т. е. одно и только
одно слово является главным во всей фразе, а все остальные подчинены
ему или другим словам.
Глава 2. Компьютерный синтаксис
37
В словосочетаниях типа умный студент носителям русского языка
свойственно интуитивно считать слово студент главным, а слово умный
— зависимым (так учили в школе — задавать вопрос какой «от существительного к прилагательному», хотя иностранные учащиеся часто удивляются, почему не задать вопрос кто «в обратном направлении»). Дело осложняется еще тем, что в лингвистике не существует формально строгой
процедуры обнаружения синтаксической зависимости. Основные критерии для «человеческого» выявления синтаксических зависимостей описаны Я. Г. Тестельцом в первой главе его книги «Введение в общий синтаксис [Тестелец 2001], однако при компьютерном моделировании правила
выявления зависимостей вынужденно постулируются, причём по-разному
в разных системах.
Как научить компьютер выстраивать структуры зависимостей? Прямой путь — это взять предложение, в котором методами морфологического анализа (описанными в главе 1) для каждой словоформы уже определена возможная часть речи и грамматические признаки. В этом предложении нужно найти основной глагол (если он есть) и понять, сколько зависимых слов должно быть у этого глагола. Затем необходимо найти эти
зависимые слова — здесь помогут их формы. Например, глаголу видеть
требуется дополнение — скорее всего, существительное в винительном
падеже. После этого можно проанализировать оставшиеся слова и найти
для них возможные вершины. Для этого нужно заранее предоставить
компьютеру множество правил, которые будут тесно связаны со словарём.
Существующие алгоритмы для построения деревьев зависимостей
обычно основаны на правилах продукций — условных переходах вида «если
…, то …». Эти правила позволяют реализовать произвольный механизм логического вывода и потому широко применяются при представлении знаний
в экспертных системах. Совокупность правил продукций представляет собой
продукционную модель, которая теоретически «производит» все возможные
корректные выводы о заданном наборе объектов. В применении к синтаксису правила продукций часто формулируются в виде замен одних символьных последовательностей другими (заменяемая строка является условием, а
замена — выполняемым действием). Например, правило продукции может
выглядеть следующим образом: «Vt S4 ⟹ Vt → [Acc] S4», что можно прочитать как: если «Vt» — переходный глагол, а за ним идет «S4» — имя существительное в винительном падеже, то устанавливается подчинительная
связь между ними « → [Acc]». При этом правила обычно нумеруются, что
позволяет исключить работу одних правил, если ещё не сработали другие.
Основная сложность при создании таких моделей состоит в том, что правила в какой-то момент начинают противоречить друг другу. Эта проблема часто решается с помощью дополнительных управляющих структур,
искусственно разрешающих возникающие противоречия.
38
Часть I. Компоненты
Метод фулькрумов [Беляева 1996] основан на поиске «фулькрумов»
— корней синтаксических деревьев или некоторых опорных ключевых
слов, которые далее связываются с соседними словами в несколько «прогонов» в соответствии с правилами продукций. Метод фильтров [Лесерф
1963] предполагает одновременное применение всех правил продукций,
после чего получившаяся структура (ориентированный граф) подвергается
фильтрации.
Анализ на основе грамматики зависимостей вызывает ряд проблем.
Кроме подчинительных связей в языке есть и сочинительные, которые сам
Теньер рассматривает как «особые функции», они не получают трактовки
в виде подчинительных связей, и возникает противоречие: ведь если синтаксические связи устанавливают между словами именно отношение зависимости, то почему некоторые связи оказываются «равнее»?
В компьютерных реализациях ГЗ преобладают подходы, в которых
сочинительная связь раскладывается на подчинительные. Сочинительная
связь всегда обозначается союзом или знаком препинания, который можно искусственно включить в дерево зависимостей, наравне со словами
(Теньер же, напротив, старался исключить из синтаксической структуры
любые служебные слова, и, тем более, знаки препинания). Вместе с тем,
если союз и в словосочетании Вася и Петя является зависимым, то главным получается Вася или Петя, но обе словоформы используются в
единственном числе, что противоречит множественному числу глагольной формы в предложении Вася и Петя играли. Если же главным является
союз, то тогда словосочетание Вася и Петя вообще не обладает свойствами существительного.
Придаточные предложения, пожалуй, представляют собой самое
«слабое» место ГЗ. В русском языке ГЗ хуже всего «справляется» с определительными придаточными предложениями со словом который. В дереве зависимостей предложения Это был человек, достижениями которого гордилась вся страна форма которого оказывается подчинена форме
достижениями, что объясняет родительный падеж, но абсолютно не объясняет мужской род, напрямую зависящий от определяемого существительного человек. Столкнувшись с этой проблемой, Теньер вводит в синтаксическую структуру ещё один тип связи — анафорическую связь. Устанавливая между формами человек и которого анафорическую связь,
Теньер приравнивает в данном случае согласование в категории рода к
совпадению рода личных местоимений (анафоров) и предшествующих
им имён существительных (антецедентов).
Такая трактовка выглядела бы логичной, если бы анафорическая
связь вообще была грамматической (синтаксической), что вызывает некоторые сомнения. Действительно, очевидная анафорическая связь между
словоформами молодёжи и они в грамматически правильном предложе-
Глава 2. Компьютерный синтаксис
39
нии Ленин сказал молодёжи, что они должны учиться была бы невозможной: ведь у молодёжи число — единственное, а у они — множественное. Тем не менее, предложение Ленин сказал молодёжи, что она должна
учиться не выглядит более правильным: для смысла не важно, что собирательное существительное молодёжь имеет единственное число, ведь
оно обозначает совокупность людей, которая вполне может быть обозначена словом они. В то же время в придаточных предложениях с который
такая вариативность недопустима (ср. молодёжь, которая должна учиться и *молодежь, которые должны учиться). Следовательно, связь между
словом который и определяемым существительным является не только
смысловой, но и грамматической, но если это так, то нарушается постулат
ГЗ о том, что каждое слово может быть грамматически зависимым не более чем от одного слова.
Факты, напрямую свидетельствующие о недостаточности ГЗ при работе с естественным языком, были обнаружены А. В. Гладким. Предложение «По графику мы работаем в среду» [Гладкий 1985, с. 119] синтаксически неоднозначно. Первая возможная трактовка состоит в том, что
компонент По графику относится непосредственно к глаголу работаем. В
этом случае одно из возможных значений предложения можно было бы
сформулировать как ‘В среду мы будем работать в соответствии с графиком, а в остальные дни — возможно и не в соответствии’. Вместе с тем, у
предложения есть и вторая возможная трактовка — ‘В соответствии с
графиком, мы должны работать именно в среду’. Эта трактовка может
быть объяснена только тем, что компонент По графику относится ко всему предложению мы работаем в среду в целом. Если не учитывать второе
возможное толкование этого предложения, то не будет правильно разобрано, например, предложение По прогнозам предсказателей завтра будет конец света — будет выстроена смехотворная трактовка ‘Завтра конец света будет в соответствии с прогнозами предсказателей, а в остальные дни — возможно и не в соответствии’.
В рамках ГЗ обе трактовки выглядят совершенно одинаково: словоформа по подчинена словоформе работаем и не может быть подчинена
целому предложению — ведь отношения зависимости выстраиваются между словами. Чтобы учесть обе возможные трактовки в ГЗ, необходимо
предположить неоднозначность самих синтаксических связей и, в частности, связи между глаголом и предлогом. В этом случае, однако, такую неоднозначность придётся предполагать всегда, в том числе — в обычных
предложениях типа Мы едем в Москву. Для таких предложений пришлось
бы выстраивать противоестественные трактовки вроде ‘Едем мы в направлении Москвы, а все остальные перемещения, возможно, осуществляем в другом направлении’.
40
Часть I. Компоненты
Эти примеры показывают, что синтаксические связи выстраиваются
не только между словами, но и между группами слов, что плохо согласуется с ГЗ, зато находит подтверждение в грамматиках непосредственных
составляющих, где связи между словами напрямую не выстраиваются, а
выводятся из структуры.
1.3. Грамматики непосредственных составляющих
Непосредственные составляющие (НС, фразы) — это части предложения или словосочетания, которые входят в него непосредственно, т. е.
не являются компонентами более крупных его частей.
На рисунке 2 приведён пример структуры предложения Мама мыла
раму. У этого предложения имеются две НС: Мама и мыла раму. В свою
очередь, мыла раму имеет НС мыла и раму, т. е. эти НС не входят в предложение непосредственно, а являются компонентами более крупной его
части. Вообще, ни одна словоформа не является НС целого предложения,
но каждая словоформа является НС по отношению к тем или иным его
составляющим. НС-грамматика объясняет явления синтаксиса исключительно в терминах НС, оперируя теми или иными классами НС, такими
как Предложение, Именная Группа, Глагольная Группа, и т. д. Названия
этих классов соответствуют, на самом деле, представлениям о том, что
словоформа той или части речи является главной во всей фразе, например,
в глагольной группе главным является глагол, однако эти названия могут
быть и иными, никак не связанными с частями речи.
Рис. 2. Структура непосредственных составляющих
В отличие от стандартной грамматики зависимостей, НС-грамматика
не только отражает строение предложения, но и объясняет способ его порождения (деривацию). В грамматике задаётся ряд правил «переписывания», позволяющих преобразовывать абстрактные обозначения (Именная
группа, Глагол) в более мелкие линейные цепочки, которые также подвер-
Глава 2. Компьютерный синтаксис
41
гаются преобразованиям до тех пор, пока они не будут состоять из «конечных» (терминальных) обозначений — конкретных словоформ или
морфем. Поскольку деривация высказывания отражает способ его порождения, процедуру синтаксического разбора можно свести к поиску всех
возможных дериваций анализируемого высказывания. К числу таких алгоритмов относятся нисходящие (Top-Down), восходящие (Botom-Up) и
комбинированные (Left-Corner) алгоритмы.
Нисходящие алгоритмы строят синтаксическое дерево сверху вниз,
т. е. начиная с самой верхней НС. Эти алгоритмы фактически воспроизводят правила переписывания, но применяют их сначала к первым обозначениям в имеющейся последовательности. Эти алгоритмы сразу строят
некую структуру, однако для того, чтобы привести её в соответствие с
фактическими входными данными, им требуется осуществить непредсказуемый по длительности перебор возможных дериваций, порождающих
любые другие цепочки. Фактически, перебираются все высказывания, порождаемые грамматикой, до тех пор, пока начальные компоненты порождённого и анализируемого высказываний не совпадут; затем процедура
повторяется до тех пор, пока не найдётся деривация всего высказывания.
Восходящие алгоритмы работают по противоположной схеме: движение происходит снизу вверх. Нижестоящие НС заменяются на вышестоящие до тех пор, пока для такой замены не потребуется соединить несколько НС. Движение вверх в последнем случае возобновится только
после того, как все нижестоящие позиции будут заполнены. Эти алгоритмы обладают высокой производительностью и не порождают ничего лишнего, но они либо неприменимы в случаях, когда возможны пропуски составляющих (эллипсис), либо допускают эллипсис, но неприменимы к так
называемым рекурсивным грамматикам.
Комбинированные алгоритмы предполагают совмещение этих двух
стратегий. Эти алгоритмы обладают более высокой производительностью,
чем нисходящие, и применимы к рекурсивным грамматикам с эллиптическими НС.
Порядок построения НС тремя видами алгоритмов в предложении
Мама мыла раму изображён на рисунке 3 (здесь изображена работа более
простого в реализации поиска «в глубину», при поиске «в ширину» порядок меняется). Следует отметить, что НС «ГГ» при реализации восходящего или комбинированного алгоритма встраивается в НС «Предложение»
только после шага 10, т. е. когда все её дочерние позиции заполнены.
42
Часть I. Компоненты
Рис. 3. Порядок работы нисходящих, восходящих и комбинированных алгоритмов
Рассмотрим пример простейшей НС-грамматики и одной из возможных дериваций.
1)
2)
3)
4)
5)
6)
7)
Грамматика:
Предложение (П) → Именная группа (ИГ) + Глагольная группа (ГГ)
ИГ → форма имени существительного (С)
С → Мама
С → раму
ГГ → ГГ + ИГ
ГГ → форма глагола (Г)
Г → мыла.
Деривация (в скобках между стрелками указаны номера правил
грамматики):
П → (1) → ИГ + ГГ → (2) → С + ГГ → (3) → Мама + ГГ → (5) →
Мама + (ГГ + ИГ) → (6) → Мама + (Г + ИГ) → (7) → Мама + (мыла +
ИГ) → (2) → Мама + (мыла + С); → (4) → Мама + (мыла + раму).
В результате последовательного применения правил грамматики выстраивается последовательность словоформ, соответствующая базовому
порядку слов в предложении Мама мыла раму.
Важный недостаток НС-грамматик связан с тем, что они предполагают соответствие между линейным порядком слов и фразовой структурой.
То есть, они не учитывают, что в языках со свободным порядком слов составляющая может разрываться. Именно это происходит с составляющей
нерукотворный памятник в строчке Пушкина Я памятник себе воздвиг
нерукотворный. Разрывы происходят и в языках со строгим порядком
слов, например, в вопросительных предложениях, ср. Whom are you
waiting for? (Кого вы ждёте? / Кого ты ждёшь?)
Глава 2. Компьютерный синтаксис
43
Чтобы объяснить различные порядки слов, к правилам переписывания в процедуре деривации пришлось добавить перемещения. Например,
для объяснения порядка слов в вопросительном предложении в деривацию
добавляется правило вида «С Г Вопр → Вопр С Г», где «Вопр» — вопросительное слово, перемещаемое в начало предложения. Перемещения срабатывают уже после порождения цепочки конечных обозначений с базовым порядком слов, поэтому формулируются именно в терминах конечных обозначений (С, Г, но не ИГ или ГГ). Синтаксическая структура, возникающая до перемещений, называется глубинной (ГСС, deep structure);
перемещения трансформируют ГСС в поверхностную структуру (ПСС,
surface structure).
1.4. Комбинированные теории анализа предложения
Подход, грамматики зависимостей и грамматики непосредственных
составляющих, предполагает установление отношений зависимости не
только между словами, но и между группами слов. На материале русского
языка наиболее подробно была разработана в теории синтаксических
групп (ТСГ) А. В. Гладкого. Она допускает включение в структуру предложения тех групп, которые участвуют в отношении зависимости «целиком», а не посредством одной словоформы (ср. приведенное выше предложение По графику мы работаем в среду). Такой подход позволял легко
обрабатывать разрывные составляющие.
В некоторых прикладных задачах комбинированный подход реализуется с помощью расширенных сетей переходов (Augmented Transition
Networks, ATN) и основанных на них ATN-грамматиках, которые удачно
адаптируются к русскому языку. В частности, именно на этой грамматике
основан синтаксический анализ предложений в системе ПРОМТ. ATNграмматики — это комбинация НС-грамматик и Марковских цепей (сетей
переходов), в которых переходы производятся не только от слова к слову
(что приводит к проблемам при анализе сложных фраз), но и между словами и НС или непосредственно между НС. Однако при этом для каждого
класса НС строится своя независимая сеть, позволяющая анализировать
эту НС по-отдельности. Кроме того, в ATN-грамматиках используются
специальные «регистры» для обеспечения грамматического согласования
и управления. Расширенные сети переходов являются самостоятельными
алгоритмическими моделями, по мощности эквивалентными машинам
Тьюринга.
44
Часть I. Компоненты
2. Неоднозначность и проблема комбинаторного
взрыва
Главная проблема синтаксического анализа связана с неоднозначностью языковых единиц. Даже, казалось бы, однозначные слова, например,
слово телевизор, имеют так называемые «контекстуальные» значения,
т. е. значения, проявляющиеся в особых условиях: например, телевизором, хоть и редко, могут назвать и монитор вычислительной машины, и
даже, в переносном смысле, телевидение — ср. Телевизору нельзя верить;
Как их вообще пустили в телевизор.
Помимо очевидной многозначности слов (лексической неоднозначности), есть и менее очевидная многозначность грамматических форм
(морфологическая неоднозначность): ср., например, например, числительное три и форму повелительного наклонения единственного числа
глагола тереть, или форму именительного падежа слова стекло и форму
прошедшего времени, единственного числа, среднего рода глагола стекать. Морфологическая неоднозначность может показаться редким явлением, но только потому, что она редко бывает очевидной.
Больше всего проблем вызывает, однако, не морфологическая, а синтаксическая неоднозначность. Из-за морфологической неоднозначности
одна и та же фраза может иметь несколько разных пониманий, которые
соответствуют разным структурам (Он увидел их семью своими глазами,
Эти типы стали есть в цехе). Более того, одна и та же фраза может быть
понята по-разному даже при однозначности всех её словоформ (ср. Вася
встретил Петю в коридоре и Вася встретил Петю в костюме). В действительности, обе фразы имеют, по крайней мере, три возможные синтаксических структуры. Им соответствует три разные ситуации. Для первой
фразы они таковы:
Вася встретил Петю, и это произошло в коридоре
Вася встретил Петю, одетого в коридор
Вася, одетый в коридор, встретил Петю
По наблюдению И. А. Мельчука, одно предложение в первой статье
Конституции США допускает 16 различных синтаксических структур.
Чтобы найти верный вариант разбора целого предложения, можно
попытаться перебрать все комбинации вариантов разбора его частей. Проблема в том, что при компьютерном анализе это приводит к так называемому комбинаторному взрыву.
Действительно, если три словоформы в предложении имеют хотя бы
два варианта разбора, то в сумме получается 23 = 8 возможных комбинаций, которые необходимо рассмотреть. 7 неоднозначных словоформ в
Глава 2. Компьютерный синтаксис
45
предложении приводят уже к 27 = 128 комбинациям. Время работы машины напрямую зависит от количества перебираемых комбинаций, которое в
данном случае растёт экспоненциально.
Несложно убедиться в том, что в реальных текстах число неоднозначных словоформ часто оказывается выше, чем семь, а число вариантов
разбора часто превышает два даже в русскоязычном тексте. Если же речь
идёт об арабском тексте, где чаще всего пропускаются обозначения гласных фонем, то семь — это нормальное, даже довольно низкое количество
версий разбора для каждой словоформы (77 = 823543).
Таким образом, даже неоднозначности словоформ было бы достаточно для серьёзных проблем с производительностью парсеров. Между тем,
неоднозначность словоформ — это лишь часть проблемы. Выше рассматривались предложения Вася встретил Петю в коридоре и Вася встретил
Петю в костюме, различающиеся лишь одной словоформой, причём однозначной. Эти два предложения имеют различные синтаксические структуры, но установить этот факт машина может только на основании семантических, а не синтаксических знаний. Вместе с тем, в данном случае все
словоформы в предложениях однозначны. Синтаксическая неоднозначность возникает из-за того, что одна и та же цепочка слов в одних и тех же
грамматических формах может быть порождена разными, неравнозначными способами (деривациями). В терминах теории синтаксических
групп, группа в костюме может относиться как к словоформе Вася, так и к
словоформе Петя, или даже ко всему предложению Вася встретил Петю,
если допустить, что костюм был местом встречи.
Кроме того, в языке встречаются пропуски словоформ — эллипсис.
Чтобы машина могла обнаруживать эллипсис там, где он действительно
есть, ей приходится сначала предполагать подобные пропуски везде. Это
выводит масштабы комбинаторного взрыва на уровень миллионов комбинаций.
В определённом смысле масштаб и сложность, да и сама суть проблемы, о которой идёт речь, напоминают известную задачу коммивояжёра. Эта задача обычно формулируется так. Имеется набор городов, соединённых дорогами, каждая из которых имеет длину (стоимость) и может
быть односторонней. Нужно найти самый выгодный маршрут, который
проходил бы через все города хотя бы по одному разу и возвращался бы в
исходный город, и, самое главное, доказать, что более выгодного маршрута не существует. Человек (конечно, ничего не доказывая) может найти
такой маршрут, как правило, мгновенно, но как именно он это делает, на
сегодняшний день точно неизвестно. Машина же куда хуже справляется с
этой задачей.
Найти оптимальное правильное синтаксическое дерево, которое бы
связывало все словоформы в предложении, — ничуть не проще, чем ре-
46
Часть I. Компоненты
шить задачу коммивояжёра. Вместе с абстрактными единицами грамматики словоформы конкретного предложения образуют сложную систему
связей, в которой синтаксическое дерево — это маршрут. Решению задачи
коммивояжёра посвящено множество исследований, равно как и проблеме
комбинаторного взрыва при компьютерном синтаксическом анализе. В
обоих случаях на практике вместо универсальных часто используются
эвристические алгоритмы — частные решения, дающие верный или
приближенный к верному результат в большей части случаев, но не пригодные для полноценного решения задачи. Например, в области компьютерного синтаксиса к числу таких решений относятся так называемые одноцелевые парсеры — синтаксические анализаторы, которые для каждого предложения строят лишь одну версию разбора. Одноцелевые парсеры
часто используют вероятностные грамматики (см. ниже) в качестве эвристики для выбора основной версии, но также используются и эвристические правила (например, исключать версию именительного падежа в существительных после предлогов, привязывать предложные группы только
к ближайшему соседу и т. д.). Как правило, для разных предложений, состоящих из одних и тех же грамматических форм, они показывают одну и
ту же синтаксическую структуру. Поэтому, если, например, для предложения Вася встретил Петю в костюме такой анализатор выстроит одну из
верных версий разбора (т. е. в костюме будет отнесено к Вася или к Петю,
а не к встретил), то и для предложения Вася встретил Петю в коридоре
синтаксическая структура будет выстроена точно такая же, и при семантическом анализе кто-то из участников встречи непременно окажется «одетым» в коридор (таково одно из возможных значений предлога в при прямом подчинении именной группе, обозначающей живое существо).
Такой подход приводит и к более серьёзным проблемам. Синтаксическая неоднозначность может оказаться неразрешимой на уровне синтаксиса — например, в известном предложении Он увидел их семью своими глазами (те, кому неизвестен этот пример, редко сразу догадываются, что
машина может предположить наличие семи глаз у действующего лица, но
даже те, кто догадываются, редко осознают, что машина может оказаться
права, например, если речь идёт о пауке, лишённом одного глаза). Верным
результатом синтаксического анализа таких предложений (а значит, в общем случае и любых других), всё же, является не одно наиболее вероятное
дерево, а совокупность всех возможных деревьев. В данном случае их, по
меньшей мере, четыре (Толкования этих четырёх структур выглядят приблизительно так: ‘Он сам увидел их семью’, ‘Он увидел их при помощи
семи своих глаз’, ‘Он увидел, что их семья может стать его глазами’ и ‘Он
увидел, что они могут стать семью его глазами’). Поэтому в современных
системах, как правило, всё же используются многоцелевые парсеры —
Глава 2. Компьютерный синтаксис
47
анализаторы, которые для каждого предложения порождают набор версий
синтаксического дерева.
Между тем, именно при разработке многоцелевых парсеров проблема
комбинаторного взрыва оказывается особо важной.
3. Статистический парсинг
Весьма популярна идея использования при синтаксическом анализе
статистических данных ([Jurafsky, Martin 2008]), позволяющая парсерам
рассматривать в первую очередь наиболее вероятные варианты анализа. В
основе современных статистических алгоритмов лежит формализм вероятностных контекстно-свободных грамматик (probability context-free
grammars, PCFG). При таком подходе к каждому правилу переписывания
добавляется вероятность применения этого правила. Эта вероятность оценивается статистически, на материале синтаксически размеченных текстовых коллекций, и на самом деле отражает то, как часто в реальных текстах
реализуется то или иное синтаксическое правило.
Добавление вероятностной меры в формальную грамматику действительно позволяет строить алгоритмы, ранжирующие свои версии и в первую очередь обнаруживающие наиболее вероятные (частотные) синтаксические конструкции. К числу таких алгоритмов относятся алгоритмы
CKY, Viterbi parser (реализован в пакете NLTK), тензорная декомпозиция
([Cohen, Satta, Collins 2013]), Coarse-to-fine algorithm и другие алгоритмы.
Основным недостатком PCFG и основанных на ней алгоритмов является то, что вероятности оцениваются, как правило, в отрыве от лексического контекста, то есть реальных слов или словоформ, в то время как,
очевидно, фактическая вероятность употребления синтаксических конструкций не является безусловной и существенно зависит от их лексического наполнения (вспомним пример с костюмом и коридором). Для решения
этой проблемы был разработан формализм лексических PCFG (lexicalized
context-free grammars, LCFG), однако этот формализм и основанные на
нём алгоритмы сталкиваются уже с другой проблемой — проблемой лексической неоднозначности.
Для оценки качества существующих решений, как и в прочих областях компьютерной лингвистики, в компьютерном синтаксисе принято использовать стандартную F-меру (меру Рисбергена), представляющую собой гармоническое среднее точности и полноты анализа, где точность
(precision, p) — отношение количества корректных выданных результатов
к общему количеству выданных результатов; полнота (recall, r) — отношение количества корректных выданных результатов к общему количеству
48
Часть I. Компоненты
возможных корректных результатов в коллекции; среднее гармоническое
— удвоенное произведение точности и полноты, делённое на их сумму:
2 pr
p+r
К сожалению, эти метрики позволяют корректно оценить эффективность лишь одноцелевых парсеров; в случае с многоцелевыми парсерами
учитывается только первая версия анализа, что не вполне корректно в случае неоднозначности. При этом корректность самой расстановки вероятностей не учитывается вообще. Кроме того, важно, чтобы расчёты F-меры
не производились на той же коллекции текстов, что и расчёты вероятностей синтаксических правил. Использование одной и той же коллекции
приводит к завышенным показателям (более 90 % F-меры) и не позволяет
с уверенностью говорить об их корректности.
Статистические модели позволяют лишь частично улучшить результаты анализа, но даже существующие метрики и основанные на них «дорожки» («соревнования» синтаксических парсеров, например, РОМИП
2012) показывают, что описанные методы уступают в качестве методам,
основанным на взаимодействии синтаксиса и семантики (системы
Compreno и ЭТАП-3 показали более 95 % F-меры, в то время как F-мера
для парсера АОТ составила 87 %), в которых, выстроив любую синтаксическую связь, парсер может двигаться дальше, только получив от семантического компонента подтверждение: у этой связи действительно есть
осмысленная непротиворечивая трактовка.
Это означает, что синтаксический и семантический анализ вряд ли
целесообразно производить в современных системах по отдельности. Далее мы обсудим, к чему приводит соблюдение или нарушение этого принципа в современных синтаксических анализаторах.
4. Современные синтаксические анализаторы:
семь глаз и типы в цехе
4.1. Лингвистический процессор ЭТАП
Лингвистический процессор ЭТАП возник на основе самого успешного компьютерного переводчика Советского Союза. Он начал создаваться в 1972 году в институте «Информэлектро», директор которого С. Г.
Малинин брал на работу тех лингвистов, которых увольняли из других
институтов за протесты против вторжения в Чехословакию и прочее
вольнодумство. ЭТАП стал единственной российской системой тех лет,
дожившей до нашего времени.
Глава 2. Компьютерный синтаксис
49
Сегодняшняя версия ЭТАП-3 — это полномасштабный лингвистический процессор. Его главная задача — анализировать текст и извлекать из
него некоторое абстрактное представление, отражающее его смысл.
Синтаксический анализатор лингвистического процессора ЭТАП-3
работает в связке с толково-комбинаторным словарём, поэтому некоторые
различия между Петя встретил Васю в костюме и Петя встретил Васю
в коридоре, всё же, «замечает», хотя в первом случае в костюме относит
всё же к глаголу, а не к существительному:
Рис. 4. ЭТАП-3: работа толково-комбинаторного словаря
Для предложения Он увидел их семью своими глазами строится лишь
одна, самая очевидная версия:
50
Часть I. Компоненты
Рис. 5. ЭТАП-3: разбор неоднозначного предложения
Одна версия строится и для предложения Эти типы стали есть в цехе:
Рис. 6. ЭТАП-3: разбор неоднозначного предложения
Из приведённых примеров видно, что система ЭТАП-3 удачно справляется с синтаксически неоднозначными предложениями благодаря совместной работе синтаксического и семантического компонентов. Мы
видим, что версии разбора, которые могли бы быть верными в некоем
особом контексте, здесь не учитываются.
4.2. DictaScope и АОТ
Синтаксический анализатор DictaScope (разработка российской компании Dictum) работает независимо от какого-либо семантического анализатора. Он самостоятельно выбирает версию синтаксического разбора,
что, однако, приводит к определенным проблемам. Схемы на рис. 7 показывают, что предложения Николай встретил гостей в прихожей и Нико-
Глава 2. Компьютерный синтаксис
51
лай встретил гостей в халате интерпретируются неправильно (гости
одеты в прихожую или в один и тот же халат).
Рис. 7. DictaScope: гости одеты в прихожую
Может показаться, что системы ЭТАП-3 и DictaScope строят неправильные синтаксические деревья, но дело в том, что они не строят множественных вариантов или строят, но просто не показывают их пользователю.
Похожую ситуацию наблюдаем и в системе АОТ.
Рис. 8. АОТ: место встречи — халат
52
Часть I. Компоненты
Для предложения Он увидел их семью своими глазами система АОТ
выдаёт одну версию разбора, в которой у действующего лица — семь
глаз.
Рис. 9. АОТ: семь глаз
Аналогична участь предложения Эти типы стали есть в цехе, в котором предполагается наличие неких типов, которые стали употреблять
пищу в цехе.
Рис. 10. АОТ: подозрительные типы употребляют пищу в цехе
4.3. Stanford NLP, RASP, OpenNLP
Сходная ситуация наблюдается и в зарубежных одноцелевых парсерах. Так, парсер системы Stanford NLP выдаёт одинаковые версии разбора
для предложений President met prime minister in his suite (Президент встретил премьера в его/своём костюме) и President met prime minister in his
lobby (Президент встретил премьера в его/своём коридоре).
Глава 2. Компьютерный синтаксис
53
Рис. 11. Stanford NLP: костюм — место встречи
Аналогично поведение парсера RASP в составе системы Gate. К сожалению, результаты анализа можно получить лишь в текстовом виде.
Листинг 1. RASP/Gate: костюм
— место встречи
("T"
("S" ("NP" "President")
("VP" "meet+ed" ("N1" ("AP" "prime") "minister")
("PP" "in" ("NP" "his" "suite"))))
".")
("T"
("S" ("NP" "President")
("VP" "meet+ed" ("N1" ("AP" "prime") "minister")
("PP" "in" ("NP" "his" "lobby"))))
".")
К числу одноцелевых парсеров, не различающих эти две синтаксические структуры, относится и парсер системы OpenNLP.
4.4. Link Grammar Parser
Синтаксический анализатор Link Grammar Parser для русского языка
строит четыре версии разбора как для предложения Николай встретил
гостей в прихожей, так и для предложения Николай встретил гостей в
халате, но третья и четвёртая версии полностью повторяют первые две, а
вторая отличается от первой лишь тем, что в первой версии слово Николай почему-то разобрано как имя нарицательное. Во всех версиях разбора
54
Часть I. Компоненты
второго предложения в халате оказывается обстоятельством места, т. е.
халат — это место встречи.
Рис. 12. Link Grammar Parser: неоднозначность обнаружена, но халат — место
встречи
Вместе с тем, для предложения Он увидел их семью своими глазами
Link Grammar Parser строит целых 14 версий разбора, среди которых есть
и те, что были указаны выше, и даже совсем не очевидные версии (например, версия, которой можно сопоставить только такую трактовку: ‘Он сам
увидел, что они могут стать семью’).
Приведём лишь первую и последнюю версии (в первой версии речь
идёт о семье, в последней — о семи глазах):
Глава 2. Компьютерный синтаксис
55
Рис. 13. Link Grammar Parser: обнаружены все версии разбора
Для предложения Эти типы стали есть в цехе строится 12 версий
разбора. В версиях с подозрительными типами, которые выдаются в первую очередь, различаются возможные способы отнесения обстоятельства
в цехе: в одной группе версий оно относится к глагольной форме стали, в
другой — к есть, в третьей — к типам. Версии с типами стали (сплава)
почти не различаются; лишь в одной из них форма есть верно распознана
как инфинитивная. Приведём здесь лишь первую и последнюю версии.
Рис. 14. Link Grammar Parser: обнаружены все версии разбора
Link Grammar Parser отличается от рассмотренных выше систем тем,
что он в действительности является многоцелевым. К сожалению, эта система не позволяет встраивать в процедуру разбора семантические ограничения и тем самым хотя бы частично снимать неоднозначность, и у этой
системы отсутствуют способы настройки правил грамматики, которыми
пользуется система.
56
Часть I. Компоненты
4.5. NLTK
Лингвистический пакет NLTK, как и Link Grammar Parser, строит несколько версий разбора; в отличие от всех вышеперечисленных систем, он
позволяет пользователю самостоятельно записывать грамматику в виде
правил переписывания (используется НС-грамматика). Ниже приводится
пример короткой программы на языке Python, использующей NLTK для
разбора предложения Николай встретил гостей в коридоре и выдача этой
программы.
Листинг 2. Пользовательская
НС-грамматика в NLTK
#coding: utf-8
import nltk
from nltk.draw.tree import draw_trees
grammar = nltk.CFG.fromstring("""
Предложение -> ИГ ГГ
ПГ
->
П ИГ
ИГ
->
С | С ПГ
ГГ
->
Г ИГ | ГГ ПГ
С
->
'Николай' | 'гостей' | 'коридоре'
Г
->
'встретил'
П
-> 'в'
""", encoding="utf-8")
sent = [u'Николай', u'встретил', u'гостей', u'в', u'коридоре']
parser = nltk.ChartParser(grammar)
draw_trees(*(tree for tree in parser.parse(sent)))
Эта программа выведет на экран графические представления построенных деревьев:
Глава 2. Компьютерный синтаксис
57
Рис. 15. NLTK: обнаружены все версии разбора
NLTK позволяет также строить версии разбора и в виде деревьев зависимостей, однако на сегодняшний день не выполняет разбор в терминах
ТСГ (комбинированных структур НС и ГЗ). Кроме того, для разбора в
терминах ГЗ требуется указание в грамматике всех возможных зависимостей между конкретными словоформами в явном виде, что в некотором
роде делает эту процедуру бессмысленной.
Способов семантической фильтрации версий синтаксического разбора в NLTK не предусмотрено, однако пользователь может указывать вероятности для каждого правила грамматики в квадратных скобках (реализуя
тем самым модель PCFG, см. выше).
5. Дальнейшие задачи
Существующие проблемы компьютерного синтаксиса могут получить полноценное решение лишь в случае создания компьютерных систем, полностью моделирующих языковую картину мира, но существующие на сегодняшний день системы справляются с этой задачей лишь частично. Такие системы в современной литературе принято называть универсальными компьютерными онтологиями. Для построения такой онтологии необходимо создание так называемых банков деревьев (tree banks),
или синтаксически размеченных корпусов текстов, в которых синтаксическая и лексическая неоднозначность снята вручную, и на основании которых могут быть объективно установлены существующие в языке семантические валентности и частотность тех или иных связей в текстах.
Во многом по этому принципу построен проект FrameNet, хотя степень формализации этой базы знаний на сегодняшний день не позволяет
использовать её в компьютерном синтаксисе в прямом виде. Семантиче-
58
Часть I. Компоненты
ские валентности выявляются на основе синтаксически размеченных корпусов текстов, но для получения этих корпусов необходимы средства синтаксического анализа, снятия синтаксической неоднозначности и построения однозначной синтаксической разметки. Средства снятия неоднозначности основаны на валентностях, получается некоторый «порочный
круг». Кроме того, для выявления семантических валентностей в разрешении нуждается не только синтаксическая, но и лексическая неоднозначность, что означает необходимость дополнительной семантической
разметки синтаксически размеченных корпусов текстов.
Таким образом, универсальная компьютерная онтология не сможет
быть построена и проверена до тех пор, пока не будет собран достаточно
объёмный синтаксически и семантически размеченный корпус текстов.
Между тем, чтобы построить такой корпус, необходимо сначала хотя бы
частично решить проблему синтаксической неоднозначности — иначе
разметка корпуса потребует неоправданных и весьма объёмных трудозатрат.
Одним из решений этой проблемы может стать использование метода
последовательных приближений. По этому принципу построен проект
AIIRE, одним из участников которого является автор данной главы.
Компьютерный синтаксис на сегодняшний день является одной из
самых многообещающих, и в то же время вызывающих массу разночтений и затруднений областей компьютерной лингвистики. Ещё 15 лет назад эта область считалась малоперспективной, именно из-за этих разночтений и проблем, прежде всего — из-за проблемы производительности
(комбинаторного взрыва). Появление компьютерных онтологий и совмещение их с синтаксическими анализаторами дало принципиально новые
возможности; создание собственных синтаксических анализаторов вновь
стало популярным занятием. Мы надеемся, что прорыв в области компьютерного синтаксиса будет совершён в ближайшие годы.
Литература
Беляева Л. Н. Автоматический (машинный) перевод // Прикладное языкознание:
Учебник. СПб., 1996. С. 360–388
Гладкий А. В. Синтаксические структуры естественного языка в автоматизированных системах общения. М.: Наука, 1985. 144 с.
Леонтьева Н. Н. Автоматическое понимание текстов. Системы, модели, ресурсы
М.: Academia, 2006. 303 с.
Лесерф И. Применение программы и модели конкретной ситуации к автоматическому синтаксическому анализу // НТИ. № 11. М.: ВИНИТИ, 1963. С. 42–50.
Теньер Л. Основы структурного синтаксиса. М.: Прогресс, 1988. 656 с.
Тестелец Я. Г. Введение в общий синтаксис. М.: РГГУ, 2001. 798 с.
Глава 2. Компьютерный синтаксис
59
Cohen S. B., Satta G., Collins M. Approximate PCFG Parsing Using Tensor Decomposition // Proc. of NAACL 2013.
Jurafsky D., Martin J. H. Speech and Language Processing, 2nd Edition. Prentice Hall,
2008. 1024 pp.
Электронные ресурсы
Система ЭТАП-3: http://proling.iitp.ru/ru/etap3
Парсер DictaScope: анализатор долгое время был доступен по адресу:
http://www.dictum.ru/ru/syntax/blog, однако сейчас доступна только кнопка
«анализировать»; по какой-то причине сервер синтаксического анализа
(http://212.92.158.66:3025) не отвечает на запросы.
http://aot.ru/demo/synt.html — cинтаксический анализатор АОТ, но для его работы
необходима установка Java Plugin и специальная настройка этой надстройки
обозревателя на страх и риск пользователя, т. к. данная система не удовлетворяет требованиям безопасности.
FrameNet https://framenet.icsi.berkeley.edu
Stanford NLP http://nlp.stanford.edu:8080/corenlp/process
Парсер RASP в составе системы Gate: последняя версия доступна по ссылке
http://ilexir.co.uk/applications/rasp/download/
OpenNLP: https://opennlp.apache.org
Link Grammar Parser: http://slashzone.ru/parser/parse.pl
Лингвистический пакет NLTK: Пользователи современных UNIX-подобных операционных систем могут установить этот пакет при помощи команды «sudo
pip install NLTK». Для пользователей Windows всё несколько сложнее, инструкции по установке приведены по адресу http://www.nltk.org/install.html
AIIRE http://aiire.org, http://svn.aiire.org/repos/t
Глава 3
Компьютерное представление
значений
Авторы: Ольга Александровна Митрофанова, выпускница 1995
года, доцент кафедры математической лингвистики СПбГУ;
Ирина Владимировна Азарова, выпускница 1976 года, доцент
кафедры математической лингвистики СПбГУ
1. О семантическом модуле
Самым сложным этапом автоматической обработки текста считается
содержательный анализ. Для его успешного выполнения необходимы знания о том, что такое значение слова и предложения, как эти значения описывать формально, как представлять и хранить содержание текста в памяти компьютера, как производить операции со значениями, как переводить
значения с естественного на формальный язык и обратно. Ответы на эти и
многие другие вопросы дает компьютерная семантика, в ведении которой находится разработка моделей семантического уровня естественного
языка.
Глубина смыслового анализа зависит от решаемой задачи. Ведь далеко не всегда требуется, чтобы компьютер анализировал все оттенки реальности как дроид C-3PO из киносаги «Звездные войны».
Как правило, семантический модуль строится из двух типов данных
— из словаря значений языковых выражений, включающих связи между
этими значениями, и из правил интерпретации синтаксических структур,
комбинации и преобразования значений. Наша глава посвящена семантическим представлениям — способам отражения значений в компьютерной
модели естественного языка и прежде всего в его словарном блоке. Выбор
методов обработки семантической информации зависит от того, каким
образом производится структурирование значений и каковы возможности
размещения их в памяти компьютера. В обзоре литературы приводятся
ссылки на некоторые другие подходы компьютерной семантики.
Глава 3. Компьютерное представление значений
61
2. Модели представления знаний в
компьютерной семантике
2.1. Виды семантических представлений
Чтобы компьютер мог «понимать» естественный язык, он должен
уметь извлекать и перерабатывать содержание текста, оперировать смыслом предложений, значениями отдельных слов и конструкций. Для этого
нужны теории переработки и преобразования языковых значений, которые
позволяют представлять информацию и отражать способ ее организации в
языке. Здесь самыми популярными являются сетевые и графовые модели,
а также фреймы и сценарии. Кроме того, используются логические и продукционные модели [Муромцев 2005], но для них нужны предварительно
созданные словарные базы данных.
2.2. Сетевые модели
Семантическая сеть (semantic network) — это удобный способ представления знаний о фрагменте действительности в виде ориентированного
графа, где понятия (конкретные и абстрактные сущности) хранятся в узлах, а дуги передают отношения между понятиями. Узлы могут иметь различный вес (что соответствует статусу понятий в родо-видовой иерархии),
а дуги — длину (что соответствует силе связей). Классическим примером
семантической сети является известное с 3 века н. э. дерево Порфирия
(рис. 1).
62
Часть I. Компоненты
Рис. 1. Дерево Порфирия. Источник: ?ii
Чаще всего в сетях реализуются следующие отношения:
• род-вид, класс-подкласс, часть-целое, элемент-множество (транспорт — поезд, собака — пудель, машина — двигатель, дерево — лес
и т. п.),
• функциональные и логические отношения (каузация, дизъюнкция,
отрицание, конъюнкция и т. п.),
• пространственные, временные, количественные отношения (далеко,
близко, за, под, над, раньше, позже, больше, меньше и т. п.),
• атрибутивные отношения (иметь свойство …) и т. п.
Появлению современных сетевых моделей предшествовали экзистенциальные графы в рамках «логики будущего» Чарльза Пирса, которые использовались для представления логических формул в виде диаграмм.
Сетевые модели удобны тем, что являются наилучшим формальным
приближением к тому, что известно об устройстве человеческой памяти. В
середине ХХ века сетевые представления были впервые использованы для
описания функционирования долговременной памяти, например, в модели
TLC (Teachable Languge Comprehender), предложенной Россом Квиллианом. Модель объясняет, как человек воспринимает текст на естественном
языке, как формируется в сознании носителя содержательный образ текста, и почему самой подходящей формой представления содержания явля-
Глава 3. Компьютерное представление значений
63
ется сеть, связывающая системой семантических отношений лексикализованные понятия, выраженные в тексте [Quillian 1968].
Примерно в то же время сетевые модели начали использоваться для
нужд машинного перевода. В них сети играли роль промежуточного представления семантики переводимого текста.
Удобными в использовании оказались дефинитивные сети (definition
networks). Рональда Брахмана, которые объединяют важнейшие признаки
описываемого понятия (рис. 2) [Brachman, Schmolze 1985].
Рис. 2. Дефинитивная сеть для слова message (сообщение)1. Источник: ?iii
Еще одна разновидность сетей — пропозициональные сети
(propositional networks) Стюарта Шапиро. Они отражают семантическую
структуру ситуации (рис. 3) [Shapiro, Rapaport 1987]. Существуют инструменты для построения сетевых моделей таких типов, например, KL-ONE,
SNePS и т. д.
1
Здесь и далее мы приводим примеры семантических представлений с англоязычными
метками, принятыми в том или ином метаязыке описания (в частности, для сетей и графов).
64
Часть I. Компоненты
Рис. 3. Пропозиционная сеть для предложения Sue thinks that Bob believes that a dog
is eating a bone (Сью думает, что Боб полагает, что собака ест кость). Источник: ?iv
2.3. Концептуальные графы
Разновидностью сетей являются концептуальные графы — универсальная модель представления смысла текстов, которая совмещает формальные возможности логики и выразительность естественного языка.
Идея концептуальных графов была разработана Джоном Совой [Sowa
2000]. Он нашел способ представления знаний, который обладал бы логической непротиворечивостью, доступностью для восприятия человеком и
в то же время удобством использования в компьютерных системах.
Концептуальный граф (conceptual graph) — конечный связный двудольный граф с узлами двух типов: один тип соответствуют понятиям (он
изображен в прямоугольниках), а другой — концептуальным отношениям
(в овалах). На устройство концептуального графа накладываются следующие ограничения: дуги соответствуют бинарным отношениям, узлыотношения могут быть связаны с любым числом узлов-понятий. На рис. 4.
приведен пример концептуального графа, соответствующий пропозициональной сети на рис. 3.
Глава 3. Компьютерное представление значений
65
Рис. 4. Концептуальный граф для предложения Sue thinks that Bob believes that a dog
is eating a bone. (Сью думает, что Боб полагает, что собака ест кость). Источник: ?v
Концептуальные графы нашли широкое применение в экспертных
системах, в проектировании баз данных, в автоматическом поиске и анализе текстовой информации. Аппарат концептуальных графов используется как средство представления смысла в различных интеллектуальных
системах, направленных на обработку корпусов текстов и электронных
библиотек. Для концептуальных графов создан свой стандарт представления и языки описания: от исчисления предикатов, KIF (Knowledge
Interchange Format) до CGIF (Conceptual Graph Interchange Form).
2.4. Фреймы и сценарии
Под фреймом (frame) обычно понимается структура данных, представляющая стереотипную ситуацию, абстрактный образец или шаблон
для ситуации, класса объектов или объекта. Теория фреймов была разработана Марвином Минским применительно к исследованию восприятия
многомерных ситуаций [Минский 1979]. Эксперименты показывают, что
воспринимая информацию о внешнем мире и текстовую информацию,
человек сохраняет эти данные в сознании в виде особых структур, соответствующих типовым ситуациям, т. е. в виде фреймов.
Стандартный фрейм содержит имя ситуации, поля слотов с параметрами ситуации, поля значений слотов и при необходимости поля процедур. Например, фрейм, описывающий регистрацию в гостинице, будет
выглядеть следующим образом (см. табл. 1).
66
Часть I. Компоненты
Таблица 1. Фрейм «Регистрация в гостинице»
Регистрация в гостинице
Имя фрейма
Слоты
участники
Значения слотов
клиент
администратор
предъявить
записать
заполнить
выделить
выбрать
взять
действия участников
объекты действия
паспорт
удостоверение личности
регистрационная книга
регистрационная форма
бланк
номер
комната
этаж
ключ
вестибюль
место действия
Если фреймовая модель создается для описания сложного события
или динамически развивающейся ситуации, принято говорить о сценариях (scripts), которые сами по себе могут представлять систему связанных
между собой фреймов. Так, сложная экстралингвистическая ситуация
Гостиница хорошо описывается с помощью сценария, в сокращенном
виде представленного в табл. 2. и содержащего в качестве элемента фрейм
Регистрация в гостинице.
Таблица 2. Сценарий «Гостиница»
Фрейм 1
Приезд
↓
Фрейм 2
Пребывание
Слоты
Регистрация в гостинице
Перемещение к номеру
Размещение в номере
Значения
…
Услуги горничной
Услуги портье
Питание
…
Глава 3. Компьютерное представление значений
67
Получение информации
↓
Фрейм 3
Отъезд
Оплата номера
Отъезд от гостиницы
…
Особой разновидностью фреймов также являются падежные фреймы,
предложенные Чарльзом Филлмором для описания семантикосинтаксических отдельных слов и целых предложений [Филлмор 1988].
Простейший падежный фрейм включает в себя данные о сочетаемости
целевого слова с точки зрения семантических ролей тех контекстных элементов, которые связаны с ним синтаксическими отношениями (в пределах рамки валентностей или модели управления). Такой фрейм состоит из
метки имени, слотов с метками семантических падежей и значений слова,
то есть лексических единиц контекста. Тем самым, падежные фреймы являются удобным способом формализации моделей управления или рамок
валентностей, а также основным формальным средством, используемым в
Грамматике конструкций.
Фреймы используются как способ хранения данных в базе конструкций FrameNet, в ресурсах PropBank и NomBank, а также для аннотации
аргументно-предикатных структур в корпусах текстов [Palmer, Gildea,
Kingsbury 2005]. Например, так в PropBank выглядит падежный фрейм для
глагола buy (покупать, приобретать):
Arg0-PAG: buyer (agent) — покупатель (агенс)
Arg1-PPT: thing bought (theme) — покупаемый объект (тема)
Arg2-DIR: seller (source) — продавец (источник)
Arg3-VSP: price paid (asset) — выплачиваемая сумма (средства)
Arg4-GOL: benefactive (beneficiary) — бенефактив (лицо, получающее
экономическую выгоду)
Аналогичным образом производится аннотация контекстов в
PropBank, которая представима в том числе и в виде фреймовых структур:
The company bought sugar on the world market to meet export
commitments. (Компания приобрела сахар на мировом рынке, чтобы выполнить обязательства по экспорту).
Arg0: The company (Компания)
Rel: bought (приобрела)
Arg1: sugar (сахар)
Argm-loc: on the world market (на мировом рынке)
Argm-pnc: to meet export commitments (чтобы выполнить обязательства по экспорту)
68
Часть I. Компоненты
Фреймовые модели успешно используются в качестве основы для онтологий, в разработке семантических модулей для систем автоматической
обработки и генерации текстов, например, в вопросно-ответных системах.
Так, при моделировании информационно-справочных диалогов классификационные фреймы и фреймы-сценарии позволяют адекватным образом
представлять параметры экстралингвистических ситуаций, явно выражаемые в репликах. В частности, приведенные выше в табл. 1 и 2 примеры
фреймовых описаний для ситуации Гостиница были составлены для лингвистического процессора с опорой на типовые диалоги из словарейразговорников [Азарова, Герд, Митрофанова 2002].
2.5. Современные разновидности семантических
представлений
Сегодня появляются новые виды представления знаний, среди которых на передовую вышли так называемые графы знаний (knowledge
graphs) — иерархически организованные базы знаний, создаваемые для
оптимизации информационного поиска [Singhal 2012]. В графе знаний
хранится разнообразная информация о той или иной теме, дополняемая
ссылками на информативные сайты. Источниками данных для графа знаний являются Wikipedia, Freebase, Wikidata, Factbook и ряд других. Графы
знаний начали широко применяться в различных прикладных системах,
например в компании Google, где он используется для быстрого ответа на
информационные запросы прямо на странице результатов поиска. Графы
знаний также помогают справляться с лексической неоднозначностью:
например, при запросе об одинаково именуемых объектах факты о них
приводятся отдельно, ср. Taj Mahal (Тадж-Махал) — название памятника
архитектуры и имя музыканта. Граф знаний показывает связи между фактами об одном и том же объекте, которые могут быть неизвестны или неочевидны для пользователя: при запросе о Марии Кюри можно получить
факты о её жизни, научной биографии, семье, достижениях родственников
и т. д. В 2012 году объем графа знаний компании Google составлял 570
млн объектов и 18 млрд фактов об объектах и их отношениях. Граф знаний
поддерживается на нескольких языках: помимо английского в нем представлены испанский, французский, немецкий, португальский, японский,
русский, итальянский. Объем хранимых объектов и отношений между
ними постоянно увеличивается.
Граф знаний передает эстафету появившемуся несколько позже ресурсу аналогичного типа, а именно Knowledge Vault, созданному автоматически на основе применения алгоритмов машинного обучения к интернет-данным. Особенностью Knowledge Vault является то, что отражаемые
в нем факты имеют оценку «правдоподобности» или «доверия», т. е. сте-
Глава 3. Компьютерное представление значений
69
пень истинности или ложности. Словом, инженерия знаний предлагает
всё более сложные семантические представления, отвечающие высоким
требованиям современных интеллектуальных процессоров.
3. Формальные онтологии
3.1. Структура формальных онтологий
Формальная онтология (formal ontology) — это особый вид семантических представлений, которые можно определить как модель наблюдаемой действительности, либо как иерархическую форму представления
знаний, отражающая структуру наблюдаемой действительности, либо как
логическую теорию, позволяющую систематизировать категории действительности и/или выражаемые в языке значения [Gruber 2009]. Традиционной лексикографией и терминоведением накоплен богатый опыт составления таких описаний. Классификации понятий (или синоптические схемы), создаваемые философами и лингвистами, составляют каркас идеографических словарей и тезаурусов (ср. тезаурусы Питера Марка Роже,
Жана-Батиста Буассьера, Хосе Касареса, Франца Дорнзайфа, Рудольфа
Халлига и Вальтера фон Вартбурга и т. д.). Ту же роль в терминологических тезаурусах, рубрикаторах и классификаторах выполняют логикопонятийные схемы предметных областей. Потребность в формальных онтологиях связана с необходимостью систематизации, адекватной передачи
и компактного хранения знаний об окружающем мире в целом и об отдельных предметных областях.
Структура формальных онтологий включает в себя следующие компоненты:
• классы, являющиеся обобщением наборов сущностей и организуемые
в таксономию (например, класс Транспорт включает в себя подклассы Наземный, Водный, Воздушный и др. транспорт),
• отношения, фиксирующие допустимые связи между классами (например, класс Локомотив связан с классом Железнодорожный состав отношением Быть частью),
• аксиомы, задающие условия соотнесения классов и отношений (например, в формальной онтологии может быть аксиома Если X является штурманом, то X не является пилотом, представимая в вид формулы исчисления предикатов Штурман(Х) → ¬Пилот(Х)),
• индивиды (или экземпляры), являющиеся отдельными представителями класса сущностей или явлений (например, Лев Яшин является
экземпляром класса Вратарь) — для экземплярных онтологий, в безэкземплярных онтологиях данный уровень отсутствует.
70
Часть I. Компоненты
3.2. Классификация формальных онтологий
Разработчики и исследователи формальных онтологий используют
целый ряд оснований для их классификации. Формальные онтологии могут различаться прежде всего по уровню формализации знаний, по типу
наполнения, по цели практического применения [Константинова, Митрофанова 2008; Соловьев, Добров, Иванов, Лукашевич 2006].
По уровню формализации знаний онтологии и подобные им ресурсы
можно расположить на шкале, нижние уровни в которой занимают терминологически-ориентированные глоссарии, словари и тезаурусы предметных областей, а на высших уровнях располагаются насыщенные научными знаниями формальные таксономии и фреймовые модели.
По типу наполнения противопоставляются общие онтологии, онтологии задач и предметные онтологии. В общих онтологиях отражаются
наиболее абстрактные понятия (например, Сущности, События, Пространство, Время и т. д.). В онтологиях задач фиксируются классы и отношения, связанные с применением формальной онтологии в тех или
иных практических приложениях (например, в онтологии для компьютерных инструментов проектирования радиоэлектронных средств должны
фигурировать термины, связанные с расчетом печатных плат и микросхем:
тип проводника, диэлектрика, топологические характеристики, электродинамические параметры, характеристики антенн или фильтров и т. д.).
Предметные онтологии ориентированы на реестры объектов, которые используются в различных производственных процессах (например, в проектной документации на мобильные устройства связи и, соответственно, в
формальной онтологии по данной области упоминаются компоненты мобильных телефонов, модемов и т. п.).
По цели практического применения различаются онтологии представления, онтологии верхнего уровня, онтологии предметных областей и прикладные онтологии. Онтологии представления создаются и
используются для характеристики языка задания онтологий низших уровней. Онтологии верхнего уровня создаются для стандартизации знаний,
разделяемых несколькими предметными областями. В них присутствуют
наиболее абстрактные классы, обладающие свойством универсальности.
Число таких классов относительно невелико: это категории типа Абстрактное, Конкретное, Действие, Процесс и т. д. Примерами таких онтологий являются модель Дж. Совы, Cyc, SUMO, DOLCE и др. Онтологии
предметных областей рассчитаны на описание основных понятий и терминов отдельных предметных областей (например, медицина, приборостроение, компьютерные технологии и т. д.) и не имеют ограничений на
сферу их применения. В настоящее время специалисты могут пользоваться стандартными онтологиями предметных областей, например, онтологи-
Глава 3. Компьютерное представление значений
71
ческими ресурсами по медицинским наукам, например, SNOMED CT
(Systematized Nomenclature Of Medicine Clinical Terms). Ресурсом подобного же типа является NAICS (North American Industry Classification System),
ориентированная на целый ряд областей (технология, строительство,
сельское хозяйство и др.). Востребованы такие проекты, как онтология
сферы товаров и услуг UNSPSC (United Nations Standard Products and
Services Code), онтология в области культурного наследия CIDOC CRM
(International Committee for Documentation Conceptual Reference Model).
Прикладные онтологии ориентированы на структурирование знаний по
конкретной практической задаче в некоторой области деятельности. Примерами ресурсов данного вида являются онтология по производству
TOVE (Toronto Virtual Enterprise), онтология по керамическим материалам
Plinius, онтология по техническим системам во время их функционального
цикла KACTUS.
Принципиально важным является также разграничение формальных
онтологий, создаваемых по типу строгих аксиоматизированных теорий, и
лингвистических онтологий, в которых фиксируются связи между системой понятий в картине мира и средствами выражения этих понятий в естественном языке. Следует признать, однако, что в современных онтологических разработках существует тенденция совмещения формального и
естественно-языковых приемов. Особенности лингвистических онтологий
заключаются в их ориентации на описание лексических значений слов и
их связей между собой (синонимия, антонимия, родо-видовые отношения,
меронимия и т. д.). Лингвистические онтологии могут быть как одноязычными, так и многоязычными. Наиболее известные ресурсы данного типа
— это WordNet, EuroWordNet, MikroKosmos, Sensus, РуТез и некоторые
другие.
3.3. Особенности создания формальных онтологий
Чтобы построить формальную онтологию, необходимо перечислить
классы, обозначающие сущности или явления в моделируемой предметной области, связать классы определенными отношениями, соотнести
классы с языковыми значениями и конкретными лексемами. Для этого
используют самые разные методы: классификацию, поиск прототипов,
определение интуитивных различий между понятиями, описание межъязыковых соответствий, анализ предметных областей и т. п.
Создать формальную онтологию непросто. Не всегда очевидно, например, по каким критериям выделять классы: как атомарные понятия
(Аристотель), как прототипы (Элеанор Рош), как примитивы (Анна Вежбицкая), как лингвоспецифические семантические классы (Джордж Лакофф) и пр. Кроме того, возникает вопрос о числе классов и отношений. С
72
Часть I. Компоненты
этой точки зрения возможны экономный и неэкономный подходы. Сторонники экономного подхода предполагают, что формальные онтологии
должны включать незначительное число классов, с помощью которых
можно описать много более сложных понятий (Роджер Шенк, Рей Джакендофф, Джон Сова, Анна Вежбицкая и пр.). Сторонники неэкономного
подхода считают, что формальная онтология может включать любое сколь
угодно большое число классов (Джордж Миллер, Кристиана Фелльбаум
и пр.).
Кроме того, классификация понятий и их признаков может оказаться
неоднозначной. Например, для понятия «человек» допустимы два варианта его включения в иерархию: в первом случае, сначала можно ввести
дифференциальный признак «пол», противопоставив понятия «лица мужского пола» и «лица женского пола», и затем добавить признак «возраст»,
противопоставив понятия «мужчина» и «мальчик», «женщина» и «девочка». В то же время, возможно первичное разделение понятия «человек» по
признаку «возраст» и вторичное — по признаку «пол».
Еще одна проблема, с которой сталкиваются разработчики формальных онтологий — это проблема микротеории, или проблема выбора между
несколькими вариантами структурирования комплекса значений. Например, есть несколько микротеорий, позволяющих по-разному включить понятие «цвет» в иерархию категорий формальной онтологии: «цвет» с позиций языковых категорий (как известно, существует зависимость между
числом выражаемых в языке цветообозначений и лексическим составом
этой группы), с точки зрения физики (цвета различаются по значениям параметров длины волны и интенсивности), с позиций нейрофизиологии
(восприятие цветов глазом человека определяется тремя рецепторами).
Решение этих и других задач зависит от цели создания онтологии и от
области ее применения. Но есть и общие требования к структуре формальных онтологий, с учетом которых производится выбор того или иного
варианта решения: онтология должна иметь четкую и прозрачную организацию, она должна быть приспособлена к многократному использованию
и допускать дальнейшее ее расширение.
3.4. Языки представления и редакторы формальных
онтологий
Веб-документы (точнее, интернет-страницы, содержание текстовую
информацию) содержат не только доступный обычным пользователям
текст, но и скрытые метаданные URI (Uniform Resource Identifier). Они
содержат важные сведения о документе и позволяют проводить поиск по
тем или иным параметрам. Метаданные обладают особой структурой и
содержанием, которое передается в форматах XML (Extensible Markup
Глава 3. Компьютерное представление значений
73
Language) и HTML (HyperText Markup Language). Для операций с метаданными (например, для автоматической классификации веб-документов,
поиска и извлечения данных) необходимы формальные онтологии. Именно поэтому онтологические ресурсы являются основой для семантической
разметки и ключевым звеном Semantic Web (Семантической Паутины,
глобальной семантической сети для работы с текстовыми данными в Интернет). Чтобы информация Semantic Web была доступна для автоматической обработки, а также для повышения согласованности сетевых инструментов были разработаны особые языки представления: RDF, RDFS,
OWL, SML, SHOE, DAML, OIL и т. д.
Модель RDF (Resource Description Framework) имеет простой синтаксис, опирающийся на XML. Высказывания RDF имеют вид троек типа <S,
P, O>, где S — субъект, P — предикат и O — объект. Его расширение —
это язык RDFS (RDF Schema), который определяет классы, свойства и др.
Среди других языков представления известен SHOE (Simple HTML
Ontology Extension), располагающий особыми тэгами для введения семантических данных в HTML-коды. Язык OIL (Ontology Interchange Level),
основанный на XML и RDF включает в свой состав средства формальной
семантики. Язык DAML (DARPA Agent Markup Language) допускает сложные определения классов по сравнению с RDF и RDFS. Существует также
интеграция DAML+OIL, это язык с более совершенными возможностями.
Позже в рамках W3C (World Wide Web Consortium) был создан стандарт
для обмена онтологическими данными — OWL (Web Ontology Language).
В числе особенностей OWL следует указать возможность введения локальных ограничений свойств по отношению к разным классам, наличие
функций объединения, пересечения, дополнения, непересекаемости над
классами, понятия мощности свойств в отношении экземпляров и т. д.
Некоторые языки представления позволяет анализировать нечеткие
знания. Языки Fuzzy RDF и Fuzzy OWL, являющиеся расширениями RDF
и OWL, совмещают стандартные модели с нечеткой логикой. Существует
также расширение OWL с вероятностными моделями Bayes OWL.
Для разработки архитектуры формальных онтологий, для их содержательного насыщения, анализа и корректирования используются специальные автоматизированные среды — онторедакторы (ontology editors).
Возможности того или иного онторедактора определяются заложенными в
нем моделями, среди которых логика предикатов, дескриптивная логика,
концептуальные графы, фреймы и т. д. Эти модели определяют структурирование данных внутри онтологии. В то же время характер онтологических описаний зависит от формата, или языка представления (RDF, OWL,
KIF, SCL и т. д.). Некоторые онторедакторы предусматривают особые операции над онтологиями, например выравнивание онтологий, их объединение, отображение одной онтологии в другую.
74
Часть I. Компоненты
Самый известный, легко модифицируемый и простой в использовании онторедактор — это Protégé [Noy, McGuinness 2001]. Protégé первоначально использовался в области обработки медицинской информации, но
позже стал использоваться при создании онтологий для Semantic Web. В
основе Protégé лежит фреймовая модель, хотя онторедактор поддерживает
и другие модели. Protégé допускает различные форматы представления:
RDF/RDFS, DAML+OIL, SHOE, OWL и т. д. Предусмотрены также плагины для расширения функциональных свойств онторедактора. В основе
Protégé лежит модель представления знаний OKBC (Open Knowledge Base
Connectivity). Основными элементами структуры, которую создает Protégé
— это классы, экземпляры, слоты (свойства классов и экземпляров) и фасеты (дополнительная информация о слотах).
Помимо Protégé, на сегодняшний день существует множество других
редакторов онтологий: Fluent editor, InTez, WebODE, OntoSaurus, WebOnto,
OilEd, OntoEdit, Ontolingua и т. п.
3.5. Методы автоматического построения формальных
онтологий
Современные онтологические ресурсы ориентированы на информационно насыщенные предметные области и опираются на корпусы текстов
значительных объемов. Поэтому построение, пополнение и коррекцию
формальных онтологий удобнее вести в (полу)автоматическом режиме.
Метод автоматической разработки формальных онтологий определяется
типом онтологического ресурса. Если для общих онтологий предпочтительны общенаучные подходы, то для онтологий задач и предметных онтологий пригодны такие методы автоматического формирования классов,
отношений, аксиом, поиска экземпляров, которые опираются на анализ
лексико-грамматических шаблонов и/или на тот или иной алгоритм кластеризации
с
привлечением
машинного
обучения
[Pantel,
Pennacchiotti 2008]. В любом случае в качестве источников данных выступают представительные корпусы, интернет, а также словарные базы данных (особый интерес в них представляют словарные определения, строящиеся на основе иерархических отношений).
Особенность пополнения онтологий с привлечением лексикограмматических шаблонов заключается в том, что на начальном этапе базовые шаблоны для разных отношений между классами, отражаемых в
онтологии, составляются вручную, а затем этот список расширяется автоматически благодаря использованию тех или и иных алгоритмов машинного обучения. Так, описание шаблонов типа X есть род Y или X есть
часть Y облегчает построение иерархий с гипонимическими и меронимическими отношениями. Если к представительному корпусу текстов при-
Глава 3. Компьютерное представление значений
75
менить какой-либо алгоритм кластеризации, можно выделить кластеры
слов с близкими значениями, назначить метки классов с опорой на синтаксические связи и затем установить между классами и их элементами
таксономические отношения.
В целом к системам автоматического пополнения онтологий предъявляются требования минимального вмешательства человека в процесс обработки данных, универсальности основных процедур и их независимости от источников данных, от их размера и структуры, а также точности,
т. е. низкой доли ошибок в результирующей онтологии.
3.6. Современные онтологические ресурсы.
На сегодняшний день существует большое количество онтологических ресурсов — отдельных онтологий (некоторые из примеров были
упомянуты выше) и онтологических библиотек, объединяющих ресурсы
разных типов и предметных областей. Вот немногие из библиотек онтологий: OntoSelect, Ontolingua, Protégé Ontology Library, OMEGA, OntoBank
и т. д.
Самая крупная и популярная на сегодня онтология — это SUMO
(Suggested Upper Merged Ontology), разработанная в IEEE SUO (IEEE
Standard Upper Ontology Working Group). В исходном виде SUMO является
онтологией верхнего уровня и может считаться стандартом для разработчиков онтологий данного типа. Позже SUMO стала ядром сложной онтологической системы, объединяющей онтологию среднего уровня (MILO) и
онтологии предметных областей (в сфере коммуникаций, распределенных
вычислений и пользовательских интерфейсов, экономики и финансов,
спорта, каталогов товаров и услуг, транспорта, географии, государственного управления, музыки, лингвистики и др.). SUMO включает в свой состав
около 25 тыс. элементов и 80 тыс. аксиом.
Иерархию SUMO возглавляет категория Сущность с двумя подклассами Абстрактный и Физический. Класс Абстрактный, в свою очередь,
делится на подклассы Количество, Множество, Атрибут, Пропозиция,
Отношение, Граф, Элемент графа. Класс Физический имеет в качестве
подклассов категории Процесс и Объект. У класса Объект имеются подклассы Самостоятельный объект, Область, Коллекция, Агент. Класс
Процесс подразделяется на подклассы Процесс с участием двух объектов,
Целенаправленный процесс, Движение, Внутреннее изменение, Изменение
формы и т. д. Аксиомы в SUMO имеют разную степень сложности, например: «Если C является экземпляром процесса горения, то существуют
выделение тепла H и излучение света L такие, что оба они H и L являются
подпроцессами C». Аксиомы записываются на формальном логическом
языке SUO-KIF.
76
Часть I. Компоненты
Для ресурса SUMO характерны прозрачная таксономия и в то же
время богатый набор внутренних ограничений, аккуратная интеграция с
онтологиями нижних уровней, хорошие возможности для пополнения и
преобразования в практически любой формат представления онтологий,
связи с Википедией, WordNet-словарями и онтологиями по биомедицине.
В SUMO предусмотрена поддержка нескольких языков: английского, хинди, китайского, итальянского, немецкого, чешского.
В качестве простейшего примера онтологии предметной области
приведем формальную онтологию по корпусной лингвистике [Виноградова, Митрофанова 2008]. Данная модель построена на основе представительного корпуса русскоязычных текстов. Формальная онтология реализована в онторедакторе Protégé. Сначала была составлена модель предметной области на основе данных от экспертов, эта модель была включена в ядро формальной онтологии. Затем структура формальной онтологии
была расширена, онтология была наполнена понятиями и терминами
предметной области. Выделение терминологического ядра и формирование иерархии классов осуществлялись в ходе статистической обработки
корпуса текстов. Среди классов формальной онтологии были описаны
следующие: корпус текстов, тип корпуса, работа с корпусом, разработка корпуса, отбор данных, оцифровка данных, разметка корпуса, корпусменеджер, использование корпуса, поиск по корпусу, запрос к корпусу,
терминальная цепочка символов, регулярное выражение, лемма, тег, результат работы с корпусом, конкорданс, контекст, словоуказатель и
ряд других. Были заданы основные экземпляры классов (335 терминовдескрипторов), проведена их кластеризация. В качестве атрибутов классов
и экземпляров приведены определения терминов-дескрипторов и синонимические отношения между терминами-дескрипторами (например, разметка, аннотация, аннотирование и пр.). Фасеты онтологии заполнялись
отсылками на тексты корпуса, характеризуемые теми или иными терминами-дескрипторами. Это необходимо для того, чтобы формальная онтология могла быть использована для рубрикации документов в корпусе.
3.7. Применение формальных онтологий
Формальные онтологии позволяют структурировать знания по предметным областям, делая их доступными для многократного обращения и
для совместного использования в нескольких системах. Формальные онтологии — это, прежде всего, прикладные ресурсы, входящие в состав
лингвистических процессоров и обеспечивающие автоматическое понимание текста. Они используются в информационном поиске, в вопросноответных системах, в машинном переводе, при автоматической рубрикации и индексировании, при извлечении информации и т. д.
Глава 3. Компьютерное представление значений
77
Почти все из перечисленных выше областей применения формальных
онтологий охватывает семантический процессор OntoSem, ядром которого
является онтологический модуль [Nirenburg, Raskin 2004]. Для обрабатываемого текста строятся представления значений, основанные на данных
морфологического, синтаксического и семантического анализа. Семантический анализ проводится с помощью онтологии, системы семантических
словарей и базы знаний.
В области информационного поиска известен проект CrossMarc, в котором формальные онтологии используются для разделения общего и отраслевого знания, что позволяет сузить поисковые запросы и повысить
качество выдачи. Формальные онтологии успешно используются для автоматической рубрикации и индексирования документов в поисковых машинах. Одной из важных сфер применения онтологий является поиск товаров и услуг. Классическим примером системы, использующей формальную онтологию для поиска по каталогам, является ресурс OntoSeek. Такую задачу решают крупные интернет-сервисы Froogle, Яндекс.Маркет
и т. д.
В вопросно-ответных системах онтологии помогают повысить качество обработки запросов и формирования ответов. К системам такого типа
относится AquaLog, оперирующая онтологическими моделями при анализе текста запросов и генерации ответов. AquaLog подключена к лингвистическому процессору GATE и использует компьютерный словарь
WordNet. Система AquaLog была создана для обработки текстовой информации в Semantic Web. Подобные задачи решаются в проектах Querix,
QASYO и др.
В системах машинного перевода формальные онтологии используются
для подбора переводных эквивалентов и для снятия неоднозначности. Например, система OntoLearn, предназначенная для автоматической генерации таксономий из корпусов текстов, применяется при переводе однословных и многословных терминов (терминосочетаний) с английского
языка на итальянский. В проекте USAS формальная онтология привлекается для семантической аннотации текстов на английском и русском языках с последующим разрешением лексической многозначности. Известен
проект IAMTC (Interlingual Annotation of Multilingual Text Corpora), где
использование формальной онтологии направлено на аннотацию параллельных многоязычных корпусов текстов для извлечения межъязыковых
соответствий.
Формальные онтологии являются обязательным компонентом многих
систем автоматического извлечения информации. Одним из самых известных среди них является многоязычный инструмент InfoMap, где иерархические модели используются в исследовании корпусов текстов наряду со
статистическими методами исследования семантики слов на основе их
78
Часть I. Компоненты
дистрибутивных свойств. Составной частью InfoMap является проект
MuchMore, направленный на структурирование знаний в области медицины.
Онтологический блок является важной частью некоторых инструментов извлечения информации. Например, ресурс OntosMiner позволяет анализировать текст с использованием формальной онтологии, словарей и
системы правил. Близкие задачи решаются в проекте RCO, направленном
на составление содержательного портрета текста, извлечение фактов и
оценку тональности текста.
Достойным примером использования онтологических моделей является проект ONTOLOGIC, целью которого является разработка систем
нормативно-справочной информации, поддержка словарей и классификаторов. В этом случае онтология обеспечивает переработку и хранение информации на основе классификационной схемы.
Необычный аспект применения формальных онтологий отражен в
разработках компании «Интелтек Плюс», в частности, в системе «Семантический контроль текстов редактируемых документов». Целью данной
системы является обнаружение несоответствий между документами и
эталонными знаниями предметной области, хранящимися в онтологии.
Она проверяет информационную корректность текста (например, оценивает правильность расшифровки стенограмм или соответствие документов
нормативам).
3.8. Стандартизация и оценка качества формальных
онтологий
Формальные онтологии должны быть совместимы между собой и с
ресурсами других уровней. Поэтому существуют различные стандарты
для онтологий. Самыми распространенными стандартами являются рекомендации по разработке формальных онтологий инициативы EAGLES.
Существуют также стандарты для языков представления онтологий.
При определении того, насколько созданная формальная онтология
соответствует тем или иным исследовательским целям, используется несколько параметров. Оцениваются структурные, функциональные и пользовательские параметры, например, качество наполнения словаря предметной области, корректность таксономии и включаемых в онтологию
отношений, когнитивные свойства формальной онтологии с позиций
пользователей (воспринимаемость), возможности использования формальной онтологии в различных компьютерных лингвистических приложениях, выбор лучшей формальной онтологии из множества [Hartmann
2005]. Методы оценки могут быть автоматическими, полуавтоматическими и ручными.
Глава 3. Компьютерное представление значений
79
Основные количественные метрики оценки формальных онтологий
основываются на свойствах графа формальной онтологии. Среди них наиболее популярны оценки глубины и ширины графа формальной онтологии, а также метрики Ингве-Миллера, метрики циклов, разнообразия связей, запутанности, ветвистости и некоторые другие. Оценки глубины и
ширины графа формальной онтологии опираются на значения длины путей в графе и числа узлов на уровнях графа. Метрики Ингве-Миллера накладывают ограничение на множество связей у одного понятия, число
которых не должно превышать 7 +/– 2. В основе этих метрик лежит определение степеней вершин графа формальной онтологии, т. е. числа дуг,
для которых та или иная вершина является концевой. В метриках циклов
используются данные о числе циклов в графе формальной онтологии и о
количестве вершин в циклах. Метрики разнообразия связей оценивают
количество различных типов связей в формальной онтологии. Метрики
запутанности опираются на число вершин с множественным наследованием. Меры ветвистости связаны с количеством листьев в графе. Чем ниже
эти оценки, тем лучше структурная организация и тем выше когнитивные
свойства формальной онтологии.
Для проведения процедур количественной оценки качества формальных онтологий используются системы метрик, такие как OntoMetric;
EvaLexon; Natural Language Application metrics; OntoClean и др.; существуют также специализированные инструменты, поддерживающие данные
метрики, в частности, ODEval, OntoManager и пр. Результаты оценки формальных онтологий могут быть использованы не только при подборе ресурса для решения конкретной задачи или при определении наилучшей
модели среди множества подобных, но и для улучшения качества готовой
формальной онтологии, для принятия решений о коррекции ее структуры,
оптимизации множества классов, свойств, отношений и т. п.
4. Компьютерные тезаурусы
4.1. Какие бывают тезаурусы
Тезаурусы (thesauri) — особый класс лексикографических ресурсов,
для которых характерны следующие черты: полнота охвата значений словарного состава языка или какого-либо его сегмента; тематический, или
идеографический способ упорядочения значений слов. Отличительной
особенностью тезаурусов по сравнению с формальными онтологиями является выход в сферу лексических значений, установление связей не только между понятиями, но и между значениями и выражающими их слова-
80
Часть I. Компоненты
ми, а также между самими значениями (регистрация различных семантических отношений внутри словаря).
Первые попытки составить словари идеографического типа предпринимались еще во 2–3 веках н. э. («Ономастикон» Юлия Поллукса, «Амаракоша» Амара Синхи). Классический пример более позднего тезауруса —
«Тезаурус английских слов и выражений» Питера Марка Роже, который
основывается на идее о том, что систематизация смыслов, выражаемых в
языке, возможна преимущественно на основе классификации понятий и
явлений окружающего мира. С момента публикации в середине XIX века
и до настоящего времени Тезаурус Роже выдержал множесто переизданий,
были внесены изменения и дополнения как в состав и иерархию классов,
так и в словник. На первом уровне в синоптической схеме тезауруса версии 1911 г. выделяются шесть простейших классов: Абстрактные отношения, Пространство, Материя, Интеллект, Воля, Эмоции. Эти классы
подразделяются на тысячу подклассов на более низких уровнях иерархии,
таким образом формируя иерархию, в узлах которых находятся группы
слов со значениями разной степени близости (от синонимов до слов из
одной лексико-семантической или тематической группы). Удивительно то,
что ныне этот словарь используется одновременно как традиционный лексикографический ресурс и лексическая база данных (в версиях 1911 и
1987 гг.). Полноправными преемниками традиционных общеязыковых
тезаурусов являются компьютерные словари типа WordNet.
В XX веке появились информационно-поисковые тезаурусы
(information retrieval thesauri), направленные на описание системы терминов предметных областей, содержащие как описание самих терминов и
терминосочетаний, так и связей между ними внутри терминосистемы.
Термины, обеспечивающие отсылку к тому или иному понятию, позволяют использовать тезаурус как инструмент для индексирования документов
в корпусах и базах данных по различным предметным областям и для оптимизации информационного поиска.
При проектировании информационно-поискового тезауруса исследователи обрабатывают документы, рубрикаторы, словари и справочники,
содержащие основную информацию по предметной области, выделяют
терминологические единицы, которые добавляются в словник. Затем формируются словарные статьи и строятся лексико-семантические, систематические и прочие указатели. Все эти компоненты тезауруса регламентируются стандартами, например, в России действует ГОСТ 7.25 — 2001
[Тезаурус… 2001].
Основные понятия предметной области могут иметь не единственный
вариант лексического выражения, и эти варианты могут объединяться в
синонимические ряды и классы условной эквивалентности (в случае, если
различия в значении терминов несущественны для структуры тезауруса).
Глава 3. Компьютерное представление значений
81
В таких случаях из ряда близких по значению терминов выбирается дескриптор (descriptor), использующийся в качестве отсылки на понятие в
тезаурусе. Все остальные термины из группы или класса считаются аскрипторами и служат для обозначения вспомогательных входов в словарь.
Ниже приведены примеры дескрипторной и аскрипторной статей [Тезаурус… 2001].
Дескрипторная статья
АЛГОРИТМИЧЕСКИЕ ЯЗЫКИ (формализм теории алгоритмов
см. ТЕОРИЯ АЛГОРИТМОВ)
с языки алгоритмические
машиноориентированные языки
проблемноориентированные языки
…
Аскрипторные статьи
Языки
иа ФОРМАЛЬНЫЕ ЯЗЫКИ
ЕСТЕСТВЕННЫЕ ЯЗЫКИ
Между терминами в информационно-поисковых тезаурусах устанавливаются различные парадигматические (иерархические и ассоциативные)
отношения. По действующим стандартам допустимы следующие типы
отношений: род — вид, часть — целое, причина — следствие, сырье —
продукт, административная иерархия, процесс — объект, функциональное
сходство, процесс — субъект, свойство — носитель свойства, антонимия.
Информационно-поисковые тезаурусы разработаны для многих областей знаний, среди них есть как многоотраслевые (например, РуТез) и
узкоспециализированные (например, тезаурусы по сельскому хозяйству,
машиностроению, минераловедению, сталям, информационной безопасности и т. д.). Существуют информационные службы, создающие и поддерживающие различные информационно-поисковые тезаурусы, например, известны система LIV (Legislative Indexing Vocabulary) Исследовательской службы Конгресса США; тезаурус AGROVOC Организации по
продовольствию и сельскому хозяйству; EUROVOC служб Европейского
парламента, тезаурусы фонда Гетти и др. В России целая серия тезаурусов
была разработана в ВИНИТИ и ИНИОН РАН.
С развитием вычислительной лингвистики и инженерии знаний
большое распространение приобрели компьютерные тезаурусы — это
электронные хранилища лексических значений, выражаемых в естественном языке.
82
Часть I. Компоненты
4.2. Компьютерные тезаурусы типа WordNet
Самым ярким представителем семейства компьютерных тезаурусов
является словарь WordNet, который был задуман Джорджем Миллером и
коллегами (Кристиана Фелльбаум и др.) как модель ментального лексикона [Fellbaum 1998]. Работы по созданию Принстонского WordNet-словаря
начались в 1985 г. По замыслу разработчиков, новый словарь должен отражать структурно-семантические связи, существующие в языке, и представлять их в виде иерархии понятий. WordNet-словарь состоит из четырех различных блоков, в которых хранятся данные о парадигматических и
синтагматических связях существительных, глаголов, прилагательных и
наречий. Каждый блок представляет собой набор деревьев (лес). Единицей описания в WordNet-словаре является синсет (synset) — синонимический ряд, объединяющий слова с близкими значениями. Синсет снабжен
дефиницией (родовидовым определением) и контекстами употребления
толкуемых слов. Например, так выглядит синсет для значения house (семья, домочадцы):
Синсет: (n) family, household, house, home, menage (a social unit living
together) — семья, социальная группа, характеризуемая совместными
проживанием): «He moved his family to Virginia» (Он перевез свою семью в
Вирджинию); «It was a good Christian household» (Это была хорошая христианская семья); «I waited until the whole house was asleep» (Я дождался
момента, когда все домочадцы заснули); «The teacher asked how many
people made up his home» (Учитель спросил, сколько человек входит в его
семью); «The family refused to accept his will» (Семья отказалась принимать его волю).
Синсеты внутри иерархии связаны между собой разнообразными отношениями. Среди парадигматических отношений регистрируются как
универсальные, так и характерные для той или иной части речи. В блоке
существительных устанавливаются следующие отношения: синонимия,
антонимия, гипонимия, меронимия, деривационные связи и др. Например,
большинство этих отношений отражены в описании значения слова book
(книжное издание): гипонимы textbook (учебник), text (текст), text edition
(учебное пособие), schoolbook (школьный учебник), school text (школьный
текст), мероним signature (подпись), экземпляр Utopia (Утопия), гипероним publication (публикация), дериват booklet (буклет). Для прилагательных ведущую роль играет отношение антонимии: например, high (высокий): антоним low (низкий). В блоке глаголов наблюдаются особые отношения: тропонимия, каузация, лексический вывод. Для глагола sing (петь)
указываются тропонимы solmizate (сольмизировать), troll (напевать),
hymn (славословить), carol (петь веселую песню) и т. п. Глагол frighten
(пугать) связан с глаголами fear (бояться), dread (страшиться) отноше-
Глава 3. Компьютерное представление значений
83
нием каузации. Лексический вывод иллюстрируется парой write (писать)
— spell (писать по буквам). Наряду с парадигматической присутствует и
синтагматическая информация: приводятся типовые рамки валентностей
для целевого слова: например, глагол buy (покупать) характеризуется следующими моделями употребления: Somebody ----s (Некто + глагол наст.
вр. З лица ); Somebody ----s something (Некто + глагол наст. вр. З лица +
нечто); Somebody ----s something from somebody; The children buy the ball
(Дети покупают мяч); The children purchase the ball (Дети приобретают
мяч).
По состоянию на 2012 год лексическая база Принстонского WordNetсловаря составляла свыше 155 тыс. лемм, организованных в 117 659 синсетов.
Наряду с Принстонским WordNet-словарем существует ряд словарей,
разработанных в проекте EuroWordNet (Пиек Воссен, 1996–1999 г.), основной задачей которого было создание словарных ресурсов для отдельных языков в рамках единой структуры [Vossen 1998]. Единство данных
словарей обеспечивается общностью принципов построения, заранее заданным перечнем базовых понятий, входящих в межъязыковой индекс
ILI (Inter-Linguial-Index). По сравнению с Принстонским WordNetсловарем в EuroWordNet существует ряд нововведений: система парадигматических отношений была расширена за счет межчастеречных связей,
также были расширены синтагматические отношения, описаны связи между глаголами и их актантами (падежные роли). В то же время были наложены ограничения на сам словарь, в котором представлены лишь существительные и глаголы.
В состав EuroWordNet первоначально входили лексические базы для
английского, голландского, итальянского, испанского, французского, немецкого, чешского языков. Позже появились новые WordNet-словари (для
венгерского, словенского, сербского, румынского, польского, македонского, хорватского, португальского, шведского, норвежского, латышского,
эстонского, корейского, китайского, санскрита, латыни и других языков) и
целые их семейства, в той или иной мере следующие идеологии
EuroWordNet: BalkaNet (для болгарского, чешского, греческого, румынского, сербского, турецкого языков), Asian WordNet (для хинди, индонезийского, японского, лаосского, монгольского, бирманского, непальского, сингальского, тайского, вьетнамского языков), OpenMultilingual WordNet (для
английского, арабского, малайского, индонезийского, финского, иврита,
японского, персидского, тайского, французского языков). Сейчас ресурсы
типа WordNet охватывают более 70 языков. Некоторые языки представлены сразу в нескольких лексических базах, например, немецкий, французский, польский, румынский, португальский и некоторые другие.
84
Часть I. Компоненты
4.3. Компьютерные тезаурусы для русского языка
4.3.1. Общий обзор
В отечественной лексикографии созданы идеографические словари
мирового уровня с самостоятельными концепциями, используемые в фундаментальной русистике: это «Семантический словарь» Н. Ю. Шведовой
и коллег, «Большой толковый словарь русских существительных» и
«Большой толковый словарь русских глаголов» Л. В. Бабенко, «Идеографический словарь» О. С. Баранова, «Лексическая основа русского языка»
В. В. Морковкина и коллег; «Русский семантический словарь»
Ю. С. Караулова и коллег.
Вместе с тем, существует целый ряд компьютерных тезаурусов для
русского языка. В словаре RussNet (СПбГУ) используетcя универсальная
лексикографическая среда для разработки WordNet-словарей, однако сам
словарь строится по корпусным данным, синсеты формируются и наполняются с учетом тех семантических связей, которые характерны для русского языка [Азарова 2015]. Проект Russian WordNet (СПбГУПС) соответствует принципам Принстонского WordNet-словаря и предполагает построение переводного аналога англоязычной лексической базы. Словарь
Russian WordNet (НГУ) основан на Принстонском WordNet-словаре, корпусах параллельных текстов и двуязычных словарях. Словарь Руслан
(Русский словарь для анализа) был создан в рамках проектов Политекст и
Диалинг как ядро семантического процессора, проводящего разные операции, в том числе и машинный перевод [Леонтьева 2006]. Ресурс RuThes
(УИС РОССИЯ) — это тезаурус, ориентированный на автоматическую
обработку текстов общественно-политической тематики, построенный по
самостоятельным принципам, но сопоставимый со словарями семейства
WordNet [Соловьев, Добров, Иванов, Лукашевич 2006]. Стартовавший в
2013 г. проект YARN (Yet Another RussNet) (УрГУ, НИУ ВШЭ) предполагает разработку открытого WordNet-подобного словаря на основе Викисловаря и корпусных источников [Браславский и др. 2013]. Рассмотрим более
подробно три ресурса из упомянутых выше: RussNet, РуТез и Викисловарь.
4.3.2. RussNet
RussNet — это проект кафедры математической лингвистики СПбГУ,
осуществляемый с 1999 г. по настоящее время под руководством
И. В. Азаровой [Азарова 2015]. Основная задача данного проекта — создать компьютерный тезаурус, совместимый с ресурсами для других языков, но сохраняющий специфику русского языка, обладающего развитой
словоизменительной и словообразовательной системами. По замыслу команды разработчиков RussNet должен использоваться как словарный ком-
Глава 3. Компьютерное представление значений
85
понент в системах информационного поиска, машинного перевода, извлечения информации, оценки тональности и т. п. RussNet совместим с формальной грамматикой AGFL для русского языка и используется в системе
автоматической обработки текстов Rus4IR.
RussNet унаследовал ряд черт Принстонского WordNet-словаря: для
обоих ресурсов характерна иерархическая структура и базовые типы отношений между описываемыми значениями, ориентация на лексическое
ядро словарного состава языков, нетерминологичность, описание устойчивых сочетаний наряду с отдельными словами, синхроничность (отражение современного состояния словаря языков), ограниченность типов
включаемой информации (отсутствие этимологических данных и сведений о произношении).
Отличительными чертами проекта RussNet является то, что данный
словарь создается не по стандартной для WordNet-словарей схеме (от
классификационной схемы понятий к системе значений), а на основе системы значений, выводимых из корпуса текстов. В качестве источников
данных в RussNet привлекались толковые словари русского языка и представительный корпус современного русского языка Бокренок (объемом
свыше 21 млн с/у), формирование синсетов с учетом статистических параметров значений. Так, например, слова в синсетах упорядочиваются по
частоте, этот признак позволяет выделить доминанту синонимического
ряда. Информация в RussNet о словах и значениях является содержательно
более насыщенной, чем в зарубежных аналогах: расширено описание валентной структуры, объединяющее включающее как лексикосемантические, так и морфосинтаксические признаки; классификация
прилагательных производится на основе их сочетаемости с существительными; вводится богатая информация о деривационных связях.
4.3.3. РуТез
РуТез, или Информационно-поисковый тезаурус по общественнополитической тематике для автоматического индексирования, развивается
в НИВЦ МГУ с 1992 г. под руководством Н. В. Лукашевич и Б. В. Доброва
[Соловьев, Добров, Иванов, Лукашевич 2006]. Тезаурус был задуман как
прикладной ресурс для поддержки процедур информационного поиска в
документах.
РуТез включает в себя термины экономики, политики, законодательства, международных отношений, военной сферы, социальной области
и т. д. Словник тезауруса практически полностью охватывает лексику и
терминологию текстов общественно-политической тематики на русском
языке. Иерархию понятий в тезаурусе образуют четыре вида отношений:
гипонимия, меронимия, ассоциативные (симметричные и асимметричные)
связи. Отличительной чертой тезауруса является множественное наследо-
86
Часть I. Компоненты
вание, что допускает наличие нескольких понятий вышестоящих уровней
для понятий нижестоящих уровней (например, понятие Магазин может
рассматриваться как подчиненное одновременно двум понятиям, Здание и
Торговая организация). В связи с решаемыми прикладными задачами РуТез наделен четкой и прозрачной структурой, позволяющей применять
специализированные алгоритмы для процедуры вывода по иерархии тезауруса.
По официальным данным, РуТез содержит свыше 26 000 понятий,
62 000 терминов, 100 000 прямых и 700 000 наследуемых отношений между понятиями. Тезаурус интегрирован в информационную систему УИС
РОССИЯ, применялся для построения аннотаций, при автоматической
рубрикации и других процедурах. Проект динамично развивается параллельно с пополнением корпуса текстов, в тезаурус вводятся новые термины, зафиксированные в документах, осуществляется корректировка связей
в иерархии.
4.3.4. Викисловарь
Развитие вики-ресурсов способствовало появлению компьютерного
словаря нового типа, Викисловаря (Wiktionary). Викисловарь представляет
собой открытый для пополнения многоязычный тезаурус, развиваемый с
2002 г. Всего существует около 170 национальных Викисловарей, в том
числе и для русского языка.
Русский Викисловарь является крупнейшим среди всех Викисловарей, его объем по данным на 2011 г. составляет около 280 тыс. статей. Характерной чертой русского блока Викисловаря является наличие четкой
структуры словарных статей, что обеспечивается широким использованием шаблонов в их построении [Крижановский 2011].
В структуру Викисловаря входит фонетическая, этимологическая,
морфологическая, синтаксическая, семантическая, сочетаемостная информация о слове, а также его переводные эквиваленты. Викисловарь
имеет иерархическую организацию и отражает широкий спектр отношений: синонимия, антонимия, гипонимия, меронимия, паронимия.
Например, для слова вершина в словарной статье приводятся следующие сведения: словоизменительная парадигма с отсылкой к типу
склонения по классификации А. А. Зализняка (сущ., неодуш., ж. р., склонение 1а), морфемное членение (корень -верш-, суффикс: -ин-, окончание а), транскрипция по системе МФА и аудиопример. Филиация лексических
значений дается с указанием на сферу употребления и с типовыми контекстами: (1) Самая верхняя часть объекта, обычно — вытянутого по вертикали ♦ Вершина горы. ♦ Вершина небоскреба… (2) геометр. точка пересечения сторон угла, смежных сторон многоугольника, смежных рёбер многогранника или образующих линий конуса ♦ Вершина угла. ♦ Вершина
Глава 3. Компьютерное представление значений
87
треугольника. (3) матем. то же, что узел; элемент (точка) графа, обозначающий объект любой природы, входящий в множество объектов, описываемое графом ♦ Вершина графа, не связанная ребром ни с одной вершиной, называется изолированной. (4) перен. наивысшее достижение ♦ Эта
книга стала вершиной его творчества. Где возможно, для каждого из значений приводятся синонимы: (1) верхушка, (3) узел, точка, (4) кульминация, апогей, антонимы: (1) низ, основание, (3) ребро, (4) провал, фиаско,
гиперонимы: (1) верх, (2) точка, пересечение, (3) объект, гипонимы: (1)
макушка, (3) изолированная вершина, висячая вершина, лист, холонимы:
(3) граф, меронимы. Присутсвует краткое описание однокоренных слов:
уменьшительно ласкательная форма вершинка, имена собственные Верховный Совет и т. д., фамилии Верховцев, производные существительные
вершок, верховенство, завершение и т. д., прилагательные верхний, верховный, совершенный и т. д., глаголы вершить, совершить, верховодить
и т. д., наречия вверх, сверху, поверхностно и т. д. В поле этимологии описано происхождение слова с опорой на словарь М. Фасмера. Отдельным
списком приводятся переводы (например, верхняя часть: англ. top, peak,
summit, армян. gagat’, белорус. вяршыня ж., болг. връх м., исп. cima ж.,
cumbre ж.; cúspide ж., итал. cima ж., vetta ж., sommità ж. и т. д.).
Викисловарь и Википедия являются родственными ресурсами. Их
сходство заключается в опоре на систему категорий, в наличии внутренних ссылок между статьями и в использовании интервики. В отличие от
Википедии Викисловарь пополняется не за счет привлечения авторитетных источников информации, а в результате лексикографической работы
редакторов. В Викисловарь не входят энциклопедические данные, однако
в нем присутствуют обширные сведения об употреблении слов в различных контекстах, паремии, спорные варианты написания или произношения и т. д.
Викисловари востребованы не только как базовые лексикографические описания, но и как прикладные ресурсы, задействованные в решении
задач автоматической обработки письменных и устных текстов.
4.4. Надстройки к компьютерным тезаурусам
Для многих компьютерных тезаурусов разработаны дополняющие их
модули. Так, для WordNet-словарей создана целая система надстроек с
различными функциями. Надстройка WordNet::Similarity позволяет определять расстояния между синсетами с учетом длины пути между узлами
иерархии, силы родо-видовых отношений, взаимного расположения синсетов в кустах дерева, глубины иерархии, связей между словами в дефинициях синсетов и т. п. [Patwardhan, Pedersen 2006]. В этой надстройке
реализовано свыше 10 мер семантической близости, среди них противо-
88
Часть I. Компоненты
поставляются меры сходства значений и меры их соотнесенности. Меры
сходства, определяемые на основе длины пути между синсетами в иерархии, — это, например, path, lch (Leacock & Chodorow), wup (Wu & Palmer).
Меры сходства, определяемые на основе информационной насыщенности
и основанные на корпусных данных о специфичности значений — это,
например, res (Resnik), lin (Lin), jcn (Jiang & Conrath). Также есть несколько мер соотнесенности: это основанная на длине пути мера hso (Hirst & StOnge); а также меры, основанные на анализе корпуса дефиниций lesk
(Banerjee & Pedersen), vector (Patwardhan). Помимо перечисленных выше
мер существуют и их модификации, внедренные в WordNet::Similarity.
Заметим, что подобное приложение есть и у компьютерной версии Тезауруса Роже [Jarmasz, Szpakowicz 2004].
Модуль WordNet::SenseRelate позволяет автоматически разрешать лексическую неоднозначность для всех слов в тексте (режим AllWords) либо же
только для целевых слов (режим TargetWords) [Patwardhan, Banerjee,
Pedersen 2007]. Для этого в обрабатываемый текст вводится семантическая
разметка с точки зрения значений, зарегистрированных в WordNet. Выбор
значения для многозначных слов производится с учетом слов, входящих в
его контекстное окружение. Близость значений соседствующих в контексте слов вычисляется с помощью мер WordNet::Similarity. Качество работы модуля WordNet::SenseRelate было признано приемлемым на соревнованиях семантических парсеров SENSEVAL.
Модуль SenseClusters предназначен для автоматического извлечения
значений слов и их семантических связей на основе корпуса текстов
[Pedersen 2007]. Основная процедура, выполняемая в SenseClusters, заключается в формировании контекстных векторов для целевых слов и их
последующей кластеризации. В модуле реализованы несколько статистических алгоритмов (построение матриц совместной встречаемости, сингулярная декомпозиция матриц, векторизация, кластеризация методом Ксредних, латентно-семантический анализ и некоторые другие.) Сформированные таким образом кластеры позволяют автоматически определять
отдельные значения слов, устанавливать отношения синонимии, антонимии между словами, назначать метки кластеров для близких по значению
слов.
Известен также проект eXtended WordNet, целью которого является
формализация дефиниций при синсетах для облегчения использования
тезауруса в прикладных задачах. Это достигается в результате синтаксического анализа и составления логических форм для дефиниций, которые
тем самым становятся доступны для многих систем автоматической обработки текстовой информации.
Глава 3. Компьютерное представление значений
89
4.5. Прикладное использование компьютерных
тезаурусов
Роль тезаурусов в прикладной лингвистике очень велика. Они применяются для оптимизации информационного поиска, в вопросно-ответных
системах, при автоматическом индексировании и рубрицировании и т. д.
[Соловьев, Добров, Иванов, Лукашевич 2006].
Тезаурусная поддержка информационного поиска заключается в процедурах уточнения и расширения запросов. В частности, при уточнении
запросов с помощью РуТез выбирается более точный термин из ряда, например, строительство — дорожное строительство (автодорожное
строительство, дорожно-строительные работы, строительство дорог
и т. д.), что позволяет повысить точность выдачи. Тот же эффект может
быть достигнут при расширении запроса синонимами или терминами иерархических отношений, например, миграция — беженцы, вынужденные
переселенцы и т. д. В случае WordNet-словарей с теми же целями применялся поиск не по словам, а по значениям синсетов, а также расширение
запросов элементами синсетов. WordNet-словари могут найти применение
в многоязычном поиске, как например это было сделано в проекте
CINDOR.
Сведения из тезаурусов могут быть использованы в вопросноответных системах, тогда данные по связям между словами в синсетах и
внутри иерархии привлекаются для семантико-синтаксических преобразований запросов к базе знаний, например, для поиска замен в том случае,
если исходный текст вопроса содержит неопознаваемый базой лексический элемент.
Индексация документов с помощью тезаурусов может выполняться
несколькими путями. В частности, при индексировании полнотекстовой
базы данных с привлечением тезауруса EUROVOC сначала производится
ручное индексирование, затем слова в документах связываются с дескрипторами тезауруса на основании значений статистических критериев и получают веса. После этого производится автоматическое индексирование, в
ходе которого для всех слов анализируемых текстов проводится поиск
подходящих дескрипторов. При обнаружении совпадений слово увеличивает вес дескриптора применительно к данному тексту на логарифм веса,
назначенного при ручной обработке.
Тезаурусы являются ключевым звеном в системах автоматического
рубрицирования. Например, тезаурус РуТез используется для рубрикации
текстов различной тематики. РуТез рассматривается как хранилище знаний по предметной области, с которым стыкуются подобранные для конкретной задачи рубрикаторы. Связь между рубрикаторами и тезаурусом
осуществляется за счет ограниченного множества опорных терминов,
90
Часть I. Компоненты
рубрики для других терминов определяются по связям в тезаурусе. Важной особенностью технологии рубрикации с помощью РуТез является
использование тематического представления текстов, в котором документу
ставится система тематических узлов, объединяющих близкие по содержанию термины, встречающиеся в документе. Тематическое представление также является основной для других операций, например, для автоматического аннотирования с помощью РуТез.
5. Настоящее и будущее компьютерной
семантики
В данной главе мы рассказали о том, как выглядит, как строится и как
работает «сердце» лингвистического процессора, те структуры, которые
хранят значения слов и связи между ними в словарном блоке — а именно
сети, графы, фреймы, сценарии, онтологии и тезаурусы.
На основе семантических представлений работают разнообразные
методы, модели и процедуры компьютерной семантики, открывающие
доступ к значениям слов внутри текстов. Среди них анализ и генерация
смыслов в системах автоматического понимания и машинного перевода
[Леонтьева 2006], логические модели семантики [Андреев, Митрофанова,
Соколов 2014; Van Eijck, Unger 2010], экспертные системы [Муромцев
2005], семантическая разметка корпусов текстов, автоматическое разрешение лексико-семантической неоднозначности [Agirre, Edmonds 2006] и
выделение конструкций [Митрофанова, Ляшевская, Грачкова, Шиморина,
Шурыгина, Романов 2012], композиционная дистрибутивная семантика
[Baroni, Lenci 2010], тематическое моделирование [Blei 2012].
Но чтобы компьютер анализировал все оттенки реальности как дроид
C-3PO из «Звездных войн», необходимы новые открытия в области компьютерной семантики. Хочется верить, что их совершит кто-нибудь из
читателей этой книги.
Литература
Основы компьютерного анализа значения были заложены в исследованиях ряда зарубежных ученых, таких как Марвин Минский, Джордж
Миллер, Джон Сова, Чарльз Филлмор, Роджер Шенк и др. [Минский 1979;
Филлмор 1988; Шенк 1980; Sowa 2000]. Существенный вклад в разработку компьютерных моделей семантики внесли отечественные исследователи: И. В. Азарова, Ю. Д. Апресян, А. К. Жолковский, Н. Н. Леонтьева,
Ю. С. Мартемьянов, И. А. Мельчук, В. Ш. Рубашкин, Г. С. Цейтин,
Глава 3. Компьютерное представление значений
91
З. М. Шаляпина и др. Определяющими для современной российской лингвистики являются модель синонимических преобразований «Смысл
<=>Текст» И. А. Мельчука, модель гибкого понимания Н. Н. Леонтьевой и
некоторые другие [Азарова 2015, Леонтьева 2006; Мельчук 1974, 1999;
Рубашкин 1989; Цейтин 1985 и т. д.].
Теоретический фундамент и практические руководства в сфере разработки формальных онтологий и компьютерных тезаурусов были созданы такими исследователями, как В. Ш. Рубашкин, Н. В. Лукашевич,
Б. В. Добров, В. А. Лапшин, В. Раскин, С. Ниренбург, А. Гомез-Перез,
Э. Хови, Дж. Сова и т. д. [Рубашкин 2013; Соловьев, Добров, Иванов, Лукашевич 2006; Gómez-Pérez, Fernández-López, Corcho 2004; Hovy 2002;
Nirenburg, Raskin 2004; Sowa 2000].
Азарова И. В. RussNet как база представления лексического блока в системах автоматизированного анализа текстов. СПб., 2015.
Азарова И. В. Сетевое представление лингвистических данных // Прикладное языкознание. СПб., 1996.
Азарова И. В., Герд А. С., Митрофанова О. А. Словари-разговорники как объект
лексикографии // Очерки научно-технической лексикографии. СПб., 2002.
Андреев А. В., Митрофанова О. А., Соколов К. В. Введение в формальную семантику. СПб., 2014.
Браславский П. И., Мухин М. Ю., Ляшевская О. Н., Бонч-Осмоловская А. А., Крижановский А. А., Егоров П. YARN: начало // Компьютерная лингвистика и
интеллектуальные технологии: Труды международной конференции «Диалог–2013». М., 2013.
Виноградова Н. В., Митрофанова О. А. Формальная онтология как инструмент
систематизации данных в русскоязычном корпусе текстов по корпусной лингвистике // Труды международной конференции «Корпусная лингвистика —
2008». СПб., 2008.
Константинова Н. С., Митрофанова О. А. Онтологии как системы хранения знаний [Аналитический обзор] // http://www.ict.edu.ru/ft/005706/68352e2-st08.pdf
Крижановский А. Оценка использования корпусов и электронных библиотек в
Русском Викисловаре // Труды международной конференции «Корпусная
лингвистика — 2011». СПб., 2011.
Леонтьева Н. Н. Автоматическое понимание текстов: Системы, модели, ресурсы.
М., 2006.
Лукашевич Н. В. Тезаурусы в задачах информационного поиска. М., 2011.
Мельчук И. А. Опыт теории лингвистических моделей «Смысл <=>Текст». М.,
1974, 1999.
Митрофанова О. А., Ляшевская О. Н., Грачкова М. А., Шиморина А. С., Шурыгина А. С., Романов С. В. Эксперименты по автоматическому разрешению лексико-семантической неоднозначности и выделению конструкций (на материале Национального корпуса русского языка // Структурная и прикладная
лингвистика. Вып. 9. СПб., 2012.
Минский М. Фреймы для представления знаний. М., 1979.
92
Часть I. Компоненты
Муромцев Д. И. Введение в технологию экспертных систем. СПб., 2005.
Рубашкин В. Ш. Представление и анализ смысла в интеллектуальных информационных системах. М., 1989.
Рубашкин В. Ш. Онтологическая семантика. Знания. Онтологии. Онтологически
ориентированные методы информационного анализа текста. М., 2013.
Соловьев В. Д., Добров Б. В., Иванов В. В., Лукашевич Н. В. Онтологии и тезаурусы. Казань, Москва, 2006.
Тезаурус информационно-поисковый одноязычный: Правила разработки, структура, состав и форма представления. Система стандартов по информации, библиотечному и издательскому делу. ГОСТ 7.25–2001. М., 2001.
Филлмор Ч. Фреймы и семантика понимания // Новое в зарубежной лингвистике.
Вып. XII. Когнитивные аспекты языка. М., 1988.
Цейтин Г. С. Программирование на ассоциативных сетях // ЭВМ в проектировании и производстве. Л., 1985.
Шенк Р. Обработка концептуальной информации. М., 1980.
Agirre E., Edmonds Ph. (eds.). Word Sense Disambiguation: Algorithms and
Applications. Springer, 2006.
Baroni M., Lenci A. Distributional Memory: A General Framework for Corpus-Based
Semantics // Computational Linguistics. V. 36(4). 2010.
Blei D. Introduction to Probabilistic Topic Models // Communications of the
ACM. 2012.
Brachman R. J.; Schmolze J. G. An Overview of the KL-ONE Knowledge
Representation System // Cognitive Science. 1985. V. 9 (2).
Fellbaum C. (ed.) WordNet: An Electronic Lexical Database. MIT Press, 1998.
Gómez-Pérez A., Fernández-López M., Corcho O. Ontological Engineering: With
Examples from the Areas of Knowledge Management, E-commerce and the
Semantic Web. Springer, 2004.
Gruber Th. Ontology // Encyclopedia of Database Systems. Springer-Verlag, 2009.
Hartmann J. et al. Methods for ontology evaluation. Knowledge Web Deliverable
D1.2.3, 2005. http://www.starlab.vub.ac.be/research/projects/knowledgeweb /
KWeb-Del-1.2.3-Revised-v1.3.1.pdf
Hovy E. H. Comparing Sets of Semantic Relations in Ontologies // R. Green,
C. A. Bean, S. H. Myaeng (eds.), The Semantics of Relationships: An
Interdisciplinary Perspective. Dordrecht: Kluwer. 2002.
Jarmasz M., Szpakowicz S. Roget's Thesaurus and Semantic Similarity // N. Nicolov,
K. Bontcheva, G. Angelova, R. Mitkov (eds.) Recent Advances in Natural
Language Processing III: Selected Papers from RANLP 2003. Current Issues in
Linguistic Theory. 2004. V. 260.
Nirenburg S., Raskin V. Ontological Semantics. Cambridge, MA, 2004.
Noy N., McGuinness D. L. Ontology Development 101: A Guide to Creating Your First
Ontology. // Stanford Knowledge Systems Laboratory Technical Report KSL-01–
05 and Stanford Medical Informatics Technical Report SMI-2001–0880, March
2001.
Palmer M., Gildea D., Kingsbury P. The Proposition Bank: An Annotated Corpus of
Semantic Roles // Computational Linguistics. 2005. V. 31(1).
Pantel P., Pennacchiotti M. Automatically Harvesting and Ontologizing Semantic
Relations // Paul Buitelaar and Philipp Cimiano (Eds.) Ontology Learning and
Глава 3. Компьютерное представление значений
93
Population: Bridging the Gap between Text and Knowledge — Selected
Contributions to Ontology Learning and Population from Text. ISBN: 978–158603–818–2. IOS Press. 2008.
Patwardhan S., Pedersen T. Using WordNet-based Context Vectors to Estimate the
Semantic Relatedness of Concepts // Proceedings of the EACL 2006 Workshop
Making Sense of Sense — Bringing Computational Linguistics and
Psycholinguistics Together. Trento, 2006.
Patwardhan S., Banerjee S., Pedersen T. UMND1: Unsupervised Word Sense
Disambiguation Using Contextual Semantic Relatedness // Proceedings of
SemEval, 2007: 4th International Workshop on Semantic Evaluations, Prague,
Czech Republic, 2007.
Pedersen T. UMND2: SenseClusters Applied to the Sense Induction Task of Senseval-4
// Proceedings of SemEval, 2007: 4th International Workshop on Semantic
Evaluations, Prague, Czech Republic, 2007.
Quillian M. R. Semantic memory // Semantic Information Processing. MIT Press,
Cambridge, Massachusetts, 1968.
Shapiro S. C., Rapaport W. J. SNePS Considered as a Fully Intensional Propositional
Semantic Network // The Knowledge Frontier: Essays in the Representation of
Knowledge / N. Cercone, G. McCalla (eds.). NY, 1987.
Singhal A. Introducing the Knowledge Graph: Things, Not Strings // Official Blog (of
Google). May 18, 2012.
Sowa J. F. Knowledge Representation: Logical, Philosophical, and Computational
Foundations. Brooks/Cole, Pacific Grove, CA, 2000.
Van Eijck J., Unger C. Computational Semantics with Functional Programming.
Cambridge, 2010.
Vossen P. EuroWordNet: A Multilingual Database with Lexical Semantic Networks.
Springer, 1998.
Электронные ресурсы
Сети, графы, фреймы
KL-ONE http://en.wikipedia.org/wiki/KL-ONE
SNеPS http://www.cse.buffalo.edu/sneps/Downloads/
Conceptual Graphs http://conceptualgraphs.org/
FrameNet https://framenet.icsi.berkeley.edu/fndrupal/
PropBank http://verbs.colorado.edu/~mpalmer/projects/ace.html
NomBank http://nlp.cs.nyu.edu/meyers/ NomBank.html
Формальные онтологии и использующие их ресурсы
CIDOC CRM http://www.cidoc-crm.org/
CYC http://www.opencyc.org/
DOLCE http://www.loa-cnr.it/DOLCE.html
InfoMap http://infomap-nlp.sourceforge.net/
MikroKosmos http://www.softpedia.com/get/Others/Home-Education/MikrokosmosOntology-Viewer.shtml
94
Часть I. Компоненты
MuchMore http://muchmore.dfki.de/
NAICS http://www.virtualpet.com/industry/naics/naics.htm
OMEGA http://omega.isi.edu/
OntoBank http://omega.isi.edu/doc/ontobank.html
OntoLearn http://ontolearn.org/
ONTOLOGIC http://www.intertech.ru/Production/products.asp
OntoSelect http://views.dfki.de/ontologies/
OntosMiner http://www.ontos.com/products/ontosminer/
Protégé Ontology Library
http://protegewiki.stanford.edu/wiki/Protege_Ontology_Library
RCO http://www.rco.ru/
SENSUS http://www.isi.edu/natural-language/projects/SENSUS-demo.html
SNOMED CT http://www.ihtsdo.org/snomed-ct
SUMO http://www.ontologyportal.org/
TOVE http://www.eil.utoronto.ca/theory/enterprise-modelling/tove/
UNSPSC http://www.unspsc.org/
USAS http://ucrel.lancs.ac.uk/usas/
WonderWeb http://wonderweb.semanticweb.org/deliverables/D17.shtml
Интелтек Плюс http://www.inteltec.ru/develop/semcontrol.shtml
и пр.
Онторедакторы
Fluent editor http://www.cognitum.eu/semantics/FluentEditor/Default.aspx
InTez http://www.inttez.ru/
OilEd http://oiled.man.ac.uk/
OilEd http://oiled.man.ac.uk/
OntoEdit http://ontoserver.aifb.unikarlsruhe.de/ontoedit/
Ontolingua http://www-ksl.stanford.edu
OntoSaurus http://www.isi.edu/isd/ontosaurus.html
Protégé http://protege.stanford.edu/
WebODE http://webode.dia.fi.upm.es/webODE/
WebOnto http://kmi.open.ac.uk/projects/webonto/
и пр.
Проекты по созданию тезаурусов WordNet для разных языков
http://www.globalwordnet.org/gwa/wordnet_table.htm
Проекты по созданию тезаурусов WordNet для русского языка
проект RussNet http://www.phil.pu.ru/depts/12/RN/index_ru.shtml
проект Russian WordNet www.pgups.ru/WebWN/wordnet.uix
проект Russian WordNet http://wordnet.ru/
проект РуТез http://www.cir.ru/
проект YARN http://russianword.net/
Тезаурусы, семантические сети и программы для их разработки
http://rhymes.amlab.ru/thesaurus.htm
Global WN Association http://www.globalwordnet.org/
Глава 3. Компьютерное представление значений
95
EuroWN http://www.illc.uva.nl/EuroWordNet/
Princeton WN http://wordnet.princeton.edu/
Roget's
Thesaurus
Electronic
Lexical
Knowledge
Base
(ELKB)
http://rogets.site.uottawa.ca/
Roget's Thesaurus http://www.roget.org/index.htm
SenseClusters http://maraca.d.umn.edu/cgi-bin/SC-cgi/index.cgi
Senseval http://www.senseval.org/
WordNet::SenseRelate::AllWords http://maraca.d.umn.edu/allwords/allwords.html
WordNet::Similarity http://wn-similarity.sourceforge.net/
WordNet Bibliography http://mira.csci.unt.edu/~wordnet/
EAGLES recommendations
Higher Level Ontologies // http://www.ilc.cnr.it/EAGLES96/rep2/node23.html
WordNets // http://www.ilc.cnr.it/EAGLES96/rep2/node20.html
Глава 4
Распознавание и синтез речи
Автор: Татьяна Юрьевна Шерстинова, выпускница 1991 года.
Работала старшим научным сотрудником лаборатории экспериментальной фонетики имени Л.В. Щербы СПбГУ. Преподает
на кафедре русского языка филологического факультета СПбГУ
1. Навстречу эпохе говорящих машин
В последнее время, вольно или невольно, мы все чаще становимся
пользователями устройств, использующих речевые модули. Роботы звонят
нам по телефону, напоминая о назначенной встрече или о необходимости
произвести платеж, отвечают нам, когда мы пытаемся дозвониться в какую-нибудь крупную компанию или центр обслуживания. Компьютеры,
мобильные приложения, профессиональные и бытовые приборы выполняют наши речевые команды, «голосом» сообщают нам нужные сведения.
Другие устройства, например, автомобильные навигаторы, берут на себя
руководство нашими действиями.
Конечно, это еще не полноценные для человека «собеседники», но
качество речи и уровень «интеллекта» говорящих устройств с каждым
годом все повышаются, расширяется область их применения. Компанииразработчики соревнуются друг с другом в том, чем бы еще удивить искушенного пользователя. А так как именно речевая коммуникация является наиболее естественной и привычной для человека, полноценный голосовой интерфейс становится востребованным атрибутом любого современного компьютера или смартфона. Без преувеличения можно сказать,
что синтез и распознавание речи относятся к наиболее активно развивающимся технологиям начала XXI века, и мы праве ожидать от них новых
свершений уже в самом обозримом будущем.
Приложения, в которых используются синтез и распознавание речи,
чрезвычайно разнообразны. Это многочисленные компьютерные программы, применяющие голосовой ввод и вывод информации, телекоммуникационные информационно-справочные системы и колл-центры, автоматически обрабатывающие входящие звонки и предоставляющие по запросу пользователя необходимые сведения, службы информирования на
транспорте, в общественных местах, по телефону, разнообразные диало-
Глава 4. Распознавание и синтез речи
97
говые системы. Сюда же можно отнести фонетические тренажеры, используемые для постановки произношения в обучении иностранному языку, при исправлении дефектов речи или при восстановлении речевых навыков, а также устройства, помогающие людям с ограниченными физическими возможностями общаться не только с компьютером, но и с внешним
миром. Отдельной проблемой является идентификация человека по голосу
или подтверждение личности говорящего по звукозаписи его речи.
С технологической точки зрения распознавание и синтез речи представляют собой две независимые проблемы. Распознавание речи необходимо для перевода голосового сообщения в текст. Интерпретация этого
текста позволяет компьютеру или другому электронному устройству «понять» то, что ему хочет сказать человек. Синтез речи решает обратную
задачу. Его цель состоит в порождении речеподобного звукового сигнала
по текстовой записи. Это необходимо для того, чтобы электронное устройство смогло «отвечать голосом, читать вслух и говорить». В современных приложениях распознавание и синтез речи обычно реализованы в
виде двух независимых модулей. Синтез и распознавание речи имеют разную историю, используют разные подходы, но в то же время обладают и
рядом общих черт.
В речевых технологиях тесно переплелись методы и понятия нескольких прикладных и научных дисциплин — общей и прикладной лингвистики, ее основных уровней (фонетики/фонологии, лексики, грамматики, семантики, прагматики), акустики, электротехники, логики, теории
информации, теории вероятностей, математической и корпусной лингвистики и даже психологии. Эта область постоянно развивается, ежегодно
предлагаются новые методы, запускаются новые проекты, а на коммерческом рынке появляются все новые устройства, функциональность которых
еще совсем недавно могла быть отнесена лишь к области фантастики.
Эффективность и результат взаимодействия человека и автоматизированного устройства в каждом конкретном случае в большой степени зависят
от качества заложенных в таких приложениях «речевых» модулей.
В этой главе мы кратко опишем основные методы, применяемые в современных речевых технологиях, и, не погружаясь в технические тонкости, постараемся дать общее представление о типах, устройстве и принципах работы современных систем распознавания и синтеза речи.
2. Синтез речи
Основная задача синтеза речи состоит в том, чтобы передавать человеку голосовое сообщение исключительно посредством устройства или
98
Часть I. Компоненты
механизма, без участия оператора. Наиболее простую модель синтезатора
речи можно слышать в вагонах метрополитена:
Станция «Гостиный Двор». <…>. Осторожно, двери закрываются! Следующая станция — «Василеостровская».
На каждой остановке названия меняются, но общая структура сообщения остается неизменной. Для реализации такого синтеза необходимы
несколько шаблонных фраз («Осторожно, двери закрываются!»), фрагменты фраз («Станция», «Следующая станция») и перечень всех станций
метрополитена. Сначала все эти элементы должен под запись зачитать
диктор, после чего они хранятся в виде оцифрованного сигнала в специальной базе данных. С помощью несложной программы и данных «бортового компьютера» электропоезда, знающем, на какой станции находится
поезд, информационные сообщения формируются автоматически посредством «склейки» (конкатенации) этих речевых фрагментов.
Ученые и изобретатели издавна задумывались нам тем, как научить
машину «говорить». Первые попытки создания «говорящих машин» относятся к концу XVIII века. Устройства, разработанные В. Кранценштейном
в России и В. фон Кемпеленом в Германии, представляли собой механические синтезаторы, имитирующие работу речевого тракта человека и
умеющие «произносить» несколько отдельных звуков. Первым электронным синтезатором стал вокодер Voder, разработанный американским инженером Х. Дадли, который был представлен общественности в 1939 г.
Вокодер использовался для получения спектральных характеристик исходного речевого сигнала, по которым этот сигнал мог быть воссоздан
(ресинтезирован). Позднее развитие вычислительных машин и технологий
позволило перейти от аналоговых сигналов к цифровым и использовать
для синтеза речи численные методы анализа и преобразования звука, которые открывают фактически неограниченные возможности для модификации свойств выходного синтезированного сообщения.
Основным критерием качества систем синтеза речи является ее разборчивость, что означает, что синтезируемая речь должна быть абсолютно понятна на слух. Другим важным требованием, выдвигаемым для многих систем синтеза, является естественность генерируемой речи, то есть
искусственная речь в идеале не должна отличаться на слух от нормативной человеческой речи (например, от речи дикторов телевидения или радио).
По своему назначению, системы синтеза речи относятся к одной из
двух групп: 1) предметно-ориентированные приложения и 2) системы
синтеза «от текста к речи». Последние часто называются TTSсинтезаторы (от англ. Text-To-Speech). Предметно-ориентированная группа приложений использует ограниченный словарь и заранее заданные
Глава 4. Распознавание и синтез речи
99
шаблоны порождаемых сообщений, а задачей TTS-систем является озвучивание любого текста по его письменному представлению. Естественно,
что вторая задача является технически намного более сложной.
2.1. Методы синтеза
2.1.1. Компилятивный синтез речи
Синтез речи, при котором склеиваются предварительно подготовленные цифровые звукозаписи (как, например, при объявлении станций метрополитена), называется компилятивным (компиляционным) синтезом, или синтезом на основе конкатенации. Для него необходим заранее
созданный корпус звукозаписей, содержащий все элементы, необходимые
для синтезируемых фраз.
Единицами словаря речевой базы данных могут выступать элементы
разного уровня — целые фразы, словосочетания, отдельные слова, слоги,
звуки и даже фрагменты звуков. Как правило, чем более крупные фрагменты используются для склейки, тем естественней звучит «смонтированный» результат. Поэтому именно этот подход используется при синтезе
высказываний по шаблонам с ограниченным набором переменных в предметно-ориентированных системах. Например, так формируются информационные сообщения в аэропортах и на вокзалах (Пригородный поезд до
станции Любань подан к пятой платформе. Время отправления: четырнадцать часов, двадцать минут), в электронной очереди (Клиент с номером сто восемьдесят три подойдите ко второму окну), в службе «точного времени» (Точное время — десять часов девять минут пятнадцать
секунд) и т. п.
Однако для синтезатора, предназначенного для озвучивания произвольного текста, отдельное слово или же сочетание слов уже не могут
служить основными элементами компиляции. Это связано с тем, что невозможно подготовить речевую базу для неограниченного словаря. Кроме
того, начитанные в изолированном произнесении слова будут звучать неестественно при их склейке в единую фразу, так как в связной речи существуют законы оформления интонации, модифицирующие слова в зависимости от их позиции во фразе.
Поэтому для систем синтеза произвольного текста используются более мелкие единицы: слоги, звуки (аллофоны), а чаще всего — дифоны.
Дифон — это речевой фрагмент, начинающийся в середине одного звука и
заканчивающийся в середине звука, следующего за ним. Таким образом, в
центре дифона находится переходный участок от одного аллофона ко второму. При дифонном синтезе без искажений передаются переходные (коартикуляционные) сегменты звуков. Однако в местах дифонных соединений, которые в данной технологии приходятся на центральные части
100
Часть I. Компоненты
склеиваемых аллофонов, неизбежно возникают перепады формантных
частот, которые вносят помехи в синтезируемый сигнал.
Для придания склеиваемой последовательности дифонов большей
«естественности», осуществляется выборочная интонационная и темпоральная модификация сегментов порождаемого высказывания согласно
просодическим моделям, принятым в языке (в частности, особым образом
выделяется фразовый акцент, концы фраз оформляются с «понижающей»
интонацией, при реализации вопроса добавляется «вопросительная» интонация и т. п.).
В конкатенативных синтезаторах речи последнего поколения используется так называемый селективный метод, или технология «выбора
образца» (от англ. unit selection). Эта методика основана на выборе оптимальных (наиболее похожих по условиям реализации) единиц из речевой
базы данных, являющейся источником элементов синтеза. Звуковой материал в таком корпусе сегментируется и описывается на многих уровнях —
звуковом, дифонном, слоговом, морфемном, словесном, синтагматическом, фразовом. В процессе синтеза происходит поиск единиц разного
уровня, наиболее близких к целевым как по составу, так и по позиции, а
также их «готовых» сочетаний, вплоть до целых фраз. Важным критерием
для отбора единиц и их последовательностей при данном подходе является сведение к минимуму потребности в дальнейшей модификации синтезируемого сообщения. Практика показывает, что при использовании
больших (до нескольких десятков часов звучания) и правильно составленных речевых баз данных (в идеале — содержащих как частотные фразы,
так и их наиболее частотные элементы в типовых позициях), подобные
системы могут показывать достаточно высокое качество генерируемой
речи.
В «ассортименте» разработчиков обычно представлен ограниченный
набор голосов нескольких дикторов. Каждому набору дается уникальное
«человеческое» имя — Алена, Ольга, Владимир, Николай и т. п. Существенное ограничение конкатенативного метода синтеза состоит в привязке
синтезированного голоса к тембру диктора и стилю его индивидуального
произношения. Поэтому синтезированная на их основе речь, как правило,
звучит однообразно и не всегда правильно с интонационной точки зрения.
Но поскольку компилятивный синтез в настоящее время показывает более
высокий уровень естественности речи по сравнению с другими методами,
многие разработчики придерживаются именно этого подхода.
2.1.2. Синтез речи по правилам
Альтернативный подход к порождению синтезированной речи называется параметрическим синтезом, или «синтезом по правилам». Это
«синтез» речи в бытовом понимании этого термина, то есть порождение
Глава 4. Распознавание и синтез речи
101
нового звукового сигнала «из ничего», примерно так, как порождается
электронным синтезатором звук, имитирующий разные музыкальные инструменты. Здесь выделяются следующие основные технологии: формантный, статистический, артикуляционный и некоторые другие.
В основе формантного синтеза лежат данные об акустических свойствах отдельных звуков и их сочетаний, которые формализуются в наборе
правил. Считается, что для получения относительно естественной речи
необходимо привлечение порядка 60-ти параметров, связанных с передаточной функцией речевого тракта, которые могут влиять на частоту, амплитуду и ширину формант отдельных звуков. Дополнительно необходима
формализация параметров, характеризующих динамическое изменение
свойств голосовых и шумовых источников звука [Кодзасов, Кривнова,
2001].
В процессе работы синтезатора на основе акустических параметров
генерируются цифровые сигналы, имитирующие результат работы шумовых и периодических источников звука. Затем эти сигналы модифицируются с помощью набора формантных фильтров, преобразующих речевой
спектр в характерную для синтезируемого звука спектральную картину.
Очевидно, что создание формантного синтезатора требует значительной
подготовительной работы.
Синтезированную речь, порождаемую современными формантными
синтезаторами, трудно спутать с человеческой речью: она имеет выраженный «роботоподобный» характер и часто сопровождается «механическими» артефактами, которые воспринимаются на слух как жужжание или
гудение. Тем не менее, разборчивость речи, синтезированной по формантному методу, достаточно высока. Очевидным преимуществом формантных синтезаторов является тот факт, что с их помощью можно генерировать любые голоса и порождать искусственную речь разного темпа и манеры произнесения, а также разнообразить синтезированную речь эмоциональными оттенками и мелодическими нюансами (правила для которых, разумеется, необходимо предварительно описать). Кроме того, у
форматных синтезаторов относительно небольшой цифровой размер, поскольку они не обременены никакими базами данных. Поэтому именно
они часто используются в тех устройствах, объем памяти которых ограничен: в мобильных приложениях, навигаторах, бытовых приборах и пр.
Статистический параметрический синтез речи, основанный на использовании скрытых Марковских моделей, иногда называется HMMсинтез. Что такое скрытые Марковские модели, подробно будет показано
ниже — в разделе, посвященном распознаванию речи. Суть этого вида
синтеза состоит в том, что система «обучается» на естественной речи диктора и при порождении синтезируемой фразы пытается воспроизвести
(клонировать) акустические параметры (например, общий интонационный
102
Часть I. Компоненты
контур, конкретные значения частоты основного тона, тембральные характеристики), свойственные естественной фразе подобного типа. Однако
«механического» звучания, характерного для формантного синтеза, не
удается избежать и здесь.
Описанные выше виды синтеза базируются на моделировании важных для восприятия акустических характеристик речевой волны. Поэтому
они относятся к категории акустического синтеза, в отличие от систем,
использующих артикуляционный подход.
Артикуляционный (артикуляторный) синтез исторически является
первым видом синтеза, так как именно такой подход был реализован в
механических «говорящих» машинах. В этом случае синтез речевого сигнала основывается на моделировании процесса речеобразования с учетом
сведений об артикуляции звуков. Акустические свойства речевого сигнала
рассчитываются с учетом геометрии речевого тракта человека, положения
и движения органов, задействованных в порождении речи (голосовых связок, челюсти, губ, языка и др.). Принимаются во внимание параметры источника звука, формы речевого тракта и его резонансных характеристик.
Речевой сигнал формируется на основе этих расчетных данных. Для создания базы данных параметров артикуляторной модели в настоящее время
исследуются нейрофизиологические, механические, аэродинамические и
акустические аспекты речеобразования [Лобанов, Цирульник, 2008].
Современные системы артикуляторного синтеза в состоянии порождать вполне разборчивую синтезированную речь, однако естественность
ее звучания также оставляет желать лучшего. Происходит это потому, что
большинство задействованных моделей ориентируется на субъективные
экспертные представления разработчиков о правилах порождения речи, а
не на массив эмпирических данных. Кроме того, задействованные в таких
системах модели формируются на основе анализа речи лишь единственного или, в лучшем случае, нескольких дикторов. По качеству синтезированной речи и скорости работы артикуляторные системы синтеза уступают акустическим синтезаторам, поэтому на практике они используются
редко.
Преимущество всех видов параметрического синтеза перед компилятивным состоит в генерировании фактически неограниченного набора
голосов посредством изменения их тембральных и стилевых характеристик. Но речь, порожденная методами параметрического моделирования,
пока не очень похожа на естественную.
В литературе можно встретить и такое понятие, как корпусные методы
синтеза. Сюда относятся все описанные методы, базирующиеся на использовании речевого корпуса (компилятивный синтез, синтез по технологии выбора образца, статистический параметрический синтез) [Benesty et
al., 2008].
Глава 4. Распознавание и синтез речи
103
Тенденцией последнего десятилетия стало появление разнообразных
гибридных систем, которые объединяют в себе преимущества разных
методов. Например, использование в синтезаторе метода конкатенации
позволяет формировать качественно звучащие последовательности звуков,
а последующая модификация генерируемого сигнала с помощью набора
просодических правил дает возможность повысить естественность и интонационно-просодическое оформление синтезируемой фразы.
2.2. Устройство TTS-синтезатора речи
В самом общем виде основные компоненты системы синтеза «текстречь» можно представить в виде блок-схемы (см. рис. 1):
1) входной текст подается на модуль лингвистической обработки текста,
который работает с символьной информацией. В результате орфографическая запись преобразуется в транскрипционную согласно существующим в языке фонетическим правилам;
2) полученная фонетическая транскрипция передается на блок собственно синтеза, который и порождает звуковой сигнал по подготовленной транскрипционной записи.
Независимо от типа используемого синтезатором «движка» (акустического или артикуляторного), входной текст должен быть определенным
образом лингвистически обработан. Рассмотрим более подробно этот
этап.
2.3. Модуль лингвистической обработки текста
Главной задачей этапа предварительной лингвистической обработки
является формирование по входному тексту размеченной фонетической
транскрипции. Для получения такой транскрипции необходимо определить структуру документа, осуществить анализ разметки текста и его
нормализацию, а также провести лингвистическую обработку. Завершает
работу данного этапа просодический анализ, целью которого является моделирование правильной интонации, определение длительности сегментов, расстановка пауз.
104
Часть I. Компоненты
2.3.1. Определение структуры и разметки документа
В первую очередь определяется формальная структура текста, подлежащего озвучиванию, и производится интерпретация его существующей
разметки. Здесь могут учитываться стиль форматирования абзаца, использующиеся знаки препинания, иные аннотационные пометы. На этом же
этапе отфильтровывается служебная и метаинформация (например, заголовок электронного сообщения).
2.3.2. Нормализация текста, расшифровка аббревиатур и
специальных знаков, исправление ошибок
В процессе нормализации текста осуществляются поиск в нем сокращений, аббревиатур, цифр, других символов и преобразование их в
стандартную орфографическую запись. Например, «и т. д.» должно быть
записано «и так далее». В следующей таблице приведены примеры фрагментов текста до и после нормализации.
Категории для
замены
Сокращения
Аббревиатуры
Числа и даты
Фрагмент текста, требующий нормализации
См.
тел.
и др.
РФ
НТВ
в 1998 г.
+7 812 123–4567
Адреса
12-я линия В. О. д. 35
Специальные
символы, формулы и другие
обозначения
$ 100000
х2
Нормализованный текст
смотри
телефон
и другие/ое
Российская Федерация
эн тэ вэ
в тысяча девятьсот девяносто восьмом году
плюс семь восемьсот двенадцать, сто двадцать три,
сорок пять, шестьдесят семь
двенадцатая линия Васильевского острова, дом тридцать пять
сто тысяч долларов
икс в квадрате
Затем проводится ревизия пунктуационных знаков: в тексте оставляются только те из них, которые могут служить разграничителями для просодической разметки. При этом часть знаков препинания снимается, ос-
Глава 4. Распознавание и синтез речи
105
тальные приводятся к общему виду. Например, многие системы синтеза
используют только два символа — точку (как показатель конца фразы) и
запятую (конец синтагмы). Для поиска и коррекции ошибок в написании
слов, которые приводят к их неправильному прочтению, применяются
спел-чекеры.
2.3.3. Уровни лингвистического анализа текста
Лингвистический анализ текста может включать в себя несколько
уровней: морфологический анализ словоформ проводится для определения правильного места ударения в слове, синтаксический анализ необходим для разрешения неоднозначностей письменного текста, правильной
акцентировки и фразировки синтезируемого высказывания. Иногда для
этой цели может привлекаться и семантико-синтаксический анализ.
Результатом лингвистической обработки является специальным образом
размеченный текст, который поступает на блок фонетического анализа.
2.3.4. Фонетический анализ
Далее осуществляется фонетическое транскрибирование текста, задача которого состоит в получении цепочки транскрипционных символов,
каждый из которых обозначает определенный гласный или согласный
звук. Специальные символы могут указывать на особенности этого звука,
которые следует учесть при синтезе. Как правило, сначала осуществляется
преобразование от букв к фонемам (обобщенным символьным обозначениям звуков), затем — от фонем к конкретным звукам (аллофонам). Степень детализации аллофонных вариантов и перечень используемых правил в разных системах варьируют. Некоторые системы синтеза позволяют
смоделировать даже разные стили произнесения.
Для фонетического транскрибирования используются заложенные
ранее правила преобразования «от буквы к звуку» и фонетические словари, описывающие произнесение нестандартных слов или определенных
сочетаний звуков. Иногда привлекается этимологический анализ, с помощью которого можно понять происхождение неизвестных системе слов и
предсказать особенности их произнесения.
2.3.4. Просодическая параметризация
Подготовленная по тексту фонемная транскрипция далее подвергается просодическому анализу. Цель его состоит в определении необходимых
для данного фрагмента высказывания интонации, темпа речи и громкости.
Физическими коррелятами этих свойств является изменение частоты основного тона, длительности сегментов и амплитуды сигнала. Интонационный контур высказывания и его темпоральные характеристики, наряду с
106
Часть I. Компоненты
информацией об акцентированности определенных слогов (синтагматического и фразового ударения), исключительно важны для создания правильного ритмического рисунка фразы. Корректная просодическая параметризация не только облегчает восприятие синтезированного сигнала, но
и позволяет акцентировать внимание слушающего на наиболее важных
моментах, а также добавлять определенные семантические нюансы.
Расчет длительности составляющих высказывание сегментов является важным фактором правильного формирования просодии. Разработчики
используют для этого два основных подхода. Традиционно применяется
методика, основанная на заранее сформулированных правилах: по умолчанию системой используется некая базовая средняя длительность единиц, которая модифицируется для каждой конкретной фразы. В последнее
время все чаще стал применяться подход, основанный на обучении системы на материале большого речевого корпуса с привлечением большого
количества контрольных факторов. Такой метод позволяет получить более
разнообразные и естественно звучащие просодические структуры.
Наконец, осуществляется моделирование интонационного контура.
Здесь следует учитывать, что супрасегментные просодические характеристики, такие как диапазон изменения высоты голоса, деклинация (постепенное снижение интенсивности сигнала к концу высказывания) и использование различных средств выделения тех или иных фрагментов речи
в большой степени зависят от стиля произнесения. На вход подается информация в символьном виде, представленная в виде цепочки транскрипционных символов с указанием фразового и словесных ударений, а также
длительности сегментов, и вычисляется последовательность значений для
частоты основного тона. При этом могут использоваться как интонационные шаблоны, заранее смоделированные для данного типа высказывания,
так и модели, полученные на этапе обучения системы на реальном речевом материале.
Результатом лингвистического анализа текста является транскрипционная запись, снабженная контрольной информацией о длительности сегментов и частоте основного тона, которая передается далее в блок собственно синтеза (см. рис. 1). Озвучивание просодически параметризованной
фонетической транскрипции, т. е. ее преобразование в оцифрованный звуковой сигнал, далее реализуется по одному из описанных выше методов
синтеза — компилятивного, формантного, селективного и др.
Глава 4. Распознавание и синтез речи
107
3. Распознавание речи
«Идеальная» задача распознавания речи состоит в переводе в текстовый вид (расшифровку, текстовку) произвольного фрагмента звучащей
речи или звукозаписи.
В общем виде процесс распознавания выглядит следующим образом:
1) на вход системы подается звуковой сигнал или звукозапись,
2) оцифрованный звук преобразуется в спектральное представление, отражающее его объективные акустические свойства, 3) выделяются важные
для системы акустические признаки (векторы), 4) эти векторы сравниваются с шаблонами признаков, которые были заложены в памяти системы в
процессе ее обучения, и 5) по результатам этого сравнения выдается наиболее вероятный текстовый результат (см. рис. 2).
Рис. 2. Принцип работы системы распознавания речи
Продемонстрируем принцип работы распознавателя речи на конкретном примере. Возьмем простейшую задачу: попытаемся построить распознаватель речи, который будет понимать всего два слова — «да» или
«нет».
1. Для начала сформируем обучающий массив звукозаписей: проведем звукозаписи интересующих нас слов в произнесении нескольких говорящих. На рис. 3 показаны соответствующие спектрограммы для одного
из голосов.
108
Часть I. Компоненты
а)
б)
Рис. 3. Спектрограммы слов «да» (а) и «нет» (б) с выделенными областями
взрывных элементов согласных
2. Определим, какие акустические признаки будет анализировать
наша система. Для этого проанализируем полученные спектры. На спектрограммах четко выделяются взрывные элементы согласных [д] и [т],
покрывающие все видимые полосы частот (вертикальное затемнение
спектра). При этом для слова «да» «взрыв» наблюдается в начале слова, а
для слова «нет» — в конце. Поэтому наиболее простым критерием, различающим спектры этих двух слов у самых разных говорящих, может быть
положение взрывного согласного: если «взрыв» наблюдается в начале, то
это слово «да», а если в конце, то «нет». Задав формальный критерий для
сравнения акустических признаков, мы осуществили обучение системы.
3. Теперь можно проверить наш алгоритм на практике: попробуйте по
спектру, представленному на рис. 4, угадать, какой ответ выдает наша система: это слово «да» или слово «нет»?
Глава 4. Распознавание и синтез речи
109
Рис. 4. Тестовый стимул. (Ответ: «да», так как взрывной элемент находится в начале
фрагмента)
Распознаватель, построенный даже по такой упрощенной модели,
может эффективно работать, если на вход будет подаваться только один из
этих двух стимулов в произнесении дикторов без дефектов произношения
и если на сигнал не будут накладываться внешние шумы.
Понятно, что чем больше слов должна распознавать система, тем более сложные критерии для их дифференциации она должна использовать.
Более того, задача распознавания произвольного фрагмента речи для любого говорящего оказалась настолько сложна, что на сегодняшний день
она остается нерешенной ни для одного языка.
3.1. Вариативность речи — главное препятствие для
разработчиков систем распознавания речи
Что же мешает разработчикам передать машине такой, казалось бы,
простой — с точки зрения человека — навык? Мы все слышим речь, которая физически представляет собой звуковые волны, и, как правило, прекрасно различаем в ней не только отдельные звуки, слова, паузы, акценты,
необходимые для перевода речи в текст, но и интонационные нюансы, которые позволяют нам улавливать малейшие оттенки смысла.
Почему при передаче этого умения сверхсовременным компьютерам
и автоматизированным системам возникают столь серьезные затруднения?
Ведь они на порядок лучше человека выполняют многие вычислительные
и механические операции, но до сих пор не в состоянии качественно выполнить «несложную» работу стенографистки, преобразующей звучащую
речь в последовательности буквенных символов.
Главной причиной сложности машинного «восприятия» звучащей речи является ее высокая вариативность. Так, каждое слово может иметь
по несколько вариантов произнесения. Например, русское слово «сейчас»
имеет 3 основных варианта: «сей"час» [s'ij"čas], «си"час» [s'i"čas] и «щас»
[š':as] (см. рис. 5).
110
Часть I. Компоненты
Рис. 5. Осциллограмма и спектральная картина для разных вариантов произнесения
одного слова «сейчас» — [s'ij"čas], [s'i"čas] и [š':as]
Глава 4. Распознавание и синтез речи
111
Кроме того, отдельные звуки каждого слова (аллофоны) тоже могут
произноситься по-разному. Каждый человек обладает уникальным тембром голоса, поэтому спектральные характеристики звуков будут различаться у разных говорящих. У одних людей высокие голоса, у других —
низкие, одни говорят размеренно, другие — скороговоркой. В результате
один и тот же аллофон, даже в сходном контексте, может быть произнесен
с разной основной частотой, интенсивностью и длительностью. У одних
говорящих речь связная, «гладкая», другие запинаются, перебивают себя,
используют много «лишних» и, казалось бы, незначащих слов. Речь может
сильно меняться и в зависимости от конкретной ситуации и эмоционального состояния говорящего. Наличие в речевом сигнале различных помех
(сбои, обрывы, хезитации, повторы) также существенно ухудшает качество распознавания.
В общей сложности, на вариативность речи влияют следующие факторы: 1) анатомические особенности речевого тракта говорящего,
2) приобретенные навыки общения, 3) постоянные дефекты речи,
4) физиологическое
или
эмоциональное
состояние
говорящего,
5) технические особенности канала приема и передачи информации,
6) окружающая обстановка (неречевой шум, одновременная речь нескольких человек), а также некоторые другие.
Объективно существующую вариативность произношения, темпа,
стиля речи, а также появление новых для системы слов и сопутствующих
речевому сигналу шумов фактически невозможно учесть заранее, на этапе
построения и обучения системы.
Почему же человек прекрасно справляется со всей этой вариативностью, а машина — нет? Дело в том, что мы учимся воспринимать звучащую речь довольно долго: процесс обучения начинается в раннем детстве
и продолжается в течение нескольких лет. За это время в активном или
пассивном режиме мы успеваем прослушать тысячи или даже десятки
тысяч часов речи от самых разных людей, как в непосредственном общении с ними, так и благодаря средствам массовой информации. Все это неосознанно формирует нашу способность к адекватному распознаванию.
Более того, объективную акустическую вариативность речевых единиц
мы, как правило, не замечаем, если она лежит в границах принятых в обществе фонетических стандартов. При этом мы обычно чутко реагируем
на региональные и диалектные фонетические особенности речи, а также с
ходу улавливаем «иностранный» акцент.
Думается, что если бы у систем распознавания речи были бы такие
же возможности для обучения, как у людей, результаты их распознавания
существенно приблизились бы к тем, которые показывает человек.
Однако обучение системы распознавания — длительная и ресурсозатратная задача. Компьютер не в состоянии учиться слушать речь в «пас-
112
Часть I. Компоненты
сивном» режиме. Для обучения системы распознавания каждая звучащая
фраза (звукозапись) должна сопровождаться не только ее текстовой расшифровкой (орфографической записью того, что было сказано), но и подробной фонетической транскрипцией (последовательностью фонетических символов). Только в этом случае компьютер сможет обнаруживать и
запоминать в качестве образцов соответствия между объективными акустическими свойствами звукозаписи на каждом анализируемом фрагменте
и соответствующими звуками, словами и словосочетаниями.
Наиболее сложная задача для построения обучающих речевых баз данных
состоит в получении фонетической транскрипции, которая для этой цели
выполняется вручную экспертами-фонетистами и является весьма трудоемкой. Поэтому на практике обучение автоматических систем часто проводится на не очень больших массивах данных (речевых корпусах), которые не могут учесть всей реальной языковой и фонетической вариативности, необходимой для корректного распознавания. По прогнозам ученых,
для того чтобы компьютер смог приблизиться к человеку по достоверности распознавания речи, предстоит сделать еще очень многое. Тем не менее, отдельные задачи распознавания речи успешно решаются и находят
свое применение на практике.
3.2. Основные типы современных систем
распознавания речи
Современные системы распознавания речи различаются по объему
словаря, по их привязке к конкретному диктору, а также по типу объектов
распознавания, стилю анализируемой речи и некоторым другим факторам.
По объему словаря (то есть по количеству слов, которые они способны различать) выделяются следующие типы: системы с малым словарем
распознают единицы или десятки слов, со средним словарем — сотни
слов, с большим — тысячи и десятки тысяч слов. В последние годы стали
использоваться понятия «сверхбольшого словаря» для сотен тысяч и даже миллионов слов, и «неограниченного словаря», задачей которого является моделирование не только всех существующих, но и потенциально
возможных слов для данного языка.
Далее выделяются дикторозависимые и дикторонезависимые системы. Первые распознают речь исключительно тех говорящих, на звукозаписях которых они были обучены. В отдельных приложениях такое ограничение является предпочтительным (например, чтобы наложить запрет
на несанкционированный доступ к системе). Однако для большинства
задач идеальной является дикторонезависимая система, способная «понимать» речь любого человека на данном языке без предварительной подготовки. Промежуточное положение занимают адаптивные системы, кото-
Глава 4. Распознавание и синтез речи
113
рые готовы к распознаванию речи конкретного человека лишь после периода «обучения» или настройки на материале образцов его речи.
Простейшие системы ориентированы на распознавание отдельных
ключевых слов или коротких фраз (команды, пароли). Далее по сложности идут системы, распознающие последовательности, состоящие из
ограниченного набора слов (например, числовые последовательности,
формирующие идентификационные коды или номера телефонов). Наконец, наиболее сложные задачи связаны с распознаванием слитной речи
или чтения связного текста, диктовки и спонтанной разговорной речи.
Системы распознавания речи различаются также в зависимости от
следующих факторов: 1) какая единица является объектом распознавания
(слово, слог, фонема или звук, т. е. какие единицы система ищет в потоке
речи, чтобы по ним реконструировать фразу), 2) привлекается ли к анализу грамматическая информация (частеречный анализатор, синтаксическая
информация о порядке слов в предложениях и другие лингвистические
характеристики), 3) какая речевая ситуация может анализироваться (диалог между человеком и машиной, речевая коммуникация между людьми),
4) где происходит общение (в закрытом помещении при отсутствии внешних шумов, в общественных местах или на улице), 5) какие технические
характеристики у принимающего (записывающего) и передающего речь
устройства (телефонная линия, интернет-коммуникация) и т. д.
Некоторые системы распознавания ориентированы на поиск в потоке
слитной речи ключевых слов. От этих систем не требуется получения
полной текстовой расшифровки звукозаписи, поскольку их основная задача состоит исключительно в идентификации определенных фрагментов
(участков) речи. Используется данная технология в различных поисковых
системах, в системах мониторинга речи и для речевой активации голосовых интерфейсов.
В настоящее время успешно решаются задачи распознавания изолированных слов и фраз, использующих малые и средние словари. Большинство современных систем распознавания речи являются дикторонезависимыми, но ограничены по тематике и по области применения. Чаще всего
они используются в системах голосового самообслуживания в коллцентрах крупных организаций (справочно-информационных служб, государственных учреждений, банков, поликлиник, операторов связи, транспортных предприятий и т. п.) и позволяют автоматически обрабатывать
телефонные обращения клиентов.
Многие системы распознавания диктовки (речевого ввода текста в
компьютер) предполагают предварительное обучение системы — ее адаптацию под конкретного пользователя. Есть примеры успешного решения и
задачи распознавания слитной речи, основанной на использовании больших словарей, но только для единственного диктора. Однако такие систе-
114
Часть I. Компоненты
мы представляют собой «штучный товар» и, будучи дикторозависимыми,
ограничены в практическом применении.
3.3. Лингвистический и статистический подходы к
распознаванию речи
Используемые в системах распознавания речи методы в большой степени зависят от типа, способа и задачи системы распознавания. В целом
все подходы можно условно разделить на две группы — лингвистические
и статистические.
Лингвистические модули обязательно присутствуют в любой системе распознавания. Для их построения используются модели представления и обработки речи, которые выполняются на разных уровнях: акустическом, фонетическом, фонологическом, лексическом, синтаксическом.
Для более «разумных» систем распознавания и понимания речи привлекаются более высокие уровни анализа — семантический и прагматический.
Первичным (и общим для всех рассматриваемых систем) является
акустический уровень, на котором осуществляется запись речи, цифровая обработка и параметризация звукового сигнала. Здесь исследователю
приходится работать с разными вариантами представления речи: собственно акустическим сигналом, поступающим с микрофона, осциллограммой, спектральными представлениями (спектрограммы, преобразование
Фурье, т. е. разложение сложного сигнала на отдельные частоты и амплитуды, и др.), может анализироваться частота основного тона, энергия и
кепстр (или «спектр спектра», т. е. спектр логарифма спектра сигнала, с
помощью которого можно увидеть частоты периодически повторяющихся
колебаний спектра). На рис. 6 приведен образец «видимой речи» (осциллограмма и спектрограмма) для небольшой фразы с сегментацией на звуки.
Глава 4. Распознавание и синтез речи
115
Рис. 6. «Видимая речь»: осциллограмма и спектрограмма для фразы «Речевые
технологии»
Для учета акустической вариативности речевого сигнала используются специальные методы нормализации частоты основного тона, методы
спектрального вычитания и скрытые марковские модели, о которых будет
сказано ниже.
На фонетическом уровне анализируются свойства речевого сигнала,
учитываются принятые в языке закономерности построения речевых цепочек — от простейших (слоги, отдельные сочетания звуков) до словосочетаний, синтагм и фраз. На фонематическом уровне появляются первые
потенциально связанные со значением единицы — фонемы, которые позволяют осуществить переход от акустического сигнала к словам. Здесь, в
частности, аккумулируется информация о параметрическом представлении речевого сигнала для разных фонем и их последовательностей, а также анализируются просодические характеристики.
На лексическом уровне осуществляется описание всех значащих последовательностей фонем, которые формируют слова, а на синтаксическом — подключаются знания о грамматике языка, связывающей отдельные слова в осмысленные высказывания.
Для решения отдельных задач распознавания (например, идентификации изолированных слов и команд) можно ограничиться лингвистическими методами. Так, для небольшого словаря можно смоделировать набор акустических шаблонов, с которыми система должна сравнивать
входной сигнал и выдавать в качестве результата наиболее похожее слово
или фразу. Упрощенный вариант такого подхода для слов «да» и «нет» был
продемонстрирован в самом начале этого раздела.
Однако при расширении объема словаря перевод спектральной информации в последовательность звуков (слов) становится весьма слож-
116
Часть I. Компоненты
ным. Сузить круг поиска верного варианта идентификации позволяют
статистические методы, учитывающие вероятность появления того или
иного элемента (звука, слова, словосочетания) в потоке речи.
Системы распознавания речи, действующие на основе статистики, сегодня считаются наиболее эффективными. Чаще всего в них используются
скрытые Марковские модели (СММ или HMM от англ. Hidden Markov
Models).
3.4. Скрытые Марковские модели
Этот метод носит имя выдающегося русского математика Андрея Андреевича Маркова, который в 1913 г. выступил в Императорской Академии
Наук с докладом, озаглавленным «Пример статистического исследования
над текстом „Евгения Онегина“, иллюстрирующий связь испытаний в
цепь». В своем исследовании А. А. Марков оценивал вероятность появления в тексте знаменитого романа гласных (Г) и согласных (С) букв, а также их двух- и трехбуквенных сочетаний (ГГГ, ГСГ, СГС, СГГ и т. д.). Ученый предположил, что вероятность появления некоторой единицы (в рассмотренном им примере — буквы, передающей гласный или согласный
звук) зависит только от непосредственно предшествующей ей буквы.
Позднее «марковскими моделями» стали называть класс вероятностных
моделей, согласно которым можно предсказывать вероятность следующих
элементов цепи, анализируя не всю цепочку, а только один или несколько
последних ее элементов.
Последовательности слов в предложении или звуков в потоке речи
тоже можно представить в виде вероятностных моделей. Если обучить
систему распознавания вероятностям тех или иных сочетаний слов, это
может существенно облегчить расчеты и повысить качество работы системы.
Вероятностная модель, основанная на анализе только одного предшествующего элемента, называется биграммной моделью, двух–
триграммной, n – 1 элементов — n-граммной [Jurafsky, Martin, 2008]. Возрождение интереса к n-граммным марковским моделям произошло в 1970х годах благодаря исследованиям по распознаванию речи, которые проводились в IBM и в американском университете Карнеги-Меллон [Huang et.
al., 2001].
Статистические методы наиболее эффективно работают при распознавании речи для аналитических языков (таких как английский, нидерландский, болгарский). К сожалению, для высокофлективных языков (например, русского), в которых существует много форм одного и того же
слова, статистические языковые модели уже не дают подобного результата. Поэтому разработчики применяют гибридные подходы, обогащающие
Глава 4. Распознавание и синтез речи
117
классическую статистическую модель набором грамматических правил, а
также использующие информацию о части речи и форме слова.
Помимо скрытых марковских моделей, к распознаванию речи активно
привлекаются и другие методы. В частности, это нейронные сети, Байесовские сети (англ. Dynamic Bayesian Network, DBN) Bayesian
Discrimination), временные динамические алгоритмы (Dynamic Time
Warping, DTW) и другие подходы (подробнее см. [Benesty et. al., 2008]).
3.5. Как работает статистическая система
распознавания речи?
Рассмотрим типовую структуру системы распознавания речи, использующую статистический подход. Такие системы обычно состоят из пяти
базовых модулей: трех лингвистических (акустико-фонетическая модель,
произносительный словарь, языковая модель), модуля параметрической
обработки входного сигнала и собственно декодера (см. рис. 7).
Рис. 7. Архитектура системы распознавания речи с привлечением статистических
методов
1. Акустико-фонетическая модель (англ. Phonetic Model) является
центральным модулем любой системы распознавания, так как именно она
хранит описание фонетических единиц языка (аллофонов или их фрагментов), т. е. шаблонов звуков, называемых акустическими моделями. В
современных системах распознавания речи основной тип используемой
фонетической модели соответствует трифону — контекстной реализации
фонемы, которая учитывает непосредственный правый и левый контекст
(например, ударный аллофон [o] после согласного [д] и перед сонантом
[м]). Для построения трифонной базы привлекаются все возможные в
языке сочетания звуков.
Помимо трифонов, в акустическую модель могут включаться и фонетические модели других речевых единиц — слогов, слов, словосочетаний,
типовых фраз. Для построения этих моделей используются как собственно
118
Часть I. Компоненты
акустические представления, так и вероятностные методы — чаще всего
скрытые Марковские модели или нейронные сети. Фонетические модели
строятся на этапе обучения распознающей системы. Для этого используются акустико-фонетические базы данных, которые представляют собой
большие массивы звучащей речи, записанной от многих дикторов.
2. Лексикон, или произносительный словарь (Lexicon of Word
Pronunciations) представляет собой список слов, в котором каждая единица
сопровождается фонемной или фонетической транскрипцией. Сюда заносятся наиболее часто употребляющиеся слова или формы слов, произношение которых не выводится автоматически из свойственных данному
языку комбинаторных и позиционных правил реализации фонем. В первую очередь в лексикон попадают высокочастотные речевые единицы,
подвергающиеся в речи разнообразной редукции. Варианты произношения могут записываться в орфографическом виде или с помощью транскрипционных символов. В языках со свободным ударением обязательным
является указание места акцента. В лексикон могут также включаться отдельные словосочетания и типовые фразы, а также заноситься информация о частотности или статистической вероятности того или иного варианта произнесения.
Так, например, может выглядеть фрагмент произносительного словаря для русской разговорной речи. В столбце В1 дается «канонический»
(полный) вариант произношения слова, в остальных — другие возможные
варианты.
слово
сейчас
только
тебя
будешь
что
тысяча
вообще
варианты произношения
В1
В2
В3
сий"час
си"час "щас
"толька
"тока
"ток
ти"бя
ти"a
"тя
"будиш
"буиш
"буш
"что
"што
"чё
"тысича "тыща "тыщ
ва"пще
ва"ще
а"ще
В4
В5
"тык
"шо
а"пще
а"щще
3. Модель языка (Language Model) предназначена для описания семантических и синтаксических ограничений, которым в данном языке
подчиняется построение предложений. Такие ограничения могут описываться разными грамматическими моделями. В большинстве систем автоматического распознавания речи используются статистические Марковские грамматики, называемые n-граммными, которые задают вероятность
встречаемости для разных последовательностей слов языка (см. выше).
Биграммная модель задает вероятности появления в речи для всех пар
Глава 4. Распознавание и синтез речи
119
слов из произносительного словаря, триграммная — для всех троек слов
и т. д. С учетом этих вероятностей в процессе распознавания речи осуществляется оценка правдоподобия всех возможных вариантов для анализируемого фрагмента речи и делается выбор в пользу наиболее ожидаемого
варианта. О модели языка подробно рассказывается в главе 7, посвященной машинному переводу.
Все три модели формируются на этапе обучения системы. Для этого
используются большие массивы звучащей речи, полученной от многих
дикторов — фонетические базы данных, которые размечены на трифоны,
аллофоны и слова и снабжены фонетической транскрипцией, выполненной вручную.
4. Основная задача модуля параметрической обработки речевого
сигнала состоит в преобразовании входящего речевого сигнала в последовательность временных срезов, каждый из которых содержит информацию о спектре сигнала на небольшом временном интервале (длительностью 10–30 мс). Они также называются «спектральными векторами» или
«векторами акустических признаков». Вычисление признаков сигнала необходимо как на этапе обучения системы, так и в процессе собственно
распознавания.
5. Наконец, декодер представляет собой основной блок системы распознавания, который сопоставляет выделенные на базе входного сигнала
акустические признаки (векторы) с информацией, заложенной в произносительном словаре, языковой и акустико-фонетической моделях, и по результатам этого сравнения вычисляет наиболее вероятную последовательность слов (англ. most likely sentence), которая является результатом работы системы.
4. Новые горизонты
В работах последних лет стали выдвигаться новые требования к системам распознавания и синтеза речи. Так, для того, чтобы коммуникация
между человеком и машиной была более успешной, предлагается дополнительно включать уточняющие вопросы и подтверждения, чтобы убедиться, что обе стороны правильно понимают друг друга. Для многих голосовых интерфейсов выдвигается требование голосовой активации: приложение переходит на «речевое общение» с человеком в ответ на определенную голосовую команду. Для этого необходим постоянный фоновый
мониторинг речи пользователя, чтобы система не пропустила активационный запрос.
Чтобы снизить монотонность синтезированной речи и приблизить ее
к естественной, некоторые разработчики включают в порождаемый сигнал
120
Часть I. Компоненты
естественно звучащие паралингвистические явления — например, вставляют покашливание и разнообразные «хезитативные заполнители» («э-э»,
«м-м» и т. п.). А чтобы свойственные искусственной речи артефакты были
не так заметны, звук воспроизводят на фоне приятного музыкального сопровождения.
Изменяются и технологические требования к обучающим массивам
речевых данных — речевым корпусам. Если лет 10 назад достаточно крупным ресурсом считался звуковой корпус, содержащий десять и более часов
звучащей речи, то в наши дни все чаще используются намного более представительные корпуса. Так, например, корпус RuSpeech содержит 50 часов
наговоренной речи в произнесении 220 дикторов, а речевые технологии
компании Яндекс отрабатываются уже на корпусе объемом в 500 часов
размеченной речи. Новым подходом является и переход от начитанной
дикторами речи к звукозаписям естественной речевой коммуникации. Он
применяется, например, разработчиками корпуса «Один речевой день»,
который создается в Санкт-Петербургском государственном университете
[Bogdanova-Beglarian et al. 2015].
Активное развитие робототехники, телекоммуникационных и интернет-технологий должно стать дополнительным стимулом для развития
речевых технологий в ближайшие годы. Появившиеся в самое последнее
время «облачные» технологии обработки данных открывают поистине
революционные возможности для встраивания модулей синтеза и распознавания речи фактически в любые мобильные приложения. Такие услуги
уже предлагают на коммерческом рынке лидеры отрасли.
И, конечно, параллельно с улучшением качества технологий синтеза
и распознавания речи идет работа по совершенствованию способности
вычислительной машины как собеседника правильно понимать человеческую речь — определять основную тему речевого сообщения, его ключевые элементы, а в некоторых приложениях — даже эмоциональное или
физическое состояние говорящего.
Мы рассказали о наиболее традиционных представлениях и методах
современных речевых технологий. Какие конкретно подходы используются каждым из разработчиков, можно узнать на их интернет-сайтах. В онлайн режиме можно также оценить и качество предлагаемых решений (см.
ниже краткий перечень основных разработчиков).
Литература
Учебная литература по речевым технологиям, изданная на русском
языке, не многочисленна. В первую можно порекомендовать главу «Элементы прикладной фонетики» учебника [Кодзасов, Кривнова 2001], посо-
Глава 4. Распознавание и синтез речи
121
бие [Лобанов, Елисеева 2006], а также научно-популярное книгу [Кейтер
1985].
Большинство существующей литературы по речевым технологиям
рассчитано на технически подготовленного читателя. Следует отметить
классические переводные труды, посвященные общим вопросам речевых
технологий [Фланаган 1968] и [Ли 1983].
Загоруйко Н. Г. Об исследованиях проблемы речевых технологий // Речевые технологии. 2008. Вып. 3. С. 81–96.
Кейтер Дж. Компьютеры — синтезаторы речи. М.: Мир, 1985. 240 с.
Кипяткова И. С., Ронжин А. Л., Карпов А. А. Автоматическая обработка разговорной русской речи. СПб., 2013.
Кодзасов С. В., Кривнова О. Ф. Общая фонетика. М.: РГГУ, 2001. (Глава 11, «Элементы прикладной фонетики».)
Лобанов Б. М. Речевой интерфейс интеллектуальных систем: учебное пособие /
Б. М. Лобанов, О. Е. Елисеева // Минск: БГУИР, 2006. 152 c.
Лобанов Б. М. Компьютерный синтез и клонирование речи / Б. М. Лобанов,
Л. И. Цирульник // Минск: Белорусская Наука, 2008. 342 c.
Методы автоматического распознавания речи / Под ред. У. А. Ли. М., 1983.
Потапова Р. К. Речевое управление роботом: Лингвистика и современные автоматизированные системы. Изд. 3. М.: УРСС, 2012.
Скрелин П. А. Сегментация и транскрипция. СПб., 1999.
Соломенник А. И. Технология синтеза речи: история и методология исследований //
Вестник Московского университета. Серия 9 «Филология». 2013. № 6.
С. 149–162.
Сорокин В. Н. Синтез речи. М.: Наука, Гл. ред. физ-мат. лит., 1992. 392 с.
Фланаган Дж. Л. Анализ, синтез и восприятие речи. М.: Связь, 1968. 396 с.
Наиболее полные обзоры современных методов обработки речи представлены в следующих непереведенных изданиях:
Benesty J., Sondhi M., Huang Y. (Eds.) Handbook of Speech Processing. Springer, 2008.
1176 p.
Bogdanova-Beglarian N., Martynenko G., Sherstinova T. The “One Day of Speech”
Corpus: Phonetic and Syntactic Studies of Everyday Spoken Russian / Ronzhin, A.
et al. (eds.) SPECOM 2015, LNAI. Vol. 9319. Springer: Switzerland, 2015. P. 429–
437.
Cole R. et al. (Eds.) Survey of the State of the Art in Human Language Technology
(Studies in Natural Language Processing). Cambridge University Press and
Giardini, 1997. 526 p.
Dutoit T. An Introduction to Text-to-Speech Synthesis. Dordrecht, 1997.
Jurafsky D., Martin J. H. Speech and Language Processing: An Introduction to Natural
Language Processing, Computational Linguistics, and Speech Recognition —
Pearson Prentice Hall, 2008. 988 p.
Huang X., Acero A., Hon H.-W. Spoken Language Processing: A Guide to Theory, Algorithm, and System Development. Pearson Prentice Hall, 2001. 980 p.
122
Часть I. Компоненты
Электронные ресурсы
Заинтересованному читателю можно порекомендовать научнотехнический
сетевой
журнал
«Речевые
технологии»
(http://speechtechnology.ru/), а также материалы международных научных
конференций: INTERSPEECH (ранее EUROSPEECH), SPECOM, TSD и
Диалог.
Сайт Центра речевых технологий http://www.speechpro.ru
Речевые технологии SpeechKit компании Яндекс https://tech.yandex.ru/speechkit/
Сайт компании «Стэл — Компьютерные Сиcтемы» http://www.stel.ru
AT&T Natural Voices Text-to-Speech Demo
http://www2.research.att.com/~ttsweb/tts/demo.php
HTK Software Toolkit http://htk.eng.cam.ac.uk
Список зарубежных компаний, занимающихся речевыми технологиями:
http://htk.eng.cam.ac.uk/links/speech_comp.shtml
Сайт для разработчиков речевых технологий, каталог ресурсов http://speech-soft.ru
Nuance Communications http://www.nuance.com/
Acapela group http://www.acapela-group.com/
Ivona https://www.ivona.com/
ReadSpeaker http://www.readspeaker.com/
Разработки компании NeoSpeech http://www.neospeech.com/
Глава 5
Машинное обучение в лингвистике
Авторы: Григорий Теймуразович Букия, выпускник 2016 года,
инженер-программист в НПО «Аврора»;
Екатерина Владимировна Протопопова, выпускница 2016 года,
аналитик в компании Яндекс
1. Введение: Формализация задач машинного
обучения
В этой главе мы расскажем о математических методах обработки естественного языка, которые на русском языке называют машинным обучением (MO) — перевод-калька с английского machine learning. В своей
основе эти методы известны очень давно, например, специалисты по радиотехнике, называют их математической оптимизацией или теорией статистического управления. Они используются при работе с большими массивами данных, связанных не только с языком. Но в прикладной лингвистике статистический подход стал настолько популярным, что некоторые
считают его единственным эффективным методом обработки языка. Сторонники этого подхода любят повторять жестокую шутку Фредерика Йелинека, одного из первых специалистов по NLP, которая звучит примерно
так: «Каждый раз, когда увольняется лингвист, производительность системы возрастает».
В самом общем виде задачу МО можно описать так. Имеется некоторое множество, называемое традиционно множеством объектов. Каждому объекту по какой-то системе приписывается признак из множества,
именуемого множеством ответов. Систему, по которой объекту приписывается ответ, называют целевой функцией (target function). В некоторых
задачах она представляет собой «черный ящик» — для каждого конкретного объекта можно сказать, какой именно ответ дает целевая функция, но
самый принцип описать либо очень трудно, либо вовсе невозможно.
Пример такого черного ящика — распознавание части речи слов.
Здесь объектами будут слова, ответами — соответствующие части речи, а
целевой функцией — принцип, по которому определяется часть речи для
всякого слова. Хотя в большинстве случаев носитель языка без труда определит часть речи, но описать во всей полноте принцип, по которому че-
124
Часть I. Компоненты
ловек делает выбор, едва ли возможно. Словаря с указанием частей речи
для каждого слова недостаточно. Ведь в естественном языке нередки случаи лексической неоднозначности, так например слово «были» может
быть как глаголом, так и существительным в зависимости от контекста.
Значит, необходимо, как минимум, учесть синтаксический контекст. Но
даже если описать все возможные правила русского языка, в языке найдутся спорные случаи. Рассмотрим предложение: «Рядовые были забыты
своим командиром». С точки зрения синтаксиса части речи слов «рядовые
были» однозначно определить нельзя, хотя носитель языка без труда выберет верный вариант.
Итак, задача МО — подобрать такую функцию, которая с одной стороны наиболее близка к целевой, то есть почти всегда дает «правильные»
ответы, а с другой стороны реализуема на компьютере, универсальна и не
требует значительных человеческих «жертв». Например, составление всеобъемлющего частеречного словаря этим параметрам не отвечает: потребуется огромное количество человекочасов для разметки, а полученные
данные нельзя будет применять в других задачах.
Функция, имитирующая целевую, подбирается из некоторого ограниченного множества. Выбор этой функции и подбор её параметров и осуществляется одним из алгоритмов машинного обучения.
Чтобы понять, насколько полученная функция близка к целевой, требуется сначала определить, что значит «близкая» функция. Это не такой
очевидный вопрос. Ведь если функция, определяющая рост человека,
ошиблась на 2–3 сантиметра, можно сказать, что он «почти» угадан, но
если неверно определен пол человека, сказать, что он «почти» угадан, уже
нельзя. За оценку близости отвечает функционал качества (quality
function). Поскольку проверить на всем множестве объектов невозможно,
проводят статистическую оценку на контрольной выборке.
Приближение целевой функции может строиться по заранее известным данным. Тогда такой метод называют обучением с учителем
(supervised learning), а данные — обучающей выборкой (training set). Это
наиболее распространенный случай в лингвистике. Характерный пример
обучающей выборки — небольшой размеченный подкорпус, по которому
требуется разметить всю оставшуюся часть. Иногда обучающая выборка
появляется постепенно, корректируя алгоритм. Например, некоторые автоматические переводчики позволяют пользователям выбрать наиболее
удачный перевод и корректируют свою работу, основываясь на полученных данных. Такие задачи встречаются реже. Третья разновидность алгоритмов — обучение без учителя (unsupervised learning). Такие алгоритмы, например, разбивают объекты на группы, называемые кластерами
(clusters), причем в одном кластере оказываются близкие объекты. Впоследствии всем элементам кластера присваивается один и тот же ответ.
Глава 5. Машинное обучение в лингвистике
125
Этот принцип удобен тем, что практически не требует заранее обработанных данных.
Таким образом, на формальном языке определение задачи МО звучит
так.
Определение.
Пусть — множество объектов, — множество ответов, : → — целевая функция, ! — ее граничные условия
(обучающая выборка). Кроме того, пусть дана модель алгоритма — параметрическое множество функций " = $%( , &)' на котором задана метрика.
Конструкцию ( = ( , , ", ! ) называют задачей машинного обучения (МО), а алгоритмом — функцию %( , & ∗ ), где
& ∗ = argmin ||%( , &) − ( )|| .
0
Трудно приближать функцию, которая действует, например, на множестве цветков или птиц. Поэтому в качестве объекта чаще всего рассматривается не сам предмет, но набор его количественных характеристик,
важных в рамках данной задачи. Например, для классификации цветков
ириса Фишер вместо самих цветов рассмотрел их численные характеристики (длина, ширина лепестка и чашелистика), таким образом, множество представляло собой не букет, а набор точек в четырехмерном пространстве. Это самый распространенный подход — представление объектов в некотором признаковом пространстве. Иногда объекты описывают
через расстояния между ними или с помощью графической модели. Пусть,
например, необходимо определить положительную или отрицательную
окраску следующего текста (отзыв на смартфон):
Как всегда на высоте качество исполнения. Поражает безупречность работы экрана, кнопок, датчиков и сенсоров. Мне очень
нравятся наушники, которые имеют качество звучания близкое к вакуумным вкладышам, но не изолируют тебя от внешних звуков и, что
для меня важнее всего, не скрипят силиконом в ушах при беге. Камера делает фото еще лучше, экран еще ярче и четче и т. д. … хотя не
могу сказать, что в пятерке с этим были проблемы.
Пусть при этом у нас есть обучающая выборка из других текстов (отзывов на смартфоны):
Текст
Оценка
Мне очень понравилась эта модель! Во-первых, классположительный дизайн, во-вторых, круто снимает в помещении, за ная
счет позволяя понизить ISO, что очень сильно порадовало, в-третьих, на мой взгляд, он совершенно не тормозит и у него очень четкая и плавная картинка, всем со-
126
Часть I. Компоненты
ветую)
Цена сильно завышена, такое ощущение как будто здорово переплатил, появляется после недели использования. Аккумулятор не долгий, но и не совсем уж дохлый,
но за эти деньги можно было б и поживучее сделать.
Батарея держит значительно дольше, чем в 5s. Теперь
телефона с легкостью хватает на целый день активного использования. Можно совсем не париться по поводу
зарядки. 5s успевал два раза сесть за это время, что
очень доставало.
Нет возможности поместить на рабочий стол любимые контакты. В контактах (в общем списке) не отсвечиваются аватарки.
отрицательная
положительная
отрицательная
Тогда мы можем описать входные данные различными способами:
• Если имеется словарь оценочных слов, каждому тексту можно сопоставить набор слов из этого словаря.
• Использовать каждое слово как признак для описания.
• Описать расстояние между каждой парой текстов, например, как количество общих слов. При этом можно завести список стоп-слов, которые не следует учитывать.
Итак, на практике задача МО требует от лингвиста следующее:
1) построение грамотной модели входных данных (самая сложная
часть);
2) выбор класса, к которому предположительно относится целевая
функция; выбор и применение метода МО;
3) оценка полученного результата.
2. Методы машинного обучения
Какой бы трудной не казалась задача, существует не так уж много
«проверенных» способов построить модель и подобрать алгоритм. При
этом вид модели обычно зависит от типа входных данных, а метод обучения — от тех результатов, которые необходимо получить. Здесь мы не будем касаться вопроса построения модели входных данных (информацию
об этом для каждой конкретной задачи можно найти в соответствующих
главах), а лишь кратко опишем следующие группы методов:
• Метрические методы классификации
• Статистические методы классификации
Глава 5. Машинное обучение в лингвистике
127
Линейные методы классификации
Регрессионные методы
Искусственные нейронные сети
Кластеризация
Чаще всего в задаче требуется определить один из нескольких классов, к которому принадлежит объект, — например, часть речи, падеж, значение слова и т. п. Если известен перечень классов и имеется обучающая
выборка (характерные представители каждого класса), то это задача классификации (classification). Большая часть алгоритмов применяется именно к таким задачам, они проще и эффективнее других.
Иногда обучающая выборка очень мала или вовсе отсутствует, в таких случаях используются алгоритмы кластеризации (clustering). Они
разбивают все множество объектов на группы, исходя из каких-то косвенных соображений, не используя данные о том, какие именно это группы.
Затем, оценив слова в каждом отдельном кластере, можно понять, что собой представляют полученные группы. Иногда заранее не известно ничего
даже о количестве классов — с такой ситуацией можно столкнуться, например, при тематическом моделировании текстов. Алгоритмы кластеризации, как правило, сложнее, и в некоторых случаях менее эффективны. С
другой стороны, в задачах с минимумом данных они работают гораздо
лучше алгоритмов классификации (когда примеров очень мало или представители каких-то классов и вовсе отсутствуют).
Гораздо реже в лингвистике требуется произвести регрессионный
анализ (regression). Задача регрессии — оценить функциональную зависимость между какими-то структурами. Допустим, необходимо предсказать время, которое переводчик потратит на исправление машинного перевода. Очевидно, это время нельзя описать в терминах классов, нужно
предсказывать значение, которого, скорее всего, не было в обучающей
выборке. В таком случае результат обучения — описание зависимости
(функции) между параметрами, описывающими входной текст, и временем. Для того чтобы сузить перечень функций, отвечающих входным данным, сначала делаются некоторые предположения о классе функций, в
котором ведется поиск (линейные, логистические, экспоненциальные
и др.), среди которых выбирается функция с минимальной ошибкой.
Большая часть алгоритмов машинного обучения уже реализована в
специальных библиотеках, некоторые из которых даже представляют
пользователю графический интерфейс, поэтому для их использования даже необязательно программировать. В приложении приводится список
этих пакетов, разработанных для различных языков программирования.
•
•
•
•
128
Часть I. Компоненты
2.1. Метрические методы классификации
Если каждый объект из требуется отнести к какому-либо классу из
множества = $ , … , ', то это задача классификации. Пусть на множестве объектов введена метрика, то есть задано условное расстояние между
любыми двумя объектами. В этом случае можно применять метрические
методы.
Метрика задается, в зависимости от природы объектов, по-разному.
Естественное требование — объекты одного класса, согласно этой мере,
должны быть близки, а объекты разных классов — далеки друг от друга.
Для классификации текстов, например, в качестве простейшего расстояния можно использовать количество общих слов для двух текстов.
Метод ближайших соседей
Это один из наиболее простых для реализации методов. Всякий объект относится к тому же классу, что и ближайший к нему объект из
обучающей выборки.
Метод ближайших соседей обладает крайне низкой устойчивостью к
выбросам — если некоторый объект обучающей выборки оказался в окружении объектов другого класса, те из них, для которых этот объект ближайший, будут неверно классифицированы. Кроме того, классификация
сильно зависит от выбора расстояния и обучающей выборки, поэтому ее
следует применять лишь для предварительного анализа.
Метод k-ближайших соседей
Метод k-ближайших соседей (k-Nearest Neighbours algorithm, k-NN)
— это более устойчивая к выбросам модификация метода ближайших соседей. Для объекта определяются k-ближайших соседей и относят его к
преобладающему классу. Вспомним пример с оценкой тональности отзыва, и будем в качестве параметров рассматривать количество положительно и отрицательно окрашенных слов. В тестовом отзыве будет пять положительно окрашенных слов (безупречность, нравится, лучше, ярче, чётче) и одно отрицательно окрашенное (проблемы) — очевидно, ближе всего
к нему будут оба положительных отзыва.
Этот метод с одной стороны более устойчив к выбросам, но с другой
стороны, тяготеет к большим классам, поэтому его не рекомендуется использовать, если объемы классов существенно отличаются. Классификация существенно зависит от 5 . При 5 = 1 совпадает с простым методом
ближайших соседей, при 5 близких к объему всего множества объектов
приписывает класс наибольшего объема. Поэтому 5 следует подбирать
аккуратно. Рекомендуется такой способ проверки: необходимо, чтобы для
Глава 5. Машинное обучение в лингвистике
129
наибольшего числа объектов обучающей выборки принадлежность к классу определяется верно.
Если принадлежность к классу определяется неоднозначно (равное
число ближайших соседей в каждом классе), то следует минимизировать
суммарное расстояние до ближайших соседей класса.
Метод парзеновского окна
Еще один элементарный метрический метод — это метод парзеновского окна (Parzen window classification). Для каждого элемента 7 обучающей выборки рассматривается окрестность радиуса 8, при попадании в которую объекта центр окрестности 7 как бы голосует за отнесение соответствующему классу.
Как и предыдущий, этот метод зависит от выбора радиуса окрестности, который подбирается аналогичным способом. Если данные неоднородны, можно использовать плавающий радиус, который определяется
количеством элементов обучающей выборки, попавшим в соответствующую окрестность.
Срез выбросов
Зачастую из выборки полезно удалить так называемые выбросы
(outliers) — объекты, не характерные для данного класса или находящиеся
в окружении другого класса. Чтобы обнаружить эти объекты, надо классифицировать каждый объект обучающей выборки, и если класс определен неверно, удалить данный элемент.
Эту «чистку» рекомендуется проводить, если выборка достаточно
большая.
2.2. Статистические методы классификации
Статистические методы предполагают построение вероятностной модели. Каждому классу
сопоставляется некоторое распределение на
множестве объектов . Соответствующая плотность характеризует вероятность принадлежности объекта данному классу. Задача метода — построить эмпирическую плотность, чтобы рассчитать, к какому классу объект принадлежит с наибольшей вероятностью.
Наивный байесовский классификатор
Наиболее простой статистический метод — наивный байесовский
классификатор (naive Bayes classification). В его основе лежит формула
Байеса (она же — теорема Байеса) названая так в честь своего открывате-
130
Часть I. Компоненты
ля — английского математика и пресвитерианского священника XVIII века
Томаса Байеса.
В своей базовой форме теорема Байеса доказывается очень просто с
использованием совместной вероятности р(АВ), то есть вероятности того,
что произойдут два события: А и В. Если эти события независимы, то их
совместная
вероятность равна произведению вероятностей каждого
из этих событий по отдельности: р(АВ) = р(А)*р(В).
Но если события А и В зависят друг от друга, то их совместную вероятность можно посчитать двумя способами: либо как вероятность события
А, умноженную на вероятность события В при условии события А, либо,
наоборот, как вероятность события В, умноженную на вероятность события А при условии события В. Запишем это в виде формулы:
p(А В) = p(А)×p(В|A) = p(B)×p(A|В)
Тогда p(A|В) =
<(А В)
<(>)
=
<(А)×<(В|?)
<(>)
А это и есть формула Байеса:
p(A|В) =
<(А)×<(В|?)
<(>)
Рассмотрим теперь, как эта формула применяется к практическим задачам.
Пусть объект определяется набором параметров ( … ). Тогда по
теореме Байеса можно вычислить, с какой вероятностью объект ( … )
принадлежит класса :
р( | , …
)=
р( )р( , … | )
р( , … )
Ясно, что предпочтителен класс, для которого эта вероятность максимальна. Знаменатель у всех дробей одинаков, поэтому достаточно максимизировать числитель. Если предположить, что набор признаков , … ,
независим, то поскольку
р( , …
| ) = р( | )р( | , ) … р( | , , … ,
получаем, что
р( )A( , …
| ) = р( ) B р( | ).
),
Глава 5. Машинное обучение в лингвистике
131
Эта величина легко рассчитывается по выборке. A( ) — количество
элементов в обучающей выборке класса деленное на общее количество
элементов, р( | ) — количество элементов класса , имеющих признак
, деленное на общее число элементов класса и т. п.
Независимость признаков — очень сильное предположение, которое
значительно упрощает расчеты, именно поэтому классификатор получил
название наивного. Конечно, в реальных задачах это требование выполнено далеко не всегда. Например, при классификации текстов с использованием данного алгоритма строится модель мешка слов (bag-of-words
model): предполагается, что текст — множество случайных слов из словаря, выбор которых друг от друга не зависит. Таким образом, пропадает
информация о связях между словами.
2.3. Линейные методы классификации
Линейные методы определяют принадлежность объекта к одному из
двух классов = $−1, +1', но могут быть расширены на общий случай,
когда объект следует отнести к одному из нескольких классов. Сущность
их заключается в построении гиперплоскости, разделяющей множество
объектов на две части. Пусть каждый элемент описывается набором
признаков D ( ), … , ( )E , a (F : ) — некоторые веса этих признаков.
Веса используются для оценки «вклада» каждого признака в определение
класса, к которому относится объект. Так, чтобы определить морфологическую характеристику слова русского языка, чаще важен его суффикс, а
не приставка, хотя и последняя может иметь значение в некоторых случаях. Тогда принадлежность к классу определяется выражением
sign (∑ F ( ) − F ) , причем выражение ∑ F ( ) = 0 определяет
разделяющую гиперплоскость.
Метод опорных векторов
Метод опорных векторов (support vector machine, SVM) — это один
из самых популярных и эффективных подходов. Предположим, что существует плоскость, разделяющая объекты обучающей выборки на два класса, иными словами, функционал числа ошибок при каких-то значениях
параметров равен нулю. Разделяющая плоскость не единственна, поэтому
задача алгоритма определить оптимальное разделение. Метод опорных
векторов действует следующим образом: если обучающая выборка разделена на два множества
и , рассматривается та плоскость, суммарное
расстояние от которой до каждого из множеств максимально. Выборка в
таком случае называется линейно разделимой.
Если же разделяющей плоскости нет, классификатору разрешается допускать ошибки. Какую бы плоскость мы не провели, с каждой стороны
132
Часть I. Компоненты
оказываются объекты обоих классов. В таком случае дополнительное требование для оптимального разделения — минимизация ошибки. Ошибку
можно считать как суммарное расстояние от плоскости до ошибочных точек.
Иногда ошибочные точки — это всего лишь выбросы, и их потеря
только улучшит классификатор. Но иногда линейная классификация приводит к серьезным ошибкам. Представим, например, что объекты первого
класса ограничены сферой радиуса J , тогда как объекты второго класса
лежат вне сферы. Тогда линейный метод опорных векторов будет давать
неудовлетворительный результат. В подобных случаях используют нелинейную модификацию метода опорных векторов, основанную на преобразовании пространства объектов. Иными словами, с помощью так называемой функции ядра(kernel function) данные преобразуются так, что разделяющая гиперплоскость существует.
2.4. Регрессионные методы
Модели классификации не всегда удобны. Во-первых, границы между
классами могут быть размыты, а во-вторых, объекты одного класса нельзя
сравнить между собой. Эти проблемы возникнут, например, если классифицировать людей по росту на три группы: высокие, средние и низкие. В
таких задачах естественно искать некоторую числовую характеристику
каждого объекта. Если пространство ответов не конечный набор классов, а
бесконечное числовое множество, то модель называют регрессионной.
Итак, по-прежнему каждый объект представляется набором признаков, требуется по обучающей выборке восстановить неизвестную числовую функцию — характеристику объекта. Рассмотрим такую зависимость,
которая на обучающей выборке принимает верные значения, а на остальных объектах — нулевые. Эта «оценка» должна быть оптимальной, ведь
на всех объектах обучающей выборки она не ошибается. Но в реальности
едва ли она окажется подходящей. Чтобы не столкнуться с такой проблемой, требуется ввести ограничения на структуру регрессии, то есть ограничить класс рассматриваемых функций, среди которых ведется поиск:
линейные, логистические и т. д.
Один из примеров лингвистической регрессионной задачи — оценка
качества перевода: как было сказано выше, его можно оценить не просто
как «хороший» или «плохой», а предсказать, например, время, которое
профессиональный переводчик потратит на его исправление.
Линейная регрессия
Линейная регрессия (linear regression) используется в тех задачах,
где нужно искать регрессионную зависимость только среди функций ли-
Глава 5. Машинное обучение в лингвистике
133
нейного вида, которые описываются суммой переменных (в нашем случае
это параметры, описывающие объекты), каждая из которых умножается на
свой коэффициент:
K LM M ( ).
M
Остается лишь подобрать значения коэффициентов, для этого можно
воспользоваться методом наименьших квадратов — самый распространенный статистический алгоритм.
2.5. Искусственные нейронные сети
Искусственные нейронные сети (artificial neural networks) изначально создавались как модель биологической нервной системы. Именно
поэтому в этой области многие термины заимствованы из нейрофизиологии. Основной единицей этой модели является нейрон, состоящий из следующих частей:
• определенное количество входных сигналов;
• сумматор, складывающий входные сигналы с определенными весами
в значение N ;
• сеть синапсов (связей) соединяющая входные сигналы с сумматором,
при этом у каждого ребра-синапса есть вес;
• функция активации O(N), преобразующая результат суммирования в
выходной сигнал — обычно в диапазоне P−1, 1Q.
Обычно используются следующие функции активации:
• пороговая функция (модель Мак-Каллока — Питца)
1, если N ≥ 0;Y
O(N) = R
0, если N < 0;
• кусочно-линейная функция
1
1, N ≥ ;
]
2
[
1
1
O(N) = |N|, > N > − ;Y
2
2
\
1
[
Z 0, N ≤ − 2 ;
• сигмоидальная функция
,
O(N) =
bcd
a
где e — параметр наклона.
Множество таких нейронов составляет слой нейронной сети. Почти
самая простая сеть будет состоять из трех слоев нейронов: входного,
134
Часть I. Компоненты
скрытого и выходного. Для входного и выходного слоя известны некоторые параметры: какой сигнал подается на вход и какой оказывается на выходе. В скрытом слое, как следует из названия, производятся неявные преобразования сигналов.
Чтобы описать основные типы (архитектуры) нейронных сетей, нужно также ввести понятие обратной связи. Она возникает в тех случаях,
когда выходной сигнал оказывает влияние на новый входной сигнал. В
зависимости от наличия в сети обратной связи выделяют сети прямого
распространения и рекуррентные сети. В первых информация из входного
слоя передается на выходной слой нейронов; в случае многослойной сети
— через один или несколько слоёв скрытых нейронов. Многослойные сети позволяют находить более сложные зависимости, особенно когда размер входного слоя достаточно велик. Рекуррентные нейронные сети отличает наличие хотя бы одной обратной связи.
Обучение нейронных сетей
Математическая модель нейронной сети независимо от своей архитектуры может применяться в обучении, как с учителем, так и без него.
Одним из наиболее распространенных алгоритмов обучения сети является
метод обратного распространения ошибки (backpropagation). Он позволяет вычислить синаптические веса (веса связей) таким образом, что значение функции потерь (величина ошибки) стабилизируется и становится
достаточно небольшим. При этом каждый новый обучающий пример вносит свой вклад в изменение весов, когда на каждом этапе выходное значение сравнивается с желаемым, и веса пересчитываются в обратном направлении — от выходного слоя к входному.
Одним из наиболее известных и признанных приложений нейронных
сетей в компьютерной лингвистике являются нейросетевые модели языка.
Для предсказания вероятности заданной последовательности слов или
появления заданного слова при условии уже имеющейся последовательности входные значения строятся с помощью векторного представления
текста. Затем используется сеть прямого распространения или рекуррентная сеть с сигмоидальной функцией активации, которая обучается методом обратного распространения ошибки. Предполагается, что в отличие
от обычной вероятностной языковой модели такая модель лучше работает
с редкими словами и последовательностями, которые не встречались в
исходном корпусе.
Искусственные нейронные сети были предложены в середине прошлого века, однако в связи с развитием вычислительных технологий (например, распределенных вычислений) сейчас наблюдается всплеск интереса к их приложениям. В компьютерной лингвистике они имеют место не
Глава 5. Машинное обучение в лингвистике
135
только в области языкового моделирования, но и в задачах автоматической
кластеризации лексики (карты Кохонена), машинного перевода.
2.6. Кластеризация
Как уже было сказано, кластеризацией называется классификация
объектов, когда их принадлежность к классам изначально не задана. Пусть
имеется обучающая выборка f = $ , , … , f ' и функция расстояния
между объектами g( , h ). Алгоритм кластеризации — это функция
: → , которая любому объекту ∈ ставит в соответствие кластер
∈ . Число кластеров иногда известно заранее. Как и в случае с классификацией необходимо задать функционал качества. Можно упомянуть,
например, среднее внутрикластерное и межкластерное расстояния:
( =
( =
∑lqmjkl km no(pl ,pm )
∑lqmjkl km n
,
∑lqmjkl rkm n
.
∑lqmjkl rkm no(pl ,pm )
Среди алгоритмов кластеризации можно выделить несколько групп:
графические, статистические, иерархические. Из упомянутых выше для
кластеризации часто используется алгоритм k-средних.
Графические алгоритмы кластеризации
Этот класс алгоритмов основан на представлении объектов выборки в
виде графа, где рёбрам соответствуют расстояния между объектами. Их
достоинствами являются наглядность и простота реализации.
Алгоритм выделения связных компонент
Суть алгоритма выделения связных компонент (connectedcomponent labeling) состоит в подборе такого значение параметра s , что
при удалении всех рёбер (t, u) таких, что g$ M' > s , граф распадается на
несколько связных компонент. Вершины каждой компоненты связаны хотя
бы одним путем, проходящим по ребрам. Эти компоненты и будут искомыми кластерами.
Алгоритм кратчайшего незамкнутого пути
В случае алгоритма кратчайшего незамкнутого пути (minimum
spanning tree, MST algorithm) должен быть задан параметр v — количество кластеров. На объектах из f строится кратчайший путь, проходящий
по всем вершинам, затем удаляются v − 1 рёбер, так что в графе остается
v связных компонент.
136
Часть I. Компоненты
Статистические алгоритмы кластеризации
Статистические алгоритмы предполагают, что данный класс содержит
тот или иной объект с определенной вероятностью, то есть класс рассматривается как случайная величина, которая имеет некоторое распределение
на множестве объектов. Задача кластеризации тогда эквивалентна статистической задаче разделения смеси распределений.
Для разделения смеси чаще всего используется EM-алгоритм
(Expectation-maximization algorithm) — он работает быстрее стандартных
методов кластеризации на данных большого объема. EM-алгоритм берет
случайные параметры соответствующих распределений и улучшает их,
приближая к более правдоподобным. Необходимо повторить этот алгоритм несколько раз — на каждом шаге параметры будут приближаться к
более правдоподобным. После некоторого количества повторений функция правдоподобия максимизируется.
На первом этапе (expectation) рассчитываются апостериорные распределения при фиксированных параметрах, а на втором этапе
(maximization) параметры пересчитываются так, чтобы им отвечала максимальная функция правдоподобия. Затем, после обновления параметров,
опять пересчитываются апостериорные распределения; этот цикл шагов E
и M производится до тех пор, пока корректировка распределения не станет незначительной.
Иерархическая кластеризация
Среди алгоритмов иерархической кластеризации (hierarchical
clustering) наиболее распространены агломеративные или восходящие. Их
цель — организовать некоторую иерархию кластеров объектов. Изначально каждый объект представляет собой отдельный кластер. Затем по значению функции расстояния s(J , J ), которая в случае одноэлементных кластеров равна g( , h ), пара самых близких кластеров w и x объединяется в
один новый кластер y . Расстояние от него до любого другого кластера z
вычисляется по расстояниям s(w, x), s(w, z), s(x, z):
s(y, z) = L{ s (w, z) + L| s (x, z) + }s(w, x) + ~|s (w, z) − s(x, z)|
Существуют способы определить оптимальное число повторений
этой операции для получения надежного разбиения множества объектов
на кластеры.
Формула определения расстояния между кластерами является универсальной, и при некоторых значениях L• , L€ , }, ~ получаются те способы
вычисления расстояния, которые обычно применяются: расстояние ближнего / дальнего соседа, среднее расстояние, расстояние Уорда и др.
Глава 5. Машинное обучение в лингвистике
137
Кластеризация в обработке текстов
В прикладной лингвистике существуют такие задачи, подготовка обучающих данных для которых очень трудоемка. Это, например, разрешение
лексической неоднозначности, то есть определение значения слова, или
выделение семантических классов слов — слов, описывающих одну ситуацию или один тип объектов. В таких задачах полезны методы кластеризации, однако следует осторожно подходить к признаковому описанию
объектов: обычно причиной отрицательного результата оказывается не
неверный выбор алгоритма, а модель, которая включает несущественные
признаки. Поэтому важно провести предварительный анализ входных
данных: например, на небольшой выборке слов и текстов оценить, какие
контекстные элементы позволяют носителю языка понять, в каком значении употреблено то или иное слово.
Описанные алгоритмы позволяют также проводить кластеризацию
текстов, хотя для этого существуют и специальные техники, объединяемые под названием латентно-семантического анализа.
3. Заключение
Обилие методов машинного обучения порой вызывает трудности при
решении конкретных задач. Подходить к выбору алгоритма и формализации задачи нужно предельно осторожно: каким бы замечательным ни был
алгоритм, неудачная модель может привести к непредсказуемым результатам. Необходимо четко понимать, в каких условиях и при каких допущениях применяется алгоритм. Если результат МО получился неудовлетворительным — проблема точно в модели.
Беглый обзор методов МО, представленных в данном разделе, не отражает современной картины полностью, но, будем надеяться, поможет
читателю сориентироваться при выборе подходящего алгоритма для решения своих задач.
Литература
Специальной литературы, посвященной алгоритмам машинного обучения в прикладной лингвистике на русском языке практически нет. Нет
её, на самом деле, и на английском; некоторые отсылки можно найти в
известном учебнике [Jurafsky, Martin 1999]. Поискать, какие алгоритмы
используются в конкретной задаче, проще всего по статьям крупнейших
конференций по компьютерной лингвистике — ACL, EACL, NAACL,
LREC и других. Все материалы можно найти в антологии Ассоциации по
138
Часть I. Компоненты
компьютерной лингвистике — ACL Anthology. Крупнейшая в России конференция по компьютерной лингвистике Диалог также публикует материалы в открытом доступе: http://www.dialog-21.ru/digest/. Именно в них
можно прочитать на русском о современных подходах к анализу русскоязычных текстов.
Относительно простые (не требующие специальных лингвистических
знаний и данных) задачи обработки текста вроде детектирования спама и
оценки тональности обычно упоминаются в различных пособиях по анализу данных (data mining). Из монографий на английском обычно рекомендуют [Hastie и др. 2009] и более практически ориентированный её
аналог [James и др. 2013], а также [Han 2012]. На русском языке существует несколько специальных пособий [Дьяконов 2010], [Мерков 2011].
На практике куда более удобными оказываются онлайн-ресурсы: курсы и энциклопедии. Кроме того, много статей с примерами и ссылок на
дополнительную
литературу
можно
найти
в
вики-ресурсе
MachineLearning.ru.
Дьяконов, A. Г. Анализ данных, обучение по прецедентам, логические игры, системы WEKA, RapidMiner и MatLab (практикум на ЭВМ кафедры математических методов прогнозирования). МАКСПресс, 2010. 278 с.
Мерков А. Б. Распознавание образов. Введение в методы статистического обучения. УРСС, 2011. 256 с.
Han J., Kamber M., Pei J. Data Mining: Concepts and Techniques, 3nd ed. Elsevier,
2012. 703 с.
Hastie T., Tibshirani R., Friedman J. The Elements of Statistical Learning, 2nd ed.
Springer, 2009. 533 с.
James G., Witten D., Hastie T., Tibshirani R. An Introduction to Statistical Learning with
Applications in R. Springer, 2013. 426 с.
Электронные ресурсы
Библиотека ACL Anthology: http://aclanthology.info
Компьютерная лингвистика и интеллектуальные технологии. http://www.dialog21.ru/digest/
Машинное
обучение:
информационно-аналитический
ресурс.
http://www.machinelearning.ru
Онлайн курсы
Воронцов К. В. Машинное обучение. Курс лекций в ШАД, 2014.
https://yandexdataschool.ru/edu-process/courses/machine-learning
Ng A. Machine Learning. Online-course. https://www.coursera.org/learn/machinelearning/
Глава 5. Машинное обучение в лингвистике
139
Список пакетов машинного обучения для различных языков программирования
LibLinear C++ http://www.csie.ntu.edu.tw/~cjlin/liblinear/
LibSVM C++ https://www.csie.ntu.edu.tw/~cjlin/libsvm/
TensorFlow C++ https://github.com/tensorflow/tensorflow/
Weka (Java) http://www.cs.waikato.ac.nz/ml/weka/
Mallet (Java) http://mallet.cs.umass.edu/
Spark (Java) http://sparkjava.com/
Sckit-learn (Python) http://scikit-learn.org/stable/index.html
Orange (Python) http://orange.biolab.si/
Mlpy (Python) http://mlpy.sourceforge.net/
TensorFlow (Python) https://www.tensorflow.org/versions/master/get_started/index.html
Глава 6
Корпусная лингвистика
Автор: Виктор Павлович Захаров, выпускник 1970 года, доцент
кафедры математической лингвистики СПбГУ
1. Корпусы вчера и сегодня
Корпусная лингвистика (corpus linguistics) — это раздел лингвистики, существующий более полувека и занимающийся созданием и использованием корпусов для решения разнообразных лингвистических (и не
только) задач.
Первый корпус был создан в 1960-е годы в США в Брауновском университете Генри Кучерой и Нельсоном Фрэнсисом — он так и называется
— Брауновский (Brown University Standard Corpus of Present-Day American
English). Сегодня корпусная лингвистика это нечто большее. Сегодня корпусы (или корпусá) стали неотъемлемой частью лингвистики, одним из ее
краеугольных камней, как словари и грамматики. После появления корпусов вся лингвистическая наука стала другой, можно сказать, вся лингвистика стала корпусной.
Правда, можно сказать, что лингвисты все время занимались корпусной лингвистикой, не подозревая об этом. Не случайно статья Н. Фрэнсиса
называется Corpora B. C. (корпусы до нашей эры) [Francis 1992]. Здесь,
конечно, игра слов: автор имел в виду корпусы до компьютеров (Corpora
Before Computers). Но в статье речь идет о том, что идеи корпусной лингвистики действительно зародились в докомпьютерную эпоху. Лингвисты
и лексикографы всегда в своей работе использовали эмпирический материал, цитаты из текстов, которые выписывались на карточки и образовывали «корпусы» под названием картотеки.
Зачем нужен корпус в современной лингвистике?
1. На основе корпусов создаются словари и грамматики.
2. Корпусы помогают и в теоретической лингвистике: при исследовании
какого-то явления можно быстро собрать нужные данные в их естественном контексте и проанализировать.
3. На основе корпусов проводится машинное обучение для самых разных областей прикладной лингвистики.
Глава 6. Корпусная лингвистика
141
4. Они могут пригодиться и для любых других задач, связанных с языком — однажды созданный и подготовленный корпус может использоваться многократно, различными исследователями и в разных целях.
2. Основные свойства корпуса
Основное понятие корпусной лингвистики — это корпус. Существует
множество определений понятия «корпус». Но, наверное, везде будет указано на 4 главные его свойства: 1) электронный; 2) репрезентативный;
3) размеченный; 4) прагматически ориентированный (создаваемый для
определенных целей).
Рассмотрим эти свойства чуть подробнее.
2.1. Электронный
То, что корпус в современном понимании всегда электронный, сразу
ставит вопрос о специальной программной системе для работы с ним. Эту
систему чаще всего называют корпусным менеджером (или корпусменеджером, corpus manager). Это специализированная поисковая система
для поиска данных в корпусе, получения статистической информации и
предоставления пользователю результатов в удобной форме.
Поиск в корпусе позволяет по любому слову построить конкорданс
— список всех употреблений данного слова в контексте со ссылками на
источник. Поэтому раньше эту поисковую программу называли конкордансер.
2.2. Репрезентативный
Термин репрезентативность (representativeness) можно перевести
как представительность, т. е. корпус должен хорошо «представлять» тот
объект, который он моделирует, т. е. язык. Но могут создаваться и корпусы, «представляющие» какой-то подъязык, например, корпус русского
языка 1-й половины XX века или корпус русского сонета или корпус разговорной речи жителей Заполярья. Почти в любом случае проблема репрезентативности существует и ее надо решать. Есть и исключения. Допустим, при создании корпуса писем Н. В. Гоголя очевидно, что туда должны
войти все письма Н. В. Гоголя. Естественно и понятно, что корпус — это
собрание текстов конечного фиксированного размера. А в реальном языке
таких текстов гораздо больше. Тогда встают две проблемы: проблема объема и проблема отбора.
142
Часть I. Компоненты
Проблема необходимого и достаточного объема явно была сформулирована в 1960-70-е гг. ХХ в. при создании частотных словарей, когда обсуждалось понятие представительной выборки — такого количества языкового материала, после достижения которого относительные частоты языковых единиц практически не меняются. Объем первых корпусов составлял
1 млн словоупотреблений (Брауновский корпус, корпус Ланкастер—ОслоБерген, корпус Частотного словаря русского языка под ред.
Л. Н. Засориной). Такой объем не позволял отразить язык во всем его многообразии.
Для того чтобы создать репрезентативный корпус достаточного объема, требуются большие ресурсы и немалое время. Задача создания такого
корпуса, представляющего язык в наиболее полном виде, во всем многообразии его жанров, стилей, территориальных и социальных вариантов,
под силу лишь большому коллективу, и таких представительных корпусов
для каждого языка не может быть много. Поэтому такие «главные» корпусы для каждого языка стали называть национальными. Как правило, это
бесплатный, доступный любому пользователю электронный онлайновый
корпус. Он должен включать не менее 100 млн словоупотреблений. Очевидно, что для изучения многих языковых явлений и этого объема недостаточно. Поэтому сейчас создаются корпусы, где счет словоупотреблениям
идет на миллиарды единиц.
Вторая проблема формирования представительной выборки — проблема отбора. Из каких текстов сформировать тот самый минимально необходимый объем? Поэтому появилось еще одно важное понятие корпусной лингвистики — сбалансированность (balance). Если корпус — это
уменьшенная модель языка, то, значит, в нем пропорционально должны
быть представлены текстов различных периодов, жанров, стилей, авторов
и т. д. Однако можно сказать, что применительно к языку в целом мы этих
пропорций не знаем. Тем не менее, к этому нужно стремиться, как на этапе проектирования корпуса, так и на этапе его развития.
Именно репрезентативность и сбалансированность корпуса определяют достоверность полученных на его материале результатов.
2.3. Размеченный
Разметка корпуса, или аннотация — это главное, что отличает лингвистический корпус от коллекции текстов или электронной библиотеки.
Разметка заключается в приписывании текстам корпуса и их компонентам
дополнительной информации, метаданных. О разметке мы подробнее поговорим ниже.
Глава 6. Корпусная лингвистика
143
2.4. Прагматически ориентированный
Практика разработки и применения корпусов текстов показала, что
невозможно создать универсальный корпус, позволяющий решать любые
задачи любому исследователю. Корпусы всегда создаются под определенную задачу или круг задач. Эта задача определяет как наполнение корпуса
текстами (например, тексты на албанском языке, письма Н. В. Гоголя, тексты языка охотников и охотоведов), так и разметку корпуса (морфологическая, синтаксическая и т. д., с учетом разнообразия жанров, с учетом социологических характеристик говорящих или без). Очевидно, что стандартные корпусные менеджеры должны поддерживать достаточно широкий набор функций, но не все. Поэтому национальные корпусы ориентированы на решение определенного, достаточно широкого, но все же ограниченного круга задач. Для решения других задач должны создаваться
специализированные корпусы и специальное программное обеспечение.
3. Какие бывают корпусы
Ныне создано уже огромное число корпусов, что определяется многообразием исследовательских и прикладных задач. Количество и разнообразие корпусов, созданных сравнительно за небольшой промежуток
времени, поражает воображение. Как с одной точки на Земле нельзя обозреть весь земной шар, так невозможно и в одном месте учесть и описать
все существующие корпусы.
Даже одно перечисление подкорпусов только Национального корпуса
русского языка, показывает, как много сделано в корпусной лингвистике.
В его состав, помимо основного корпуса, охватывающего два века существования русского языка, входят газетный подкорпус, диалектный, синтаксический, обучающий, поэтический, устный, мультимедийный, исторический и параллельный подкорпусы. Каждый из них обладает рядом характерных особенностей. Так, мультимедийный русский корпус [Гришина
2009], образованный фрагментами кинофильмов 1930–2000-х гг. и другими
материалами, представляет собой параллельные видеоряд, аудиоряд и текстовую расшифровку звучащей речи, а также специальную разметку наблюдаемых в кадре жестов. И возможен поиск не только по произносимому
тексту, но и по жестам (кивание головой, похлопывание по плечу и т. п.) и
типу речевого действия (согласие, ирония и т. п.).
Количество специальных корпусов текстов только для русского языка
— это сотни а, возможно, и тысячи наименований: рассказы о сновидениях; русскоязычный эмоциональный корпус; Санкт-Петербургский учебный корпус текстов школьников, изучающих английский язык; СанктПетербургский корпус агиографических текстов; Регенсбургский диахро-
144
Часть I. Компоненты
нический корпус древнерусских текстов; коллекция древнейших и средневековых славянских и русских текстов «Манускрипт»; рукописные памятники Древней Руси, включая берестяные грамоты, и мн. др.
Классификацию корпусов можно проводить разными способами.
Классифицирующим признаком может выступать цель создания корпуса,
тип языковых данных, «литературность», жанр, динамичность, тип разметки, объем текстов и др.
Рассмотрим подробнее две классификации корпусов, связанных с параллельностью и типом языковых данных.
3.1. Параллельные корпусы
По критерию параллельность корпусы делятся на одноязычные, двуязычные и многоязычные. В одноязычных корпусах противопоставляются варианты (диалекты) языка, например, такие разновидности английского языка, как британский английский и американский английский, или
английский как родной и английский как иностранный.
Двуязычные и многоязычные корпусы, в свою очередь, можно разделить на два основных типа:
1) параллельные или переводные корпусы (parallel, translation
corpora), представляющие множество текстов-оригиналов, написанных на каком-либо исходном языке, и переводов этих исходных текстов на один или несколько других языков;
2) псевдопараллельные, или сопоставимые, корпусы (comparable
corpora), объединяющие тексты из одной и той же тематической области, написанные на двух или нескольких языках, но тексты оригинальные.
Корпусы обоих типов используются для создания систем автоматического перевода, для автоматического извлечения терминов, для сравнительных исследований языков, а также для изучения иностранного языка.
При подготовке параллельных корпусов первого типа возникает проблема выравнивания (alignment) — установление соответствий между
фрагментами текста оригинала и текста перевода. Для решения этой задачи используются различные методы автоматического выравнивания текстов, реализуемые разными программами: LF Aligner, Hunalign, TextAlign,
ABBYY Aligner, GIZA++, Wordfast tools и др.
3.2. Корпусы устной речи
По типу языковых данных корпусы делятся на письменные, устные
(речевые) и смешанные. Следует помнить, что более 90 % продуктов
Глава 6. Корпусная лингвистика
145
речевой деятельности — это речевые произведения и что по многих параметрам устная речь сильно отличается от письменной. Чем и как — до
последнего времени мы знали об этом очень мало.
Создание репрезентативного корпуса устной речи является сложной и
трудоемкой задачей. Построение корпусов устной речи продвигается намного медленнее, чем построение корпусов письменной речи. В первую
очередь устную речь нужно как-то зафиксировать — например, с помощью магнитной ленты, цифровой записи или видеокассеты. Затем ее нужно записать буквами, что является утомительной и дорогой работой.
Еще одна сложность создания фонетических лингвистических ресурсов связана с необходимостью транскрибирования устной речи и маркирования в записи для фонетического корпуса паралингвистических явлений, сопутствующих речи (паузы, смех, бормотание, кашель и т. п.).
Несмотря на трудности создания, в мире создается достаточно много
речевых корпусов. Яркими примерами таких корпусов для русского языка
являются корпус «Один речевой день» (ОРД), разрабатываемый в СанктПетербургском университете [Асиновский и др. 2010] и мультимедийный
корпус НКРЯ МУРКО, включающий кроме речи, еще и видеоряд [Гришина 2009].
4. Разметка корпусов
Технологический процесс создания корпуса можно представить в виде этапов, главными из которых являются токенизация, т. е. разделение
входного текста на составные элементы (слова, знаки препинания, числа
и т. п.), разметка, конвертирование размеченных текстов в структуру корпусного менеджера. Важнейшее место здесь занимает разметка (tagging
или annotation). Можно сказать, что благодаря ей корпус и становится
корпусом.
Разметка заключается в приписывании текстам и их компонентам специальных тегов: собственно лингвистических, описывающих лексические, грамматические и прочие характеристики элементов текста, и внешних, экстралингвистических (сведения об авторе и сведения о тексте: автор, название, год и место издания, жанр, тематика и т. п.).
4.1. Средства разметки
Разметка корпусов представляет собой трудоемкую операцию и
должна, естественно, выполняться автоматически, особенно учитывая
огромные размеры современных корпусов. А если с какими-то типами
разметки автоматизация еще не справляется и основная часть работы
146
Часть I. Компоненты
должна производиться вручную, то это сразу ограничивает размер корпуса. Для морфологической и синтаксической разметки существуют различные программные средства, которые называют теггерами (taggers) и парсерами (parsers), позволяющие большую часть работы выполнить в автоматическом режиме.
В результате работы программ автоматической морфологической
разметки каждой лексической единице, точнее, каждому отдельному словоупотреблению, приписываются грамматические характеристики (часть
речи, род, число, падеж, время, лицо, залог, наклонение и т. п.). В результате работы программ автоматической синтаксической разметки фиксируются синтаксические связи между словами и словосочетаниями, а синтаксическим единицам приписываются соответствующие характеристики
(тип предложения, синтаксическая функция словосочетания и т. п.).
Существует два типа программ разметки — системы, основанные на
словарях и правилах, и системы с машинным обучением на каком-либо
тренировочном массиве.
Однако автоматический анализ естественного языка всегда не безошибочен и неоднозначен — он, как правило, дает несколько вариантов
анализа для одной и той же языковой единицы (слова, словосочетания,
предложения). В этом случае говорят о грамматической омонимии. Снятие
неоднозначности (морфологической, синтаксической) является одной из
важнейших и сложнейших задач компьютерной лингвистики.
4.2. Лингвистическая разметка
Среди лингвистических типов разметки выделяются: морфологическая, синтаксическая, семантическая, анафорическая, просодическая, дискурсная и др. Как правило, они соответствуют следующим принципам:
1) теоретически нейтральная (традиционная) схема разметки;
2) общепринятая система лингвистических понятий;
3) известная для пользователя схема анализа;
4) мотивированность введения параметров;
5) следование международным стандартам.
4.2.1. Морфологическая разметка
В иностранной терминологии употребляется термин part-of-speech
tagging (POS-tagging), дословно — частеречная разметка. В действительности морфологические метки включают не только признак части речи, но
и признаки грамматических категорий, свойственных данной части речи, а
также нормальную форму слова, лемму. Это основной тип разметки: вопервых, морфологический анализ лучше всего автоматизирован, во-
Глава 6. Корпусная лингвистика
147
вторых, он рассматривается как основа для дальнейших форм анализа —
синтаксического и семантического.
Данные о разметке представляются в том или ином структурированном виде. Приведем пример морфологической разметки фрагмента текста
на русском языке «Звонили к вечерне. Торжественный гул колоколов…» в
XML-формате на основе разметчика сервиса АОТ (рис. 1).
<?xml version="1.0" encoding="windows-1251" ?> <text> <p>
<s>
<w>Звонили<ana lemma="ЗВОНИТЬ" pos="Г" gram="мн,нс,нп,дст,прш,"/>
</w>
<w>к<ana lemma="К" pos="ПРЕДЛ" gram="" /></w>
<w>вечерне
<ana lemma="ВЕЧЕРНЯ" pos="С" gram="жр,ед,дт,пр,но," />
<ana lemma="ВЕЧЕРНИЙ" pos="П" gram="ср,ед,кр," /></w>
<pun>.</pun> </s>
<s><w>Торжественный<ana lemma="ТОРЖЕСТВЕННЫЙ"
pos="П" gram="мр,ед,им,вн," /></w>
<w>гул<ana lemma="ГУЛ" pos="С" gram="мр,ед,им,вн,но," /></w>
<w>колоколов
<ana lemma="КОЛОКОЛ" pos="С" gram="мр,мн,рд,но," />
<ana lemma="КОЛОКОЛОВ" pos="С" gram="мр,фам,ед,им,од," /></w>
…………………………………………………….……………………..
<pun>.</pun> </s></p></text>
Рис. 1. Пример морфологической разметки текста на русском языке.
В представленной записи использованы теги <text> — текст, <p> —
абзац, <s> — предложение, <w> — словоупотребление, <pun> — знак
пунктуации. Тег <w> содержит вложенный тег <ana> с атрибутами
<lemma> — лемма, <pos> — часть речи, <gram> — набор граммем.
4.2.2. Синтаксическая разметка
Синтаксическая разметка выполняется «поверх» данных морфологического анализа. Этот вид разметки зависит от принятой формальной синтаксической модели и описывает синтаксические связи между лексическими единицами и/или различные синтаксические конструкции (например, придаточное предложение, именное сказуемое и т. д.).
В отличие от морфологии, синтаксис не имеет унифицированных
способов представления структуры и синтаксических отношений. Обычно
синтаксическая разметка выполняется в терминах грамматики зависимостей или грамматики непосредственно составляющих, о которых подробно рассказывалось во второй главе.
148
Часть I. Компоненты
4.2.3. Семантическая разметка
Семантические теги чаще всего обозначают семантические категории, к которым относится данное слово или словосочетание, и более
узкие подкатегории, определяющие его значение. Семантическая разметка корпусов предусматривает спецификацию значений слов, разрешение омонимии и синонимии, категоризацию слов (разряды), выделение тематических классов, признаков каузативности, оценочных и деривационных характеристик и т. д.
Один из возможных вариантов семантической разметки предлагает
НКРЯ. В этом корпусе каждой словоформе приписываются пометы трех
типов:
1) разряд (имя собственное, возвратное местоимение и т. д.);
2) лексико-семантические характеристики (тематический класс лексемы, признаки каузативности, оценки и т. д.);
3) деривационные характеристики (диминутив, отадъективное наречие
и т. д.).
4.2.4. Экстралингвистическая разметка
Экстралингвистическая разметка (метаразметка) включает в себя
«внешнюю», «интеллектуальную» разметку текстов корпуса (библиографические характеристики, типологические, тематические, социологические
характеристики). Например, художественные тексты в НКРЯ подразделяются
по жанрам: детектив, боевик, детская, документальная проза, драматургия
и т. д. Нехудожественная литература делится по сферам функционирования:
бытовая, официально-деловая, публицистика, реклама и т. д. Набор признаков для метаданных чаще всего основывается на рекомендациях проекта
TEI (Text Encoding Initiative).
Метаразметка нужна, во-первых, для выявления взаимосвязи языка и
условий его существования; во-вторых, для отбора и изучения отдельных
подмножеств языка.
5. Интернет как корпус
Поисковые массивы и системы Интернета тоже могут быть использованы как корпус для решения лингвистических задач.
Существовали проекты специальных поисковых машин-посредников,
имеющих корпусный интерфейс, но пользующихся базами данных поисковых систем. Одна из таких систем — британский Webcorp
(http://webcorp.org.uk). Однако в целом этот путь оказался малопродуктивным и периферийным.
Глава 6. Корпусная лингвистика
149
Затем возникла идея создавать полноценные корпусы на основе текстов, взятых из Интернета [Kilgarriff 2001]. Вначале эта технология столкнулась с большими трудностями как технического, так и идеологического
характера. Однако многие из них уже решены и за прошедшее десятилетие эта технология, получившая название wacky (Web As Corpus), достигла
заметных успехов. При этом в автоматическом режиме приходится решать
задачи, связанные как с особенностями веба (обилие ошибок, дублирование информации и т. п.), так и собственно корпусные (сбалансированность, разметка). И хотя нельзя сказать, что все хорошо, тем не менее уже
сегодня создаются корпусы объемом порядка 20 млрд словоупотреблений,
позволяющие изучать широкую периферию языка.
В России также реализуется подобный проект, получивший название
Генеральный Интернет-корпус русского языка (ГИКРЯ) [Беликов и др.
2010].
Следует упомянуть еще крупный и оригинальный корпусный проект
— диахронический корпус Ngram Viewer, созданный на основе библиотеки Google Вooks (https://books.google.com/ngrams). Сейчас это наиболее
мощный инструмент для диахронических исследований. Эта система содержит корпусы размеченных текстов книг на 9 языках. Например, корпус
книг на русском языке содержит 591 310 текстов общим объемом более
67 млрд словоупотреблений. Самые поздние публикации, включенные в
корпус, относятся к 2008 году. Результат поиска представляется в виде
графика изменения частоты встречаемости слова или n-граммы в заданном временном периоде (рис. 2).
150
Часть I. Компоненты
Рис. 2. График встречаемости сочетания «бурные аплодисменты» в период с 1920
по 2008 г.
Система обладает рядом уникальных возможностей: поиск по частям
речи, учет позиции слова в предложении, выявление самых частотных
биграмм, сложение кривых графика, совмещение на одном графике кривых нескольких лексических единиц, совмещение на одном графике кривых лексических единиц нескольких языков и т. д. [Захаров, Масевич
2012].
6. Сервис корпусного менеджера
Корпус текстов становится мощным инструментом в руках лингвиста
лишь с помощью специализированных программных средств, корпусных
менеджеров.
Современный корпусный менеджер должен:
• строить конкорданс;
• искать контексты не только по отдельным словам, но и словосочетаниям;
• сортировать списки по нескольким критериям, выбираемым пользователем;
• давать возможность отображать найденные словоформы в расширенном контексте;
Глава 6. Корпусная лингвистика
151
• давать статистическую информацию по отдельным элементам корпуса;
• отображать леммы, морфологические характеристики словоформ и
метаданные (библиографические, типологические), что зависит от
степени размеченности корпуса;
• сохранять и распечатывать результаты;
• работать как с отдельными файлами, так и с корпусами, неограниченными по размеру;
• быстро обрабатывать запросы и выдавать результаты;
• быть легким (интуитивно понятным) в использовании, как для опытного, так и для начинающего пользователя.
Современные корпусные системы позволяют решать и более сложные
задачи, такие как построение частотных списков, выявление коллокаций
(устойчивых сочетаний), ключевых слов и словосочетаний, построение
лексико-семантических групп и др.
Рассмотрим несколько корпусных менеджеров, чтобы понять общие
принципы их работы.
Тони Макэнери (Tony McEnery) и Эндрю Харди (Andrew Hardie)
[McEnery, Hardie 2012] описывают четыре поколения корпусных программных средств. Большинство современных инструментов корпусной
лингвистики классифицируются ими как инструменты третьего поколения. Они предлагают множество функций, включая статистические методы, многоязычную поддержку и включают в себя дружественный интерфейс. Примеры таких инструментов — WordSmith Tools, MonoConc Pro,
ParaConc, AntConc.
Для работы с корпусами небольших размеров часто используется
AntConc. Это свободно распространяемое программное обеспечение, с
удобным интерфейсом, имеющее множество функций по обработке текстов в разной кодировке и в разных форматах. С помощью AntConc можно
производить такие операции как:
• просмотр файла с текстом;
• построение конкорданса для заданного слова в пределах контекстного
окна;
• построение графиков к конкордансу;
• выделение n-грамм с заданным словом в пределах контекстного окна;
• выделение коллокатов заданного слова на основе мер ассоциации;
• построение частотного списка словоформ и/или лемм с указанием
ранга и абсолютной частоты;
• выделение ключевых слов.
Ограничением его является то, что он, как и другие подобные менеджеры, плохо работают с большими корпусами.
152
Часть I. Компоненты
И если раньше, в корпусах 2-го и отчасти 3-го поколения можно было
говорить о решении корпусных задач даже такими «подручными» средствами, как команды обработки текста grep, sort, unix или скрипты на Питоне, то для современных колоссальных корпусов требуется совсем другая
системная архитектура.
Ответом на это стало создание инструментов четвертого поколения,
таких как Sketch Engine, CQPweb, Wmatrix, Корпусная система Марка Дэвиса (Mark Davies) (http://corpus.byu.edu) и др. Эти инструменты позволяют работать с большими объемами данных, так как хранят корпуса в базе
данных веб-сервера и предварительно индексируют данные для ускорения
поиска.
Интересные лингвистические возможности реализованы в системе
Sketch Engine, разработанной в Университете им. Т. Г. Масарика (Чехия)
под руководством Адама Килгарриффа (Adam Kilgarriff) для одноименной
корпусной
службы,
работающей
по
подписке
(https://www.sketchengine.co.uk/). В настоящее время эта служба предоставляет пользователям более 350 корпусов разных языков мира. Система
Sketch Engine позволяет выявлять коллокации (словосочетания с указанием силы связи между компонентами), делать то же с учетом синтаксических формул (например, глагол + прямое дополнение), строить лексикосемантические поля для заданного слова, сравнивать сочетаемость синонимов, выявлять ключевые слова в корпусе. Ядро этой системы, получившее название NoSketch Engine (ранее Bonito/Manatee) [Rychlý 2007], распространяется бесплатно (http://nlp.fi.muni.cz/trac/noske/wiki/Downloads).
Этот менеджер (NoSketch Engine) используется во многих национальных
корпусах (чешский, словацкий, болгарский, хорватский и др.). Программа
позволяет загружать предварительно размеченные тексты и строить на их
основе корпусы. Работа с корпусными данными возможна в режиме конкорданса для заданного слова или словосочетания или в режиме составления частотных списков, в том числе и для морфологических тегов. Можно
проводить сложный поиск, предполагающий использование языка регулярных выражений.
7. Как сделать корпус самому
Каждый хороший корпус — это результат многолетней работы многих людей, требующей высокой квалификации. Поэтому обычно удобнее
пользоваться готовыми корпусами — вряд ли вам удастся создать что-то
более мощное, чем имеющиеся в открытом доступе ресурсы. Список некоторых национальных корпусов приводится в приложении к этой главе, в
Глава 6. Корпусная лингвистика
153
сети можно найти и огромное число самых разных специализированных
корпусов.
Но иногда возникает необходимость в каком-то особом корпусе. Например, вы решили с нуля создать корпус какого-то редкого языка. Или
для создания робота, управляющего трактором, вам понадобился корпус
высказываний трактористов во время работы, чтобы робот правильно
взаимодействовал с коллегами на соседних машинах. Или прикладной
лингвист захочет провести машинное обучение с помощью данных, которые отсутствуют в стандартном корпусе.
Во всех этих случаях нужно создавать корпус своими руками. Прежде
всего нужно четко сформулировать задачу и понять, какой корпус мы хотим создать. Процесс создания корпуса — это несколько процедур: токенизация, фильтрация, устранение дублей, морфологическая разметка, синтаксическая разметка, загрузка корпусных данных и др. — каждая из которых требует своих программных средств. Поэтому правильнее всего
выбрать систему, где эти средства интегрированы в единый комплекс. Естественно, этот выбор требует определенных знаний, понимания цели и
готовности идти на определенные компромиссы.
Систем, позволяющих создавать свои корпусы, не так много. Для небольших корпусов (1-10 млн словоупотреблений) можно порекомендовать
AntConc. При этом нужно знать, что в этой системе отсутствует модуль
лемматизации и морфологической разметки (можете без этого обойтись?
— идите на компромисс!). Для создания больших корпусов или для доступа к большой функциональности лучше всего воспользоваться услугами
Sketch Engine, предоставляющей бесплатную регистрацию в течение месяца (годовая лицензия на одного пользователя стоит 52 брит. фунта). При
этом Sketch Engine позволяет создавать корпусы как на основе собственных текстов, так и по технологии wacky на основе текстов из Интернета.
8. Корпусы как инструмент будущего
Можно сказать, корпусная лингвистика быстро завоевала центральные позиции в языкознании. Куда же плыть дальше? Некоторые направления кажутся очевидными. Прежде всего, это дальнейшее взаимовлияние и
взаимопроникновение с компьютерной лингвистикой. Каждая из них нуждается друг в друге. Во-вторых, будет наблюдаться все более широкое
распространение корпусной лингвистики — как материала и как метода
— на всю сферу гуманитарных исследований, в истории, социологии, литературоведении и т. д. Уже сегодня на базе корпусной методологии фактически сформировалась новая наука — культурометрия (culturomics)
(http://www.culturomics.org/). Но это еще не все. Тексто-ориентированный
154
Часть I. Компоненты
социальный и культурный опыт человечества в лице корпусной лингвистики получает инструмент, позволяющий надеяться, что мы научимся автоматически извлекать из текстов знание. Хочется также верить, что корпусная лингвистика вместе в психолингвистикой и нейролингвистикой
сформируют новую науку — интегрированную эмпирическую лингвистику — которая позволит глубже, чем до сих пор, понять фундаментальную
природу языка.
Литература
Учебная литература по корпусной лингвистике на русском языке
немногочисленна. Вот ее исчерпывающий (или почти исчерпывающий)
перечень:
Баранов А. Н. Корпусная лингвистика // Баранов А. Н. Введение в прикладную
лингвистику. М., 2001. С. 112–137.
Гвишиани Н. Б. Практикум по корпусной лингвистике: Учеб. пособие по английскому языку. М.: 2008.
Грудева Е. В. Корпусная лингвистика: Учебное пособие. 2-е изд., стереотип. М.:
2012.
Захаров В. П. Корпусная лингвистика: Учебно-метод. пособие. СПб., 2005.
Захаров В. П., Богданова С. Ю. Корпусная лингвистика: Учебник для студентов
направления «Лингвистика». 2-е изд., перераб. и дополн. СПб.: СПбГУ, 2013.
Копотев М. В. Введение в корпусную лингвистику. Прага: Animedia Company,
2014.
Из западных изданий к основополагающим можно отнести следующие:
Baker P., McEnery T., Hardie A. A glossary of corpus linguistics. Edinburgh: Edinburgh
University Press, 2006 (глоссарий по корпусной лингвистике).
Biber D., Conrad S., Reppen R. Corpus linguistics: Investigating language structure and
use. Cambridge University Press, 1998.
McEnery T., Hardie A. Corpus linguistics: method, theory and practice. Cambridge
University Press, 2012.
Xiao R., Tono Y. Corpus-based language studies: An advanced resource book. Taylor &
Francis, 2006.
Другие рекомендуемые или цитируемые издания:
Асиновский А. С., Богданова Н. В., Степанова С. Б., Шерстинова Т. Ю., Маркасова Е. В., Супрунова А. В. Звуковой корпус русского языка «один речевой
день»: пути пополнения и первые результаты исследования // Компьютерная
лингвистика и интеллектуальные технологии: По материалам ежегодной Международной конференции «Диалог», 2010. № 9 (16). С. 41–47.
Глава 6. Корпусная лингвистика
155
Беликов В. И., Копылов Н. Ю., Пиперски А. Ч., Селегей В. П., Шаров С. А. Корпус
как язык: от масштабируемости к дифференциальной полноте // Компьютерная лингвистика и интеллектуальные технологии: по материалам ежегодной
Международной конференции «Диалог» (Бекасово, 29 мая – 2 июня 2013 г.).
Вып. 12 (19). М.: Изд-во РГГУ, 2013. С. 84–95.
Гришина Е. А. Мультимедийный русский корпус (МУРКО): проблемы аннотации //
Национальный корпус русского языка: 2006–2008. Новые результаты и перспективы. СПб.: Нестор-История, 2009. C. 175–214.
Захаров В. П., Масевич А. Ц. Диахронические исследования на основе корпуса
русских текстов Google Books Ngram Viewer. Статья Структурная и прикладная лингвистика. Выпуск 10. СПб., 2014. С. 303–330.
Захаров В. П. Корпуса русского языка // Труды Института русского языка
им. В. В. Виноградова. Вып. 6. М., 2015. С. 20–64.
Леонтьева Н. Н. Корпусная лингвистика и другие лингвистические ресурсы для
систем АПТ // Леонтьева Н. Н. Автоматическое понимание текстов: Системы,
модели, ресурсы: Учебное пособие. М.: Академия, 2006. С. 258-272.
Плунгян В. А. Корпус как инструмент и как идеология: о некоторых уроках современной корпусной лингвистики // Русский язык в научном освещении, 2008.
№ 2. С. 7–20.
Wynne M (ed.). Developing Linguistic Corpora: a Guide to Good Practice. Oxford, 2005.
Fillmore Ch. Corpus linguistics or computer-aided armchair linguistics // Directions in
Corpus Linguistics: Proceedings of Nobel Symposium 82, Stockholm, 4–8 August,
1991, Berlin, 1992. P. 35 60.
Kilgarriff A. Web as corpus // Proc. of Corpus Linguistics 2001 conference (Lancaster
University).
Lancaster,
2001.
P. 342–344.
http://www.itri.bton.ac.uk/~Adam.Kilgarriff/wac_cfp.html
Leech G. The State of Art in Corpus Linguistics // English Corpus Linguistics / Aijmer
K., Altenberg B. (eds.). London, Longman, 1991. P. 8–29;
Francis N. W. Language Corpora B. C. In: Svartvik J. (ed.): Directions in Corpus
Linguistics. Proceedings of Nobel Symposium 82. Stockholm 4–6. August 1991.
Mouton, Berlin, 1991. P. 17–32.
Rychlý Pavel: Manatee/Bonito — A Modular Corpus Manager // 1st Workshop on
Recent Advances in Slavonic Natural Language Processing. Brno: Masaryk
University, 2007. P. 65-70.
Sampson G., McCarthy D. (eds.). Corpus linguistics: readings in a widening discipline.
Continuum: International Publishing Group, 2005.
Sinclair J. Corpus, concordance, collocation. Oxford University Press, 1991.
Stubbs M. Text and corpus analysis: Computer-assisted studies of language and culture.
Oxford: Blackwell, 1996.
Tognini-Bonelli E. Corpus linguistics at work. John Benjamins, 2001.
Xiao R., Tono Y. Corpus-based language studies: An advanced resource book. Taylor &
Francis, 2006.
Сборники Национального корпуса русского языка и Труды конференций:
Национальный корпус русского языка. 2000–2005. М., 2006.
156
Часть I. Компоненты
Национальный корпус русского языка: 2006–2008. Новые результаты и перспективы. СПб., 2009.
Труды Института русского языка им. В. В. Виноградова. Вып. 6. М., 2015.
Труды международной конференция по компьютерной лингвистике «Диалог».
http://www.dialog-21.ru
Труды международной научной конференции «Корпусная лингвистика». СПб.:
Изд-во С.-Петерб. ун-та, 2002–2013. htpp//corpora.phil.spbu.ru
Электронные ресурсы
Основные корпусы русского языка
http://ruscorpora.ru
http://www.ling.helsinki.fi/projects/hanco
http://corpus.leeds.ac.uk/ruscorpora.html
http://aot.ru/search1.html
http://sketchengine.co.uk
Список некоторых национальных корпусов
Корпус
Название и адрес в сети
Объем
(с/у)
100 млн
Корпус
английского
языка
Британский национальный корпус
http://corpus.byu.edu/ или
http://sara.natcorp.ox.ac.uk/
Корпус арабского языка
arabiCorpus
arabicorpus.byu.edu/
Корпус
арабского
языка
The Quranic Arabic Corpus (Коран)
77 тыс.
http://corpus.quran.com/
An annotated linguistic resource which shows the Arabic
grammar, syntax and morphology for each word in the
Holy Quran. The corpus provides three levels of analysis:
morphological annotation, a syntactic treebank and a semantic ontology
174 млн
Корпус болгар- Болгарский национальный корпус
ского языка
http://www.ibl.bas.bg/BGNC_bg.htm
1,2 млрд
Корпус венгер- Венгерский национальный корпус
ского языка
http://mnsz.nytud.hu/index_hun.html
188 млн
Корпус датско- Корпус датского языка KorpusDK
го языка
http://ordnet.dk/korpusdk
56 млн
Корпус испан- Корпус испанского языка (проект М. Дэвиса)
ского языка
http://www.corpusdelespanol.org/
100 млн
Корпус испан- Corpus de Referencia del Español Actual (CREA)
ского языка
http://corpus.rae.es/creanet.html
150 млн
Глава 6. Корпусная лингвистика
157
Корпус итальянского языка
Корпус итальянских текстов Болонского университета 130 млн
CORIS
http://corpora.dslo.unibo.it/
Корпус китайского языка
The LIVAC Synchronous Corpus (газетный)
(Linguistic Variations in Chinese Speech Communities)
450 млн
Корпус китайского языка
Scripta Sinica database (база данных текстов)
http://hanchi.ihp.sinica.edu.tw/ihp/hanji.htm
445 млн
Корпус немец- Немецкий справочный корпус (Das Deutsche
кого языка
Referenzkorpus — DeReKo)
http://www.ids-mannheim.de/kl/projekte/korpora/
5,4 млрд
Корпус
немецкого
языка
Корпус электронного словаря немецкого языка
http://www.dwds.de
2,5 млрд
(в поиске
1,8 млрд)
Корпус
немецкого
языка
Синтаксически аннотированный корпус немецкого
языка NEGRA
http://www.coli.uni-saarland.de/projects/sfb378/negracorpus
355 тыс.,
(20600
предл.)
Корпус польского языка
PELCRA Reference Corpus of Polish
http://pelcra.pl/3–2?lang=pl
100 млн
Корпус польского языка
Корпус польского языка IPI PAN
http://korpus.pl/index.php?lang=pl&page=welcome
250 млн
Корпус словац- Словацкий национальный корпус
кого языка
http://korpus.juls.savba.sk/
1,2 млрд
Корпус словен- Корпус словенского языка
ского языка
http://www.fidaplus.net/
621 млн
Корпус словен- Nova beseda/
ского языка
http://bos.zrc-sazu.si/a_beseda.html
318 млн
Корпус
французского
языка
215 млн
American and French Research on the Treasury of the
French Language (ARTFL-FRANTEXT)
http://artfl-project.uchicago.edu/content/artfl-frantext
Корпус фран- Lexiqum
цузского языка http://retour.iro.umontreal.ca/cgi-bin/lexiqum
229 млн
Корпус чешско- Чешский национальный корпус
го языка
http://www.korpus.cz/
1,3 млн
Корпус шведского языка
Банк шведского языка (разные корпусы и словари)
http://spraakbanken.gu.se/
1,3 млрд
Корпус японского языка
The Balanced Corpus of Contemporary Written Japanese
(BCCWJ)
http://www.ninjal.ac.jp/english/products/bccwj/
100 млн
Часть II
Направления
Глава 7
Машинный перевод
Автор: Ольга Владимировна Митренина, выпускница 1993 года,
доцент кафедры математической лингвистики СПбГУ
1. Три подхода к машинному переводу
Машинный перевод был первой задачей компьютерной лингвистики.
Точнее, второй. Первой была дешифровка, а идея машинного перевода
возникла из дешифровки естественным образом.
Первый компьютер появился в 1938 году — его собрал молодой немецкий инженер Конрад Цузе, сдвинув столы в гостиной родительского
дома. В 1939 году началась Вторая мировая война, и вскоре компьютеры
начали использоваться для расшифровки перехваченных сообщений противника. Они позволили сократить время дешифровки с нескольких недель до нескольких часов.
После войны американский математик Уоррен Уивер предложил рассмотреть задачу автоматического перевода именно как дешифровку. «Когда я вижу текст на русском языке, я говорю себе, что на самом деле он
написан по-английски и зашифрован при помощи странных знаков. И мне
надо его просто расшифровать», — так описал Уивер задачу машинного
перевода в своем письме математику и философу Норберту Винеру. Дату
этого письма — 4 марта 1947 года — можно считать днем рождения машинного перевода как научного направления.
Но идея перевода как дешифровки была понятна далеко не всем. Ведь
люди переводят совсем не так, как работает дешифровщик. Человек должен знать грамматику обоих языков и уметь пользоваться словарем. Тогда
можно понять, что в предложении Маша ела кашу деятелем является Маша, а ее действием — поедание какого-то продукта, которым оказывается
Глава 7. Машинный перевод
159
каша. Осознав смысл предложения и роли входящих в него слов, человек
строит новое предложение на другом языке.
Дешифровщик действует иначе. Зашифрованный текст — это не случайная цепочка знаков, в нем должны быть какие-то закономерности. Дешифровщик отмечает частоту отдельных элементов текста и частоту взаимной встречаемости элементов. Он может запомнить, в каком окружении
появляются те или иные куски непонятного текста. Эти и другие «отклонения от случайности» позволяют ему найти ключ к преобразованию закодированного сообщения из непонятной цепочки символов в текст на
понятном языке. Так видел задачу машинного перевода Уоррен Уивер,
который и сам во время войны работал шифровальщиком.
Но история распорядилась иначе, и методы дешифровки понадобились разработчикам на 50 лет позже, чем предполагал Уивер. А до этого
машину учили переводить тем же способом, которым действуют переводчики-люди — с помощью словарей и грамматик.
Сегодня существуют три разных подхода к машинному переводу:
1) Перевод на основе правил (rule-based machine translation, RBMT)
действует по той же схеме, что и человек-переводчик. Для нее необходим как можно более подробный словарь и очень подробная грамматика обоих языков. Все ранние системы переводов были основаны
на правилах.
2) Статистический машинный перевод (statistical machine translation,
SMT) обходится без словаря и грамматики, он работает только на основе методов машинного обучения. Компьютеру потребуется очень
много пар «предложение + его перевод». Он запомнит, как переводились двойки или тройки слов, в каком окружении они встречались,
где в предложении находились. После этого, получив для обработки
новое предложение, он сможет выбрать его наиболее вероятный перевод. При этом он будет учитывать только окружение, в котором встречалось то или иное слово, и частоту различных цепочек слов.
3) Гибридный перевод (hybrid machine translation, HMT) — это комбинация правил и статистики. Совмещать два этих подхода можно разными способами, поэтому гибридные переводчики могут быть разных типов. Сейчас это самый современный подход, почти все разработчики стремятся использовать гибридные технологии.
При машинном переводе текст обрабатывается компьютером без участия человека. А если текст переводится человеком с использованием различных компьютерных технологий, то говорят об автоматизированном
переводе (САТ, computer-aided translation или computer-assisted
translation), но это не машинный перевод, и мы его рассматривать не будем.
160
Часть II. Направления
2. Перевод на основе правил
2.1. Три способа перевода с помощью правил
В 1954 году американцы продемонстрировали миру первую действующую программу машинного перевода. Ее разработали совместно фирма IBM и Джорджтаунский университет. В честь университета презентацию программы назвали Джорджтаунским экспериментом. На глазах у
зрителей компьютер перевел 49 заранее отобранных предложений с русского на английский язык. Он использовала словарь из 250 слов и грамматику, состоящую из шести синтаксических правил.
Долгое время все системы машинного перевода разрабатывали именно этот подход — в машину загружались все более сложные словари и
правила анализа слов и предложений.
Принято выделять три разных типа перевода на основе правил:
• трансферные системы (исходное предложение → препарированное
исходное предложение → предложение на другом языке);
• системы пословного перевода (слова исходного текста → слова перевода);
• интерлингвистичесие системы (исходный текст → описание его
смысла на универсальном языке-посреднике → текст перевода).
Трансферная система (transfer-based machine translation, transfer
systems) в наибольшей степени подражает человеку-переводчику. Она анализирует исходное предложение, переводит его слова, выясняет их роли, а
затем с помощью грамматики собирает новое предложение на конечном
языке.
Система пословного перевода (word-by-word machine translation,
другие названия — direct systems, dictionary based machine translation) —
это самый примитивный подход. В предложении переводятся все слова, а
текст правится минимально. При этом получается перевод хотя и не очень
гладкий, но в большинстве случаев понятный. Этот подход использовался
в ранних программах, он и сейчас иногда применяется, например, для упрощения работы переводчиков-людей.
Интерлингвистичесие системы (interlingual systems) используют
язык-посредник, который называется интерлингвой (interlingua). Строго
говоря, это даже не язык в привычном для нас смысле, а некоторое формальное представление смысла человеческой речи и мыслей. На заре компьютерной лингвистики идея создания такой системы была очень популярна [Беляева, Откупщикова 1996], но создать полноценный универсальный вспомогательный язык ученым пока не удалось.
Глава 7. Машинный перевод
161
Пословные переводчики и интерлингвистические системы сейчас
практически не используются. Большинство RBMT систем применяют
трансферный подход, поэтому мы рассмотрим его чуть подробнее.
2.2. Трансферный подход
Практически все компьютерные системы переводят текст по предложениям, поэтому текст должен быть разбит на предложения. В каждом из
них надо выделить входящие в него слова, знаки препинания и другие
элементы. Полученные элементы называются токенами (tokens), а сам
процесс — токенизацией (tokenization).
Далее токены (то есть, слова и знаки) необходимо проанализировать,
чтобы понять их роль в предложении. Об этом рассказывается во второй
главе данной книги, которая посвящена компьютерной морфологии. В
результате для каждого слова будут определена его часть речи и его грамматические значения. Кроме того, для целей перевода необходимо сопоставить каждое слово с нужным разделом компьютерного словаря. Об этих
словарях мы поговорим подробнее чуть позже.
После того, как все токены проанализированы, необходимо понять
структуру предложения — найти связи между словами, объединить слова
в группы. Об этом рассказывается во второй главе нашей книги, посвященной компьютерному синтаксису. Так, многие переводчики на раннем
этапе собирают именные группы. Например, сочетание Добрые животные будет отмечено как целостная именная группа.
Когда структура предложения будет ясна, компьютер строит новое
предложение на конечном языке, используя переводы слов. Но это в идеале. На практике всегда оказывается, что существующих правил обработки
недостаточно, а описание слов в словаре должно быть более подробным.
После этого начинается этап совершенствования системы. Разработчик
анализирует переводы и пополняет словари и правила новыми условиями,
чтобы компьютер мог учитывать смысловые и формальные связи. Например, английское слово plant имеет два значения: растение и завод, поэтому сочетание the strike at the plant может быть ошибочно переведено как
забастовка на растении. Но предлог at в сочетании at the plant употребляется обычно тогда, когда речь идет о заводе. Поэтому можно добавить в
систему правило: если слово plant сочетается с предлогом at, значит, переводить его надо как завод.
Правильный вариант перевода можно выбирать на основе семантического типа слов. Например, если английский глагол to press употребляется
с элементом одежды (the dress — «платье»), то его надо переводить как
«гладить» или «погладить», а не «нажимать».
162
Часть II. Направления
Улучшить качество текста помогает база памяти переводов
(translation memory) — сохраненные заранее сегменты текста и их переводы, выполненные человеком. Это могут сочетания слов и целые предложения, например, идиомы или фрагменты деловой и личной переписки.
При переводе они могут вставляться в текст автоматически или по указанию пользователя.
Способы лингвистической настройки перевода весьма разнообразны,
но они требуют много часов (точнее, много лет) работы квалифицированных лингвистов. Наверное, самые подробные словари для русского языка
существуют в компании PROMT. Они разрабатываются уже более 20 лет
усилиями многих лингвистов и инженеров и могут быть интегрированы
не только в системы перевода, но и в другие системы обработки языка.
2.3. Пример словарей и грамматик компании PROMT
Рассмотрим систему словарей компании PROMT — ведущей российской организации, занимающейся машинным переводом. Сейчас переводчики PROMT используют гибридные технологии, но их основу составляет мощная система словарей и грамматик, позволяющая компании выигрывать международные конкурсы по машинному переводу на русский
язык.
Система словарей в PROMTе содержит:
1) словари основ;
2) таблицы флексий;
3) вспомогательные таблицы.
В словаре основ хранится (1) базовая форма каждого слова, (2) его
псевдооснова, (3) его грамматические и семантические признаки, а также
(4) его переводы на другой язык с подсказками, какой перевод в каких
случаях использовать.
Как, например, устроена словарная статья для слова площадь? Она
хранит его базовую форму площадь, чтобы было понятно, о каком слове
идет речь. Кроме того, в словарной статье хранится псевдооснова площад
— именно эта часть слова не меняется при изменении числа и падежа.
Некоторые грамматические признаки этого слова записываются в словарную статью, а другие признаки хранятся в виде ссылок. В словарную статью можно записать, что это существительное мужского рода. И можно
дать ссылку на ту строчку в таблице флексий, где хранятся окончания этого слова для разных падежей. Это будет та же строчка, что и у слова кровать, потому два этих слова изменяются одинаково.
Семантические признаки удобно привязывать к переводу. Английский
слово площадь можно перевести тремя способами: area (если речь идет о
Глава 7. Машинный перевод
163
территории), square (если подразумевается городская площадь) или
ploschad (при транслитерации названий). Контекст слова площадь может
подсказывать, как правильно его перевести. Например, если за ним идут
цифры, а затем единицы измерения (100 кв. м.), то тогда это сочетание
переводится как square of. Вся эта информация хранится в словаре основ.
В таблице флексий хранятся все типы изменения слов.
Вспомогательные таблицы созданы для обработки нестандартных
случаев слов. Таких таблиц несколько. Это базы префиксов и постфиксов,
то есть, начальных и конечных частей слов, а также база имен и географических названий.
В базе префиксов указаны, например, переводы начальных частей
слов:
восточно — East
восьмидесяти — eightyвысоко — highвэб — web
В базе постфиксов хранятся не только окончания слов, но и их предположительные части речи, а также похожее слово с таким же окончанием. Вот примеры записей из таблицы постфиксов:
*ойл — NOUN — Казахойл
*инвест — NOUN — Связьинвест
*дума — NOUN — Мосгордума
*банк — NOUN — Райффайзенбанк
В базе имен и географических названий указаны переводы многих
личных имен с указанием их рода, типа склонения и некоторых других
полезных сведений.
В процессе лингвистической настройки словари активно пополняются, в них заносятся новые значения и условия. Но, к сожалению, эти кропотливо собранные данные можно использовать только для одной языковой пары (например, для перевода с английского на русский) и, как правило, только для одной системы.
В этом отношении данные для статистического перевода гораздо более универсальны.
164
Часть II. Направления
3. Статистический машинный перевод
3.1. Главная формула перевода
В основе статистического перевода лежат разработки американского
математика Клода Шеннона, которые он вел в совершенно другой области.
Во время Второй мировой войны немцы научились расшифровывать телефонные переговоры между правительствами США и Великобритании.
Тогда решено было разработать новую систему передачи голоса по телефону. Предполагалось сжимать речевой сигнал и маскировать его с помощью шума. Клод Шеннон придумал математический аппарат, который
позволял дешифровать полученный на выходе звуковой поток и выделять
из шума исходный сигнал.
Разработки Шеннона позже пригодились и для машинного перевода.
Ведь можно представить, что имеющееся у нас исходное предложение мы
получили в результате маскировки сигнала с помощью шума. А его перевод — это на самом деле исходное переданное нам предложение, которое
нужно декодировать.
Если у нас есть предложение х в исходном языке, то задача машинного сводится к поиску в конечном языке такого предложения у, которое с
наибольшей вероятностью является переводом предложения х. Иными
словами, нас интересует условная вероятность — вероятность предложения у при наличии предложения х. Она записывается как p(у|x).
Например, мы перeводим английское предложение The dog is hungry.
Теоретически, его переводом может оказаться любое русское предложение
у:
y1 = Собака сидит на крыше
y2 = Собака голодная
y3 = Собака голодный
y4 = Собака есть голодная
y5 = Голодная голодная собака
…
У каждого из этих предложений есть своя вероятность быть переводом предложения х. Можно записать эти вероятности как p(у1|x), p(у2|x),
p(у3|x) и т. д.
Из всех этих предложений yn компьютер должен выбрать самое вероятное, при условии, что у нас есть предложение х. Или, если записать это
с помощью формул, мы ищем вот что:
arg maxу p(у|х)
(1)
Глава 7. Машинный перевод
165
Но эту формулу можно переписать с помощью теоремы Байеса, о которой говорилось в пятой главе, посвященной методам машинного обучения.
arg max p(у|х) = arg max
у
у
p(y)×p( |y)
p(x)
(2)
Получившуюся формулу можно упростить. Значение в знаменателе
р(х) — это вероятность появления исходного предложения х. Она является
постоянной величиной и не влияет на поиск такого у, при котором вероятностная формула принимает максимальное значение. Поэтому знаменатель р(х) можно убрать:
arg max p(y|x) = arg max p(y) × p(x|y)
у
у
(3)
Иными словами, нам необходимо найти, при каком у получается максимальное произведение двух величин. Первая из них — это вероятность
p(у), вероятность появления предложения у в языке. Понятно, что такая
вероятность будет выше у предложения Собака голодная, чем у предложения Собака голодный. Эта вероятность вычисляется с помощью модели
языка, которой будет посвящен следующий раздел.
Множитель p(x|у) в формуле (3) — это «обратный перевод», вероятность того, что конечное предложение у можно перевести с помощью исходного предложения х. Она вычисляется с помощью модели перевода, о
которой мы тоже поговорим в этой главе. В нашем примере это вероятность того, что предложение Собака голодный можно перевести на английский как The dog is hungry.
Но тут может возникнуть вопрос. Неужели формула Байеса упрощает
ситуацию? Ведь фактически, нам надо считать то же самое, вероятность
перевода с одного языка на другой, но только в другую сторону. Но здесь
нужно вспомнить, что теоретически в качестве кандидата у нас может
появиться абсолютно любое предложение, составленное из слов конечного языка. Кто знает, что нам предложит машина! Параметр p(у) позволяет
нам оценить, насколько естественно звучит получившееся предложение.
3.2. Модель языка и цепи Маркова
Модель языка определяет вероятности появления того или иного
предложения. Ведь в русском языке можно сказать не только Собака виляет хвостом, но и Хвост виляет собакой, а также Хвосты виляет хвосты
или, допустим, Хвост хвост хвост. Никто из нас не может гарантировать,
что ему никогда в жизни не встретится предложение Хвост хвост хвост.
Но вероятность появления этих предложений в языке разная. Очевидно, что Собака виляет хвостом — это более вероятное фраза, чем Собака
166
Часть II. Направления
виляет шлейфом. А откуда мы это знаем? Мы просто помним, как часто
нам попадались в жизни эти предложения или их части. Вряд ли кому-то
до прочтения этой книги попадалось предложение Собака виляет шлейфом.
Компьютер тоже может запомнить, насколько вероятно появление того или иного предложения в языке. Для этого ему надо «набраться языкового опыта» — посмотреть, какие предложения и словосочетания встречаются в языке. Чем больше текстов он «посмотрит», тем лучше сможет
предсказать вероятность появления какого-либо предложения. Причем, в
идеале эта вероятность никогда не должна равняться нулю. Разве можно
быть уверенным, что какое-то предложение никогда и нигде не встретится?
Модель языка или языковая модель (language model) — это способ
вычислять вероятность для всех теоретически возможных предложений
языка. Эти способы могут быть разными, поэтому и модели языка существуют разные.
Чтобы построить модель языка, машине нужен корпус — большой
набор текстов. Чем больше, тем лучше. При этом желательно, чтобы его
тексты по стилю не очень отличались от тех текстов, с которыми будет
работать система. А если система должна работать с самыми разными
текстами, то и корпус должен состоять из текстов самых разных.
Множество всех словоформ корпуса обозначим греческой буквой ν.
Это множество может быть очень большим, но оно конечное — число
слов в нем ограничено. Поэтому множество ν можно задать обычным перечислением.
ν = {этот, большой, дракон, мальчик, увидел, мальчика, …}
(4)
Предложения в языке — это цепочки слов из множества ν. В конце
предложения для технических нужд необходим символ, обозначающий
конец предложения. В письменных текстах это обычно точка. Но для машины лучше использовать какое-то другое обозначение. Например, написать слово STOP.
Итак, предложения как цепочки слов могут быть, например, такие:
этот большой дракон увидел мальчика STOP
этот мальчик большой STOP
дракон этот этот STOP
дракон дракон дракон STOP
(5)
Каждому предложению, составленному из слов множества ν, необходимо приписать некоторую вероятность. Число предложений, которые
можно построить из слов ν, не ограничено, поскольку длина предложения
теоретически может быть какой угодно.
Глава 7. Машинный перевод
167
Как посчитать эту вероятность? Есть очень простой и очевидный
способ. Считаем общее число предложений в корпусе. Допустим, их
10 000. Затем для каждого предложения подсчитываем, сколько раз оно
встретилось в нашем корпусе. Например, предложение Мальчик увидел
дракона встретилось 5 раз. Делим 5 на 10 000, получаем вероятность. Для
предложения Мальчик увидел дракона вероятность равна 0,0005. Для остальных предложений из корпуса вероятность высчитывается точно так
же. А для отсутствующих в корпусе предложений устанавливается вероятность, равная нулю.
У этого способа есть один важный недостаток. Оно приписывает нулевую вероятность всем предложениям, которые в нем не встретились.
Необходимо научиться оценивать вероятность для всех предложений,
даже для тех, которые раньше нам никогда не встречались. Это можно
сделать, анализируя фрагменты предложений — сочетания слов. При этом
важно помнить, что вероятность появления слова зависит от того, какие
слова появились перед ним. После слова манная скорее всего будет идти
либо каша, либо крупа, либо запеканка. А если нам встретилось сочетание
съешь манную, то за ним уже почти наверняка пойдет слово кашу, и ни на
что другое надеяться не следует. Съешь манную запеканку в Интернете не
встретилось.
Иными словами, нас интересует вероятность слова xn, при условии,
что перед ним идут слова x1, x2…xn-1. Это можно записать с помощью формулы условной вероятности:
P (xn | x1, x2…xn-1)
(6)
Зная условную вероятность для каждого слова, мы можем посчитать
вероятность любого предложения, состоящего из слов x1, x2, x3 … xn. Для
этого можно просто перемножить условные вероятности каждого отдельного слова:
Р(x1, x2, x3 … xn) =
= P(x1) · P(x2 | x1) · P (x3 | x1, x2) …· P (xn | x1, x2…xn-1)
(7)
Эта несколько упрощенная запись означает, что вероятность цепочки
слов x1, x2, x3 … xn равна вероятности появления первого слова x1, помноженной на условную вероятность появления второго слова x2 (при условии, что ему предшествует слово x1), помноженной на условную вероятность появления третьего слова x3 (при условии, что предыдущие два слова — это x1 и x2), и так далее, до условной вероятности последнего слова
x n.
Однако вычислять такую длинную цепочку очень сложно, особенно
учитывая, что для этого нам потребуется слишком большой корпус исход-
168
Часть II. Направления
ных данных. Но даже и в нем могут не встретиться какие-то необходимые
нам длинные цепочки.
Чтобы избежать этого, надо либо сильно увеличить корпус, стараясь
включить в него все возможные сочетания, либо изобрести какой-то другой способ вычисления вероятности.
Наиболее естественный альтернативный подход — опираться не на
всю цепочку слов в предложении, а только на два-три предшествующих
слова.
Этот метод был разработан в конце ХХ века, задолго до появления
компьютеров, русским математиком А. А. Марковым. Он предположил,
что не так важно, учитываем ли мы всю длинную предшествующую цепочку или берем только один, два или три ближайших элемента — условная вероятность во всех этих случаях будет отличаться не очень сильно.
Конечно, из этого обобщения бывают исключения. Но их мало, и для статистики они не очень важны.
Так появились цепи Маркова — статистические модели, позволяющие сильно упростить вычисление условной вероятности.
Цепь Маркова первого порядка самая грубая и самая простая. Она
учитывает только одно предыдущее событие. Вероятность предложения
на основе Марковской цепи первого порядка можно посчитать как вероятность первого слова, умноженную на вероятность второго слова при условии наличия первого слова, помноженную на вероятность третьего слова
при условии наличия второго слова, и так далее, до вероятности последнего слова (которое у нас, кстати, всегда STOP) при наличии предпоследнего
слова. Это можно записать с помощью формулы, которую мы, опять же,
представим в несколько упрощенном виде, чтобы не утомлять читателя
дополнительными объяснениями:
Р(x1, x2, x3 … xn) ≈ P(x1) · P(x2 | x1) · P (x3 | x2) …· P (xn | xn-1)
(8)
Цепь Маркова второго порядка чуть сложнее. При вычислении условной вероятности она учитывает не одно, а два предыдущих события.
Впрочем, у первого события (слова) предыдущих событий нет, а у второго
есть только одно, поэтому нормальный «второй порядок» начинается
только с третьего события. Формально это выглядит вот так:
Р(x1, x2, x3 … xn) ≈ P(x1) · P(x2 | x1) · P (x3 | x1, x2) …· P (xn | xn-2, xn-1)
(9)
Возможны также цепи Маркова более высоких порядков, а также
цепи для изменяющихся событий, но в основе моделей компьютерной обработки языка лежат обычно цепи первого и второго порядка.
Глава 7. Машинный перевод
169
3.3. Оценка максимального правдоподобия
Многие алгоритмы компьютерной обработки языка основаны на цепях Маркова второго порядка. Каждый множитель этой цепи состоит из
трех идущих подряд элементов. В нашем случае это три идущих подряд
слова. Сочетание из трех идущих подряд слов называют триграммой
(trigram), а основанные на них модели — триграммными языковыми
моделями (trigram language models).
Триграммная языковая модель включает в себя набор слов ν и набор
параметров q (c |a, b), определенных для каждой возможной триграммы из
ν, а также для сочетаний слов в начале и в конце предложения.
Параметр q (c |a, b) означает вероятность появления слова с при условии появления предшествующих слов a и b. При этом надо не забывать,
что сочетание в конце предложения заканчивается на слово STOP, и в этом
случае переменная c соответствует слову STOP. Например, параметр для
самого последнего элемента в предложении Вот дом, который построил
Джек будет выглядеть так: q (STOP |построил, Джек). Он соответствует
вероятности того, что сочетание построил Джек окажется в предложении
конечным.
В начале предложения первому слову ничего не предшествует — у
него нет предыдущих слов. Можно обозначить это, введя специальный
символ, например, звездочку, и заменить им переменные a и b. Тогда параметр для слова Доколе в начале предложения, будет выглядеть вот так: q
(Доколе |*, *). Он обозначает вероятность того, что слово Доколе является
в предложении самым первым.
У второго слова есть только один предшественник — первое слово в
предложении. Чтобы обозначить второго предшественника, опять воспользуемся звездочкой: q (ты |*, Доколе). Так записывается вероятность
того, что если в начале предложения появилось слово Доколе, то сразу за
ним последует слово ты.
Итак, триграммная модель языка включает в себя конечный набор
слов ν и набор параметров q (c |a, b), определенных для каждой возможной
триграммы из этого набора, а также для сочетаний в конце и в начале
предложения. Каждый параметр q (c |a, b) соответствует вероятности появления слова с после биграммы ab. И тогда вероятность появления предложения x1, x2, … xn вычисляется как произведение условных вероятностей для каждого слова этого предложения, включая конечный символ
STOP. Это можно записать с помощью формулы:
Р(x1, x2, x3 … xn) =
= q(x1| *, *) · q(x2 | *, x1) · q (x3 | x1, x2) …· q (xn | xn-2, xn-1)
(10)
Существует много разных путей для оценки параметров q (c |a, b).
Наиболее естественный способ называется оценкой максимального
170
Часть II. Направления
правдоподобия (maximum-likelihood estimates). В корпусе можно подсчитать число биграмм ab и триграмм abc. Обозначим их как с(a, b) и
с(a, b, c). И тогда вероятность появления слова с после биграммы ab равна
числу триграмм abc, разделенному на число биграмм ab:
qML (c |a, b) =
с(…, †, ‡)
с(…, †)
(11)
Допустим, сочетание Доколе ты будешь встречается в корпусе 10 раз.
А сочетание Доколе ты — 15 раз. Тогда q (будешь | Доколе, ты) вычисляется так:
q (будешь | Доколе, ты) =
с (Доколе,ты,будешь)
с (Доколе,ты,)
=
=
‘
(12)
Если в корпусе после биграммы кандидат филологических всегда
идет слово наук, то число биграмм кандидат филологических должно совпадать с числом триграмм кандидат филологических наук, что сделает
результат деления равным единицы. Но это правильно: если после слова
кандидат филологических всегда идет слово наук, то вероятность появления слова наук должна равняться единице.
У этого подхода, несмотря на его естественность, есть два серьезных
недостатка. Во-первых, большинство потенциально возможных триграмм
в корпусе не встретится, поэтому для подавляющего большинства теоретически возможных сочетаний условная вероятность окажется равной
нулю. Во-вторых, если в корпусе не встретится какая-либо биграмма, значение с(a, b) для нее окажется нулевым, что даст ноль в знаменателе при
оценке максимального правдоподобия.
Чтобы этих недостатков не было, необходимо найти такой способ
оценки условной вероятности, который давал бы ненулевые значения даже
в тех случаях, когда необходимые нам биграммы и триграммы в корпусе
не встречаются. Это делается с помощью различных методов сглаживания (smoothed estimation methods), которые позволяют присваивать крошечные ненулевые вероятности для сочетаний, которые не встретились в
корпусе.
3.4. Методы сглаживания
3.4.1. Линейная интерполяция
Линейная интерполяция (linear interpolation) — это простой метод
сглаживания, использующий помимо триграмм также биграммы (bigram)
и униграммы (unigram), то есть, цепочки из двух слов и отдельные слова.
Если триграмма в тренировочном корпусе не встретилась, то оценка
максимального правдоподобия на основе этой триграммы будет равна ну-
Глава 7. Машинный перевод
171
лю. Но, можно надеяться, что в корпусе встречались части этой триграммы — биграммы и униграммы. Поэтому оценку максимального правдоподобия можно проводить на основе сразу трех этих элементов: триграмм,
биграмм и униграмм, заимствуя от каждой из них часть вероятности.
В предыдущем разделе мы определили оценку максимального правдоподобия на основе триграмм с помощью формулы (11). Оценка максимального правдоподобия на основе биграмм и униграмм выглядит следующим образом:
qML (c | b) =
qML (c) =
с(†, ‡)
с(†)
с(‡)
(13)
с()
Здесь qML (c | b) — это вероятность появления слова с после слова b, а
qML (c) — это вероятность появления слова с без учета контекста. В последней второй формуле с(с) обозначает число проявлений в корпусе униграммы (то есть, слова) с, а с() обозначает общее число слов в корпусе.
Оценка максимального правдоподобия на основе униграмм хороша
тем, что она будет больше нуля для всех слов, которые хотя бы раз встретились в корпусе. Но она не учитывает контекст — она просто показывает
вероятность появления того или другого слова самого по себе, в отрыве от
других слов. Контекст учитывается при использовании триграмм.
Чтобы использовать достоинства одновременно триграмм и униграмм, а также находящихся между ними биграмм, можно взять понемногу от каждой из этих моделей. Это можно сделать, задав три переменных
λ1, λ2 и λ3, таких, что λ1 + λ2 + λ3 = 1.
Тогда оценка максимального правдоподобия с учетом линейной интерполяции будет выглядеть так:
q (c |a, b) = λ1 * qML (c |a, b) + λ2 * qML (c | b) + λ3 * qML (c)
(14)
Остается только придумать, как правильно подобрать значения λ1, λ2
и λ3. Можно просто задать их как 1/3, тогда все три модели будут одинаковую роль в итоговом значении. Можно решить, что триграммы нам важнее, и сделать λ1 большим. Есть также способы динамического вычисления трех параметров отдельно для каждого сочетания — в зависимости от
числа биграмм, например.
3.4.2. Методы дисконтирования
Но как быть, если в тексте появляется сочетание, не встречавшееся в
обучающем корпусе? Здесь поможет метод дисконтирования. Он предполагает, что мы заранее резервируем некоторую вероятность для не встретившихся в корпусе сочетаний. Для этого необходимо отнять такую же
172
Часть II. Направления
точно вероятность от тех сочетаний, которые наблюдаются в корпусе. Как
это делать?
Рассмотрим это на примере биграмм, а с триграммами дела обстоят
точно так же. От числа появлений каждой биграммы надо отнять небольшое число β, так и накопится «запасная» вероятность, которую можно будет поделить между не встретившимися биграммами.
Пусть β = 0,5, а часто именно так и бывает. Допустим, в нашем экспериментальном корпусе сочетание купи еду встретилось 15 раз, тогда с(купи
еду) = 15. Но мы посчитаем это как 15 – β, то есть, с*(купи еду) = 14,5.
Точно так же, на 0,5, уменьшим показатели для всех других биграмм, начинающихся со слова купи. Результат можно записать в виде таблицы:
Таблица 1. Сглаживание вероятности с помощью метода дисконтирования
х
с(х)
с*(х)
купи еду
15
14,5
купи хлеба
купи поесть
купи соли
10
5
3
9,5
4,5
2,5
купи картошку
купи STOP
[ИТОГО] купи
1
1
35
0,5
0,5
с∗ (х)
с(купи)
14,5/35
9,5/35
4,5/35
2,5/35
0,5/35
0,5/35
В последнем столбце табл. 1 указана вероятность появления различных слов после купи с учетом дисконтирования. Какой объем вероятности
у нас будет сэкономлен в результате этой операции? Нетрудно догадаться,
что если каждый раз мы «откладывали» вероятность β, то сэкономить
смогли β, умноженное на число различных видов биграмм. В нашем случае это 6 (шесть основных строк в таблице), так что мы сэкономили вероятность 6 × β = 6 × 0,5 = 3.
Останется только поделить эту сэкономленную вероятность между
всеми теоретически возможными биграммами, начинающимся со слова
купи, которые не встретились в обучающем корпусе.
3.5. Модель перевода
Предложение можно перевести с одного языка на другой разными
способами. В некоторых случаях перевод может быть очень странным.
Так, английское предложение Masha ate sushi большинство переведет на
русский как Маша ела суши. Но кто-то, возможно, переведет его как Маша
Глава 7. Машинный перевод
173
ела кашу. Перевел ведь Набоков «Алису в стране чудес» как «Аня в стране
чудес». Теоретически нельзя отрицать, что кто-то переведет это предложение как Маша ел каша или же как Суши каша Маша. У каждого из этих
вариантов перевода есть своя вероятность, хотя у всех вариантов в этом
примере кроме первого она близка к нулю.
Модель перевода (translation model) позволяет оценить вероятность
того, что одно предложение является переводом другого. Или, если быть
точнее, вероятность того, что предложение х — это исходное предложение
для переводного предложения y. Вспомним формулу (3) в разделе 3.1 —
нас интересует p(x|у), где x — исходное предложение (вероятность которого оценивается), а y — это переведенное предложение (которое рассматривается как имеющееся условие). Именно эти вероятности и оценивает
модель перевода.
3.5.1. Выравнивание
Для создания модели перевода нужны параллельные корпусы. Если у нас
есть большие тексты и их переводы на другой язык, то это еще не параллельный корпус. В корпусе должны быть установлены связи между элементами исходных текстов и из переводов. Эти связи называются выравниванием (alignment), и они могут быть разного уровня. Бывает выравнивание по документам, по абзацам, по предложениям и по словам. Иногда
встречаются и более экзотические виды выравниваний, но для создания
автоматического переводчика будет достаточно параллельного корпуса, в
котором есть выравнивание по предложениям (sentence alignment), то
есть, где каждое предложение связано со своим переводом. Именно эти
корпусы наиболее популярны.
На первый взгляд может показаться, что каждое отдельное предложение в исходном тексте переводится на другой язык одним предложением,
что можно обозначить как 1 : 1. Но такие случаи составляют в среднем
около 90 % [Manning and Schütze 1999, с. 468]. Остальные 10 % вызывают
проблему соответствия. При переводе два коротких предложения могут
объединиться в одно, что можно обозначить как 2 : 1. Возможны и другие
варианты, например, 1 : 2, 1 : 3, 3 : 1 и даже 2 : 2, если два предложения
при переводе были перемешаны и разбиты на два других предложения.
Иногда фрагменты текста в переводе могут переставляться, так что порядок следования предложений меняется, тогда возможны более сложные
сочетания.
Выравнивание можно выполнять вручную, но это очень медленный
процесс, особенно для больших корпусов. Поэтому обычно выравнивание
текстов производится автоматически или полуавтоматически.
Для автоматического выравнивания существуют разные алгоритмы. В
основе одного из них лежит простое предположении о том, что длинные
174
Часть II. Направления
фрагменты текста переводятся длинными фрагментами, а короткие — короткими. Длина фрагментов измеряется в словах или в символах. Этот
способ часто применяют для выравнивания абзацев, после которого производится выравнивания предложений внутри абзацев. Хотя при этом игнорируется вся лексическая информация, этот подход дает довольно хорошие результаты. Другие методы выравнивания предполагают использование небольших двуязычных словарей. Если слово встречается и в исходном предложении, и в переводе, это становится дополнительным доводом в пользу установления связи между этими предложениями. Еще одним доводом может стать совпадение чисел и дат.
Большинство моделей статистического перевода используют выравнивание по словам. Рассмотрим несколько подробнее этот вид выравнивания.
Допустим, у нас есть следующее предложение на русском языке:
y = Я всё это видел
Предположительно, оно является переводом с английского предложения:
х = I have seen it all
Выравнивание этих предложений по словам можно изобразить следующим образом:
(15)
Эта схема записывается с помощью последовательности a1, a2 … am,
число элементов которой равно числу слов в исходном предложении х. В
нашем случае это английское предложение, в нем пять слов. Значит, у нас
получится массив выравнивания из пяти элементов, по одному для каждого английского слова. Значение соответствующего элемента равно номеру
русского слова, с которым связано соответствующее английское слово. В
нашем случае массив получается такой:
а1, а2, а3, а4, а5 = <1, 4, 4, 3, 2>
(16)
Глава 7. Машинный перевод
175
В этом массиве может встретиться ноль, который возникает в тех
случаях, когда какое-нибудь слово в исходном предложении не имеет аналога в переводе. Например, это относится к английским вспомогательным
глаголам.
Большой набор бесплатных параллельных корпусов доступен в проекте
OPUS [Tiedemann and Nygaard 2004].
Самый известный алгоритм для выравнивания текстов по предложениям называется Hunalign. Он объединяет 2 подхода: использование длины предложений и выравнивание со словарём [Varga et al., 2005]. На его
основе действует удобная утилита LF Aligner.
Для пословного выравнивания параллельного корпуса чаще всего используется программа GIZA++. Она основана на моделях IBM, о которых мы
поговорим в следующем разделе.
3.5.2. Модели перевода, основанные на словах
Первые попытки построить модель перевода были связаны с анализом отдельных слов, поэтому их общепринятое название — модели перевода, основанные на словах (word-based translation models). В этой области классическими стали подходы, разработанные в компании IBM, которые так и называются: модель IBM-1, модель IBM-2, и так далее до модели IBM-5. О них подробно рассказывается, например в курсе Михаэля
Коллинза на Coursera и в учебнике [Koehn 2010].
Рассмотрим, как устроены эти модели. Напомню, что мы ищем значение p(x|y). Это «обратная вероятность», то есть вероятность того, что
предложение х является исходным по отношению к конечному предложению у.
В предыдущем разделе мы анализировали английское предложение I
have seen it all и его возможный перевод на русский язык Я всё это видел.
Значит, мы пытаемся оценить условную вероятность p (I have seen it all | Я
всё это видел).
Попробуем записать формулу вероятности несколько подробнее. Допустим, конечное предложение у состоит из k слов: у1, у2 … уk, а исходное
предложение х, вероятность которого мы ищем, состоит из m слов: х1, х2 …
хm. Тогда нас интересует значение вероятности р(х1, х2 … хm |у1, у2 … уk).
Но посчитать такую вероятность напрямую очень сложно. Многие
модели упрощают эту формулу необычным способом — в нее добавляют
дополнительные параметры. Это длина исходного предложения m и выравнивание по словам а1, а2 … аm. Длина исходного предложения m считается известной, потому что мы оцениваем вероятность для конкретного
предложения х1, х2 … хm.
Тогда формула искомой вероятности будет выглядеть так:
176
Часть II. Направления
р(х1 х2 … хm, a1 a2 … am |у1 у2 … уk, m)
(17)
Опишем словами, что обозначает формула (17). Это условная вероятность. У нас есть предложение-перевод, которое состоит из последовательности слов <у1, у2 … уk>, известна также длина исходного предложения — m слов. Это условия для вычисления условной вероятности того,
что исходное предложение состоит из последовательности m слов: <х1, х2
… хm>, и что его выравнивание по словам с предложением х описывается
последовательностью <a1, a2 … am>.
Если исходное английское предложение I have seen it all состоит из
пяти слов, то m = 5. Его возможный перевод на русский язык — Я всё это
видел. Выравнивание этих предложений задается массивом а1, а2, а3, а4, а5
= <1, 4, 4, 3, 2>.
Подставим эти значения в нашу формулу. Нас интересует следующая
условная вероятность:
р(I have seen it all, 1 4 4 3 2 | Я всё это видел, 5)
(18)
Но как научиться считать эту вероятность? Один из способов предлагает модель IBM˗2. Она упрощает формулу условной вероятности следующим образом:
р(х х … х” , a a … a ” | y y … y• , m) =
= ∏”
q(a — | i, k, m) × t (х— | y…™ )
—
(19)
Рассмотрим подробнее последовательность упрощений в (19), поскольку подобные приемы используются во многих статистических моделях языка.
Первое упрощение связано со свойствами условной и совместной вероятности. Это свойство можно записать следующим образом:
p(A B| условия) = p(B| условия) × p(A| B, условия)
(20)
Перепишем по этой схеме формулу (17):
р(х х … х” , a a … a ” | y y … y• , m) =
= р( a … a ” | y … y• , m) × р(х … х” | a … a ” , y … y• , m)
(21)
Теперь рассмотрим каждую из двух составляющих в этой формуле
отдельно. Начнем с первого множителя:
р( a … a ” | y … y• , m) = р( a | y … y• , m) ×
× р( a | a , y … y• , m) ×
× р( a ‘ | a a , y … y• , m) × … ×
× р( a ” | a … a ” , y … y• , m)
Глава 7. Машинный перевод
= ∏”
p(a — |a … a — , y … y• , m)
—
177
(22)
Так раскладывается на множители первый элемент в формуле (21).
Осталось только придумать, как вычислять для всех i элементы р(ai | a …
ai-1, у1… уk, m). Модель IBM-2 и здесь сильно упрощает ситуацию. Она
предлагает рассматривать их как параметры системы и считать по формуле q(ai | i, k, m):
∏”
p(a — |a … a — , y … y• , m) ≈ ∏”
q(a — |i, k, m)
—
—
(23)
Вспомним, что означают элементы параметра q(ai | i, k, m). В правой
его части записаны условия: длина исходного предложения m, длина конечного предложения k, а также номер слова i в исходном предложении.
При этих условиях мы вычисляем значение переменной ai, которая соответствует номеру того слова в переводе, которое связано со словом номер i
в исходном предложении.
Другими словами, модель IBM-2 учитывает вероятность того, что
слово номер i в исходном предложении связано со словом номер ai в переводе, а длины предложений при этом равны, соответственно, m и k. Состав
предложений при этом значение не имеет.
Теперь рассмотрим вторую составляющую в формуле (21):
р(х … х” | a … a ” , y … y• , m).
Ее тоже можно переписать:
р(х … х” | a … a ” , y … y• , m) = р(х | a … a ” , y … y• , m) ×
× р( х | х , a … a ” , y … y• , m) × … ×
× р( х” | х … х” , a … a ” , y … y• , m)
= ∏”
p(х— |х … х— , a … a ” , y … y• , m)
—
(24)
Получившееся произведение довольно сложное, и модель IBM-2 его
тоже очень сильно упрощает. Она убирает из условий все значения а, все
значения предыдущих х и все значения y кроме того, которое по выравниванию связано с xi. Остается такой параметр: t(хi | yai)
Таким образом, подставив оба параметра в систему, мы получаем
следующую формулу:
р(х х … х” , a a … a ” | y y … y• , m) =
= ∏”
q(a — | i, k, m) × t (х— | y…™ )
—
(25)
Если мы хотим оценить вероятность того, что английское предложение I have seen it all — это перевод с русского оригинала Я всё это видел с
178
Часть II. Направления
упомянутым выше выравниванием <1 4 4 3 2>, то по формуле (25) нам
надо посчитать следующее выражение:
р(I have seen it all, 1 4 4 3 2 | Я всё это видел, 5) =
q (1| 1, 4, 5) × t (I | Я)
× q (4| 2, 4, 5) × t (have | видел)
×q (4| 3, 4, 5) × t (seen | видел)
×q (3| 4, 4, 5) × t (it | это)
×q (2| 5, 4, 5) × t (all | всё)
(26)
Осталось только узнать, чему эти параметры равны.
3.5.3. Как считать параметры
Чтобы модель IBM-2 работала, необходимо научиться вычислять два
основных параметра этой модели: q(j | i, k, m) и t(х | y). Точнее, приходится говорить не о вычислении этих параметров, а об их примерной оценке
на основе имеющегося у нас параллельного корпуса.
Представим вначале идеальную ситуацию. У нас есть большой размеченный параллельный корпус. Выравнивание в нем проведено не только
по предложениям, но и по словам. С помощью такого идеального корпуса
параметры оцениваются легко и естественно. Рассмотрим, как это происходит.
Если у нас есть параллельный размеченный корпус, то можно его
представить в виде тройки значений (х(l), y(l), a(l)). Количество этих троек
равно числу переведенных фрагментов, которое обозначим как n. Мы будем называть их предложениями, но они могут состоять и из других фрагментов текста. Рассмотрим каждый элемент этой тройки отдельно.
х(p) — это набор исходных предложений х(1), х(2)… х(n), каждое их них
состоит из mp слов: х(p)1 х2(p) … хmp(p), при этом p здесь обозначает порядковый номер предложения в корпусе.
y(p) — это набор конечных предложений, переводов. Их тоже n. Каждое переведенное предложение состоит из kp слов: у(p)1 у(p)2 … у(p)kp.
a(p)— это массив выравнивания, в нем столько же элементов, сколько
в исходном предложении: a(p)1 a(p)2 … a(p)mp. Напомним, что в массиве выравнивания a(p) хранятся указания на то, с каким словом в конечном предложении связано определенное слово в исходном предложении. Например,
если a(239)2 = 3, это означает, что в исходном предложении номер 239 второе слово переведено с помощью третьего слова в конечном предложении.
Глава 7. Машинный перевод
179
Если на материале корпуса определены такие тройки, то параметры
считаются очень просто. Для этого компьютер должен просмотреть каждую тройку и посчитать следующие значения:
• сколько раз в исходном корпусе встретилось каждое слово — значение с(х);
• сколько раз это слово было переведено с помощью слова у — обозначим его как с(х ►y);
• сколько раз слово за номером i в исходном предложении было связано
со словом номер j в конечном предложении, если длины предложений, соответственно, m и k — значение с(j| i, m, k);
• сколько раз вообще позиция i встречалась в исходном предложении,
если длины исходного и конечного предложений были равны, соответственно, m и k — значение с(i, m, k).
После того, как на материале корпуса будут сосчитаны все эти значения, параметры модели вычисляются по принципу оценки максимального
правдоподобия:
q(j | i, k, m) =
с(›| —,”,•)
с(—,”,•)
t(х | y) =
с(х►k)
с(х)
(27)
При обработке корпуса просматривается каждая тройка, для которой
выполняются однотипные операции:
1) для каждой тройки просматриваются все слова в переведенном предложении (для всех i от 1 до kp);
2) для каждого из них просматривается каждое слово в исходном предложении — начиная с нулевого слова (для всех j = 0 до mp; напомним,
ноль в массиве выравнивания возникает в тех случаях, когда какоенибудь слово в исходном предложении не имеет аналога в переводе);
3) если a(p)i = j, то на единицу увеличиваются следующие значения:
c(х(p)j ►у(p)i)
c(х(p)j)
c(j | i, mp, kp)
c(i, mp, kp)
4) Когда весь корпус обработан, значения параметров вычисляются по
формулам (27)
Рассмотрим это на примере. Допустим, No money — это предложение
номер 239 в исходном корпусе. Его перевод — русское предложение Денег
нет.
х(239) = No money, m239 = 2
у(239) = Денег нет, k239 = 2
180
Часть II. Направления
а(239) = <2, 1>, значит, а(239)1 = 2, а(239)2 = 1 (первое слово в исходном
предложении соответствует второму в переводе, а второе — первому).
Всего получается 6 вариантов, так мы рассматриваем i от 1 до 2 и j от
0 до 2. Для каждого сочетания i и j нас интересует, выполняется ли равенство a(239)i = j
Запишем результаты в форме таблицы.
Таблица 2. Пример анализа параметров на размеченном корпусе
i
1
1
j
0
1
a(239)i
2
2
a(239)i = j
нет
нет
1
2
2
2
0
1
2
1
1
да
нет
да
2
2
1
нет
Последняя колонка в табл. 2 показывает, в каких случаях, a(239)i = j.
Это две пары: (i = 1, j = 2) и (i = 2, j = 1). Соответственно, на единицу увеличатся следующие счетчики:
Таблица 3. Результата анализа параметров табл. 2
Для (i = 1, j = 2)
Для (i = 2, j = 1)
c(нет, no)
c(нет)
c(2 | 1, 2, 2)
c(1, 2, 2)
c(денег, money)
c(денег)
c(1 | 2, 2, 2)
c(2, 2, 2)
Описанный подход годится только для идеального случая, когда у нас
есть большой параллельный корпус, выравненный по словам. К сожалению, в жизни обычно не попадаются полностью размеченные данные. Как
правило, в параллельном корпусе существует выравнивание только по
предложениям, без выравнивания по словам, поэтому массива a(n) у нас
нет. Как быть в этой ситуации?
Здесь на помощь приходит EM-алгоритм. По-английски он называется Expectation-maximization (EM) algorithm, что можно перевести как
алгоритм увеличения ожидания, но более точно его можно назвать алгоритмом увеличения ожидаемого правдоподобия. Он позволяет вы-
Глава 7. Машинный перевод
181
числять оценку максимально правдоподобия в тех случаях, когда часть
данных неизвестна.
EM-алгоритм действует следующим образом. Вначале всем параметрам присваиваются произвольные значения. Затем на основе этих параметров несколько раз подряд обрабатывает имеющийся корпус, после каждой обработки параметры корректируются. Обычно корпус нужно обработать 10–20 раз, чтобы значения искомых параметров почти перестали
изменяться — результат получается достаточно приемлемым, хотя корпус
не был размечен.
Получается, что с помощью EM-алгоритма можно вычислять параметры модели, не имея массива выравнивания. Но в таком случае, получив необходимые параметры модели, можно вычислить для каждой пары
предложений ее массив выравниваний. Иными словами, с помощью моделей пословного перевода и EM-алгоритма можно проводить выравнивание
по словам — на этом основана работа популярной программы GIZA++,
которая выравнивает предложения по словам. Но для перевода пословные
модели оказались неэффективными. Им на смену пришли модели переводов на основе сочетаний (фразовых таблиц).
3.5.4. Перевод на основе сочетаний
В 1990-е годы начал развиваться новый подход к машинному переводу, использующий цепочки слов — фрагменты предложений. Так появились модели перевода, основанные на сочетаниях (phrase-based
translation models).
Важно сказать, что сочетания в этих моделях не соответствуют словосочетаниям в лингвистическом понимании этого слова. Сочетания в
машинном переводе — это фрагменты предложений, не имеющие единой
структуры, например, фрагмент пришел в этот.
В основе этого подхода лежат тройки (х, у, g), где х — фрагмент предложения на исходном языке, у — фрагмент на языке перевода, а g — вес
пары (х, у), который тем выше, чем чаще встречается перевод одного
фрагмента другим. Приведем примеры таких троек:
(in the, в, 0,6)
(in the town, в городе, 0,007)
(work in the town, работают в городе, 0,0006)
Обратите внимание, что количество слов в первом и во втором фрагменте может отличаться.
Для автоматического создания таких троек нам требуется параллельный корпус из предложений на двух языках x(n) и y(n), а также матрица
выравнивания (alignment matrix) по словам A(n). Матрица — математический объект, похожий на прямоугольную таблицу, в клетки которой вписа-
182
Часть II. Направления
ны различные значения. В нашем случае в эти клетки будут вписаны единицы или нули, обозначающие выравнивание слов в предложениях, записанных по вертикальной и горизонтальной стороне прямоугольника.
Матрица выравниваний строится на основе двух одномерных выравниваний, выполненных с помощью ЕМ-алгоритма. Вначале мы создаем
массив выравнивания, рассматривая первый язык как оригинал, а второй
— как перевод. Затем мы запускаем тот же алгоритм создания массива
выравнивания, поменяв местами перевод и оригинал. Получается другая
одномерная версия возможного выравнивания. Далее, мы заносим полученные результаты в массив. В каких-то клетках они совпадут — и это
значит, что связь или отсутствие связи между этими словами почти не вызывает сомнений. Но где-то результаты будут отличаться, тогда для какойто клетки один массив выравниваний будет показывать единицу, а второй
— ноль. Для этих случаев есть свои правила, и после их применения получается достаточно правдоподобная матрица для каждой пары предложений.
Вот так будет выглядеть, например, матрица выравнивания для английского предложения She will go shopping и для его русского перевода
Она пойдет в магазин. Мы запишем здесь только единицы, а нули опустим.
Она
пойдет
в
магазин
She
1
will
go
1
1
shopping
1
1
Обратите внимание, что матрица позволяет передавать те связи, которые невозможно изобразить с помощью одномерного массива из моделей
IBM. В нашем примере два английских слова will go передаются одним
русским словом пойдет, но при этом слово shopping передается двумя
русским словами в магазин. Это невозможно передать, если в массиве a(n)
число элементов совпадает с числом слов в одном их предложений. Какието из связей просто не поместятся в одномерный массив.
Теперь нам надо узнать, как на основе параллельного корпуса и матрицы выравниваний создать тройки типа (in the town, в городе, 0,007), на
основе которых будет работать машинный перевод. Для этого нужно выполнить следующие шаги:
1) выделить в исходном и в конечном предложении все возможные
фрагменты;
Глава 7. Машинный перевод
183
2) проверить, какие пары фрагментов являются консистентными — это
мы поясним чуть ниже;
3) для консистентных пар посчитать вес, тогда два фрагмента и вес образуют необходимую тройку.
Консистентность можно описать с помощью трех условий:
а) во фрагменте [yv, yw] есть хотя бы одно слово, связанное со словом во
фрагменте [хi, хj];
б) ни одно слово во фрагменте [хi, хj] не связано со словом за пределами
[yv, yw];
в) ни одно слово во фрагменте [yv, yw] не связано со словом за пределами
[хi, хj].
Консистентность можно легко увидеть с помощью матрицы выравнивания. Если два слова связаны, то соответствующей клетке матрицы стоит
единица. Все единицы двух консистентных фрагментов можно обвести
прямоугольником, за пределами которого не останется единиц ни по горизонтали, ни по вертикали (это соответствует условиям б и в). Вот примеры
двух таких треугольников, они соответствуют двум парам отрезков: (She
will go, она пойдет) и (shopping, в магазин).
She
Она
пойдет
will
go
1
1
shopping
1
В
1
магазин
1
Для двух этих предложений можно найти и другие консистентные пары, например: (will go shopping, пойдет в магазин).
Получившиеся тройки образуют словарь сочетаний (phrase-based
lexicon), на основе которого будет происходить перевод предложений.
После этого по определенному алгоритму необходимо вычислить вес
этих пар. Далее с помощью некоторой громоздкой формулы можно будет
вычислять модель перевода. Но мы не будем описывать здесь дальнейшие
шаги по созданию модели перевода. Если предыдущая часть показалась
вам интересной и полезной, то дальнейшие шаги вы можете узнать из
классической книги по статистическому машинному переводу [Koehn
184
Часть II. Направления
2010], из лекций Михаэля Коллинза на Coursera и во многих специализированных пособиях и учебниках.
Самая удобная система для реализации статистического машинного
перевода называется Moses. Она объединяет все необходимые для этого
программы, алгоритмы и утилиты, но требует больших ресурсов.
4. Гибридный перевод
Компьютерные лингвисты, разрабатывающие системы на основе правил, давно поняли, что статистика тоже может им пригодиться. Например,
синтаксический анализ известного предложения Time flies like an arrow
может дать два разных варианта: Время летит как стрела и Мухи времени
любят стрелу. Более удачный перевод можно выбрать с помощью статистики — посмотреть, например, как часто встречаются сочетания время
летит и мухи времени, а также летит как стрела и любят стрелу.
Что касается математиков, специалистов по статистике, то они часто
считают ненужной любую лингвистическую информацию. Для достижения наибольшей эффективности (а может быть, для примирения математиков и лингвистов), большинство систем машинного перевода сегодня
используют и правила, и статистику. Такой подход называется гибридным.
Объединять правила и статистику можно разными способами. Можно
интегрировать статистический модуль в перевод, основанный на правилах
— именно это мы описали, выбирая более удачный перевод предложения
Time flies like an arrow.
Другой подход связан с интеграцией правил в статистическую модель. Как пример тут можно привести перевод с японского языка на русский или на английский. В японском языке сказуемое обычно находится в
конце предложения. Такой порядок слов сильно отличается от привычного
нам порядка Маша ела кашу — подлежащее-сказуемое-дополнение. Это
отличие может создать большие неудобства при формировании фразовых
таблиц модели перевода. Ведь фразовая таблица состоит из параллельных
фрагментов, а русское сочетание Маша ела может протянуться от начала
до конца японского предложения: подлежащее в самом начале, а сказуемое
в самом конце.
Чтобы сделать японские фразы более «похожими» на русские, можно
перед применением статистики провести предобработку японского текста
с помощью правил — просто найти в каждом предложении сказуемое и
переместить его поближе к подлежащему. Конечно, получившийся текст
будет уже не японским, а псевдо-японским, но перевести его на русский
будет гораздо легче.
Глава 7. Машинный перевод
185
Интересный вариант гибридной технологии используется в компании
PROMT. Там создан большой обучающий параллельный корпус «исправленных ошибок». Он состоит из предложений, переведенных системой с
помощью правил, в соответствие которым поставлены эти же предложения, исправленные носителями языка. На основе этого корпуса работает
модуль синтаксического постредактирования — система обучена переводить «с русского на русский». Таким образом, перевод происходит в два
этапа: (1) перевод по правилам; (2) статистическая доработка переведенного текста с помощью системы, обученной на параллельном корпусе исправлений [Молчанов 2013].
Практически все разработчики систем машинного перевода используют сейчас гибридные технологии, но исследования в этой области защищены коммерческой тайной. В мире пока нет ни одного учебника по
гибридным технологиям, какие-то отдельные разработки иногда описываются в выступлениях на конференциях.
Но будущее прикладной лингвистики и, в частности, машинного перевода, связано именно с гибридными технологиями. Скорее всего, наиболее эффективные системы будут действовать на основе статистики, усиленной правилами.
5. Методы оценки качества перевода
Оценивать качество перевода можно с помощью экспертов или автоматически, без участия людей.
Для оценки с помощью экспертов нужны эксперты. В 1960-е года
американская комиссия ALPAC пришла к выводу, что их должно быть не
менее четырех человек.
Для экспертной оценки существует несколько методик. Например,
перевод каждого предложения эксперты могут оценивать по двум параметрам: полнота (adequacy) и гладкость (fluency). Полнота отвечает за
точность перевода, а гладкость — за правильность фразы с точки зрения
носителя языка. По каждому из этих параметров каждый эксперт ставит
оценки переводам по заранее заданной шкале, например, от 1 до 4.
Другой способ экспертной оценки — это выбор лучшего перевода из
нескольких или ранжирование имеющихся переводов. Еще один подход
связан с измерением времени и сил, затраченных человеком-редактором
на исправление того или иного автоматического перевода.
В любом случае, экспертный подход требует больших трудозатрат, а
оценить с его помощью можно лишь небольшое число предложений. Гораздо удобнее в этом отношении автоматическая оценка перевода.
186
Часть II. Направления
Автоматическая оценка предполагает сравнение переведенного текста
с эталонным переводом. В качестве эталона может использоваться перевод, сделанный людьми, или отредактированный текст машинного перевода. Чем ближе результат к эталону, тем качественнее машинный перевод. Это метод довольно грубый, но его удобно применять при оценке
больших объемов текста.
В основе автоматической оценки перевода должна лежать определенная метрика, то есть способ числовой оценки различий между переводом
и эталоном. Самая известная метрика называется BLEU (BiLingual
Evaluation Understudy) [Papineni et al, 2002], предложенная компанией IBM
в 2002 году. Она учитывает, сколько n-грамм совпадает в переводе и в эталоне, а затем по определенной формуле выводит оценку качества перевода
по шкале от 0 до 100.
Существуют и другие метрики оценки качества перевода: NIST,
MERT, METEOR, TER. Посмотреть их работу, а заодно и оценить качество
перевода различных переводчиков можно помощью бесплатной онлайн
системы Asiya.
При создании машинных переводчиков необходимо производить
оценку качества после каждого серьезного изменения системы. Можно,
например, автоматически отслеживать, какие предложения стали переводиться иначе, а затем в каждом отдельном примере оценивать изменение
перевода: стала ли новая версия лучше или хуже. Если процент ухудшений достаточно велик, изменение системы можно признать неудовлетворительным.
6. Некоторые современные системы машинного
перевода
В этом разделе мы рассмотрим основные системы машинного перевода. Почти все они предоставляют бесплатные онлайн-версии, с помощью которых читатель сможет сравнить их работу.
Systran (США, затем Франция, затем Корея)
Это самая старая из успешных и самая успешная из старых переводческих систем. Американская компания Systran начала разрабатывать ее
в 1968 году для Военно-воздушных сил США. Первым делом был создан
переводчик с русского на английский — шла холодная война. В 1973 году
к нему добавился переводчик с английского на русский, его разрабатывали
специально для совместного космического проекта СССР и США «Союз
— Аполлон». В 1986 году компанию Systran купила французская семья
Гашо (Gachot), с тех пор Systran считался французской системой. Но в
Глава 7. Машинный перевод
187
2014 году ее контрольный пакет акций приобрела корейская фирма CSLi,
которая, в частности, создавала переводчик для последних моделей
Samsung Galaxy. Компания CSLi изменила свое название на Systran
International и планирует стать абсолютным лидером машинного перевода.
Переводчик Systran используется во многих других компаниях, например, на его основе действует перевод Babel Fish в системе Yahoo! До
2007 года на основе Systran работал переводчик Google. Клиентом Systran
до сих пор является Министерство обороны США.
Systran предоставляет бесплатный онлайн-перевод на своем сайте
http://www.systransoft.com/, там же продаются его системы различных
конфигураций. Перевод разработан для 52 языков, бесплатная онлайнверсия доступна только для десяти из них.
Logos и OpenLogos (США и Германия)
Переводчик Logos начал разрабатываться компанией Logos
Corporation в 1970 году специально для войны во Вьетнаме, поэтому первая пара языков Logos была англо-вьетнамской. Рабочая версия для этой
пары была представлена в 1972 году, за три года до окончания вьетнамской войны, которая длилась более 19 лет. Коммерческая версия программы сейчас разрабатывается компанией Group Business Software AG для
операционной системы Microsoft Windows.
C 2005 года Немецкий исследовательский центр по искусственному
интеллекту (DFKI) создает бесплатную версию этого переводчика с названием OpenLogos. Эта система переводит с немецкого и английского языков на французский, итальянский, испанский и португальский. Она работает на основе правил и легко позволяет подключать новые словари.
PROMT (Россия)
Это лучший российский переводчик. Он разрабатывается компанией
PROMT, главный офис которой находится в Санкт-Петербурге. Компании
принадлежит первый онлайн-переводчик русскоязычного интернета.
PROMT был создан в 1991 году сотрудниками лаборатории инженерной лингвистики Ленинградского педагогического института им. А. И.
Герцена. Уже в 1992 году компания выиграла тендер NASA на поставку
систем машинного перевода с английского языка на русский. C 1992 по
1998 год эта программа называлась STYLUS. Сейчас разработаны переводчики PROMT для 64 языковых пар, в том числе для 34 пар без использования русского языка.
Вначале PROMT действовал только на основе правил, но с 2010 года
система стала использовать также статистические и гибридные технологии. Гибридные технологии PROMT используются в работе международного туристического онлайн-сервиса TripAdvisor.
188
Часть II. Направления
В 2013 и 2014 годах компания становилась победителем в конкурсе
разработчиков систем машинного перевода в рамках Семинара по статистическому машинному переводу, который проводится под эгидой Ассоциации компьютерной лингвистики (ACL).
Linguatec (Германия)
Эта система разрабатывается с 1996 года немецкой компанией
Linguatec, которая специализируется также на синтезе речи и преобразовании устной речи в текст. Иными словами, Linguatec занимается не только переводом, но также учит машину читать вслух тексты и записывать то,
что ей диктует человек. Переводчик Linguatec основан на правилах, в
2006 году компания запатентовала технологию нейронного трансфера,
работающего по принципам нейронной сети, с 2010 года в систему стали
интегрироваться гибридные технологии.
IdiomaX (Швейцария, но больше похоже на Италию)
Этот переводчик с 1996 года разрабатывается швейцарской компанией IdiomaX. С 1998 года в течение нескольких лет итальянская компания
Garzanti распространяла этот переводчик в книжных магазинах Италии,
поэтому особой популярностью он пользуется у итальянцев. Действует на
основе правил.
Babylon (Израиль)
Разрабатывается израильской компанией Babylon с 1997 года. Первые
версии были бесплатными, но позже эта система стала платной. В
2011 году программа стала лидером по числу бесплатных скачиваний и
была занесена в Книгу рекордов Гиннеса. Число пользователей программы превысило 100 миллионов, сайт компании попал в список 100 наиболее посещаемых сайтов мира. Но в 2012 компоненты системы были признаны вредоносными, поскольку переводческая панель Babylon устанавливала в браузере свою собственную главную страницу и страницу поиска, не позволяя их переустанавливать.
Apertium (Испания)
Эту систему по заказу испанского правительства начали создавать четыре университета и три лингвистических компании. Первая версия
Apertium была представлена миру в 2005 году. Это открытая система, основанная на правилах. На сайте SourceForge можно бесплатно скачать весь
код Apertium и ее лингвистические данные. Система создавалась вначале
для близкородственных языков, но сейчас она работает для самых разных
пар. Чтобы подключить новую языковую пару, нужно добавить словарь и
лингвистическую информацию о структуре необходимых языков.
Глава 7. Машинный перевод
189
Google Переводчик, Google Translate (США)
Бесплатный переводческий сервис Google. Предлагает перевод для
любой языковой пары из 73 языков — например, перевод с телугу на
хмонг.
Этот переводчик разработан американской компанией Google. Вначале она предлагала перевод на основе системы Systran. Но в 2004 году руководство компании решило отказаться от Systran и создать свой собственный переводчик на основе статистических методов. В апреле 2006
фирменный переводчик Google был запущен. Он действовал для пар арабский-английский и английский-арабский, но скоро к нему прибавились
пары с русским и китайским языком. В 2007 году Google перевел все
имевшиеся у него языковые пары на статистические методы перевода,
отказавшись от использования переводчика Systran. После этого в систему
добавлялись новые языки и опции.
Переводчик Bing (США)
Разрабатывается компанией Microsoft c 2009 года для ее поискового
сервиса Bing. Обрабатывает более 40 языков на основе статистических
методов.
Яндекс. Переводчик (Россия)
В марте 2011 года российская поисковая система Яндекс запустила
сервис «Яндекс. Переводчик», действующий на основе статистических
методов. Он позволял переводить тексты и веб-страницы с русского на
английский или украинский язык и обратно. Сейчас этот сервис предоставляет перевод для 67 языков.
Переводчик на основе ABBYY Compreno (Россия)
В 2011 году ведущая российская компания ABBYY получила от Сколково грант для создания новой технологии синтаксического и семантического анализа текста под названием ABBYY Compreno. Ядром этой технологии стала универсальная иерархия понятий и сеть отношений между
ними. В идеале эта иерархия будет содержать все смыслы, о которых говорят и думают люди, с указанием связей между этими смыслами. В результате из каждого предложения можно будет выделить закодированный
в нем смысл.
Разработчики планируют использовать ABBYY Compreno для решения различных задач прикладной лингвистики. На ее основе уже реализован интеллектуальный поиск, то есть поиск по смыслу, а не по ключевым
словам. Сейчас ABBYY активно работает над созданием нового переводчика, который пока не получил официального названия.
190
Часть II. Направления
Автор благодарит сотрудников компании PROMT Н. В. Железняк,
А. П. Молчанова, А. В. Бутакова и Т. Н. Пилатову за помощь в написании
этой статьи.
Литература
Беляева Л. Н., Откупщикова М. И. Автоматический (машинный) перевод // Прикладное языкознание / Под. ред. Герда А. С. СПб., 1996.
Молчанов А. Статистические и гибридные методы перевода в технологиях компании ПРОМТ. CONTROL ENGINEERING Россия #4 (46), М., 2013.
Koehn P. Statistical Machine Translation. Cambridge, UK, 2010.
Koehn P. Statistical Machine Translation System: User Manual and Code Guide.
Edinburgh, UK, 2015.
Koehn P., Hoang H., Birch A., Callison-Burch C., Federico M., Bertoldi N., Cowan B.,
Shen W, Moran C., Zens R., Dyer C., Bojar O., Constantin A., and Herbst E.
Moses: Open source toolkit for statistical machine translation. ACL, Prague, Czech
Republic, 2007.
Manning Christopher D., Schütze Hinrich. Foundations of Statistical Natural Language
Processing. MIT Press. Cambridge, MA, 1999.
Papineni K., Roukos S., Ward T., and Zhu W. BLEU: a Method for Automatic Evaluation
of Machine Translation. ACL, Philadelphia, US, 2002.
Tiedemann J., Nygaard L. The OPUS corpus — parallel & free. LREC, Lisbon, 2004.
Varga D., Nemeth L., Halacsy P., Kornai A., Tron V., Nagy V. Parallel corpora for
medium density languages. RANLP, Borovets, Bulgaria, 2005.
Электронные ресурсы
Moses, полный набор для создания SMT http://www.statmt.org/moses/
LF Aligner, выравнивание текстов http://aligner.sourceforge.net/
Hunalign, алгоритм выравнивания текстов http://www.languagearchives.org/item/oai:lindat.mff.cuni.cz:11372/LRT-1203,
Руководство
пользователя
алгоритма
hunalign
http://mokk.bme.hu/resources/hunalign/
GIZA++, выравнивание по словам http://www.fjoch.com/GIZA++.html
OPUS, открытый корпус параллельных текстов http://opus.lingfil.uu.se/
Europarl, параллельные протоколы Европарламента http://www.statmt.org/europarl/
Acquis Communautaire, параллельные документы Европарламента
http://langtech.jrc.it/JRCAcquis.html
SRILM, создание моделей языка http://www.speech.sri.com/projects/srilm/
IRST LM, создание моделей языка http://sourceforge.net/projects/irstlm/
BLEU, метрика оценки качества http://www.nist.gov/speech/tests/mt/scoring/
METEOR, метрика оценки качества is available at http://www.cs.cmu.edu/
alavie/METEOR/
Глава 7. Машинный перевод
Asiya, оценка статистического перевода
http://asiya.lsi.upc.edu/demo/asiya_online.php
Система Apertium, которую можно настраивать на свой язык
http://www.apertium.org/index
Переводчик PROMT http://www.translate.ru/
Библиотека по машинному переводу http://www.mt-archive.info/
Лекции Михаэля Коллинза на Coursera https://www.coursera.org/course/nlangp
191
Глава 8
Информационный поиск
Автор: Дмитрий Владимирович Грановский, выпускник 2009 года,
разработчик компании «Яндекс»
1. Где ищем?
Информационный поиск сегодня — это прежде всего поиск в интернете. Конечно, далеко не вся информация, накопленная человечеством,
оцифрована. Но большинство новых текстов сейчас появляется в электронном виде, а тексты, изданные ранее на бумаге, все быстрее переводятся в электронный формат. Так или иначе, количество запросов к интернетпоисковикам в мире с 2000 по 2015 год выросло как минимум в 100 раз и
достигло нескольких миллиардов в день.
Автоматизированный информационный поиск возник гораздо раньше,
чем появились персональные компьютеры и интернет. Ученые еще в
Древнем мире осознали необходимость что-то регулярно искать в больших массивах информации. Но в ХХ веке количество научных публикаций
стало быстро расти, поиск работ на нужную тему в библиотечном каталоге начал отнимать значительное время. Проблема была настолько насущной,
что уже к началу 1970-х годов были не только изобретены инвертированные
индексы (основная структура для хранения поисковых данных), но и
предложена знаменитая мера tf-idf. Эти понятия — и уж во всяком случае,
стоящие за ними идеи — по-прежнему занимают очень важное место в
теории информационного поиска; мы еще поговорим о них.
Появление в нашей жизни интернета, безусловно, дало мощнейший
импульс развитию теории и практики поиска. Появились проблемы, о которых раньше и помыслить было невозможно: например, поисковый спам.
Оказалось, что веб-страницы устроены не так, как обычные текстовые
документы. Например, у каждой страницы на сайте есть одинаковое меню
и «шапка» с контактными данными владельца, и все это не должно являться областью поиска. Оказалось также, что документы в коллекции
могут меняться, иногда даже по многу раз в день, а еще — что перед тем,
как вообще начать обрабатывать документ, нужно его сначала скачать. Эти
и другие особенности интернет-текстов превратили проблему поиска в
Глава 8. Информационный поиск
193
интересную задачу не только для пользователей, но и для инженеров и
лингвистов.
2. Что ищем?
Для начала введем несколько терминов.
Если задаться вопросом, с чего начинается компьютерный поиск, то
становится ясно, что не с нажатия кнопки «Найти» и даже не с ввода первого символа запроса. К моменту ввода первого символа в голове пользователя уже имеется некоторое более или менее четкое представление о том,
что он хочет найти. Это представление называется информационной потребностью (information need).
К сожалению, современная наука пока не умеет заглянуть в голову к
пользователю, чтобы прочесть там информационную потребность, поэтому он вынужден формулировать свою потребность словами и набирать
что-то на клавиатуре (или произносить вслух). Такая формулировка называется собственно поисковым запросом (query). Она может находиться с
исходной потребностью в разнообразных отношениях — мы вернемся к
этому ниже.
Информация, которую ищет наш пользователь, должна где-то существовать, чтобы иметь шанс быть найденной. Массив информации, среди
которой производится поиск, будь то библиотечный каталог или целый
интернет, принято называть коллекцией (collection). Обычно подразумевается, что внутри коллекции информация разбита на отдельные единицы — документы (documents). Это удобно, потому что в качестве ответа
на запрос поисковая система может просто выдать документ или набор
документов, а не пытаться самостоятельно сформулировать ответ на языке
пользователя, как это делают вопросно-ответные системы.
Можно подумать, что коллекция обязательно состоит из текстовых
документов, но, вообще говоря, это не всегда так: документ (а равно и запрос) может быть изображением, звуковым файлом, видеороликом или
чем-то еще. Поиск по нетекстовым документам называется мультимедийным, но наша книга посвящена лингвистике, поэтому в этой главе мы будем рассматривать текстовый поиск. Впрочем, поиск чаще всего именно
таким и бывает.
Запрос, который вводит пользователь, состоит, как правило, из слов.
Как правило, потому что в нем могут попадаться последовательности
символов вроде «212–85–06» или «AC/DC», которые было бы довольно
странно называть словами. Поэтому части запроса и документа иногда
называют называть терминами (terms).
194
Часть II. Направления
3. Как ищем?
Проблемы разработчика поисковой машины можно разделить на технические и содержательные. Технические проблемы связаны прежде всего
с масштабом задачи: в случае с интернетом это миллиарды документов,
тысячи запросов в секунду, распределенные системы из тысяч компьютеров и т. д. Все это само по себе очень увлекательно и порождает массу тем
для книг, статей и конференций.
Но в этой главе мы рассмотрим содержательные проблемы. В основном они вызваны тем, что документы и запросы написаны на естественном языке. А естественный язык обладает разными неудобными для автоматического анализа свойствами вроде избыточности и неоднозначности.
Но если мы хотим найти для пользователя документы, соответствующие
запросу, то необходимо проанализировать (в идеале — понять) и запрос, и
документы.
Здесь возникает техническая проблема, которую невозможно не упомянуть. Что должна делать машина, получившая поисковый запрос? Она
должна просмотреть целиком каждый документ в коллекции и решить,
подходит он или нет? Например, понять, содержит ли он все слова из запроса? В принципе можно именно так сделать, но из-за размеров коллекции и неизбежно ограниченной скорости обработки данных это займет
столько времени, что даже самый терпеливый пользователь заскучает и
уйдет. Очевидно, нужно уметь выбирать документы, не читая их полностью.
3.1. Индекс
Один удобный способ поиска хорошо известен. Представьте себе толстую сложную книгу, хотя бы такую, как эта. В конце нее наверняка будет
алфавитный указатель использованных терминов. Такой указатель позволяет читателю быстро понять, на какой странице (почти что «в каком документе») встречается тот или иной термин, что очень упрощает поиск.
Ровно эта же идея лежит в основе инвертированного индекса (inverted
index). Можно заранее один раз пройтись по каждому документу, выделить из него все слова и дописать номер этого документа1 к общему списку всех слов.
Результат будет выглядеть примерно так:
1
Для технических целей удобнее хранить не названия документов, а их номера, чтобы
иметь дело с числами, а не с цепочками букв. При этом таблица «номер—название» хранится
отдельно.
Глава 8. Информационный поиск
А
1, 2, 3, 5, 6, 7, 8, …
АБАКАН
172, 298
195
…
ЯЩИКОВ
28, 90, 155
ЯЩУР
11
Если в качестве первого приближения считать, что для ответа на поисковый запрос подходят документы, в которых содержатся все слова запроса, то теперь нам не нужно перебирать всю коллекцию, а достаточно
лишь найти в индексе слова запроса (которых обычно немного) и выбрать
пересечение соответствующих списков документов.
Разумно предположить, что, например, по запросу [глаголы]1 пользователь хотел бы найти в том числе и документ, где упоминается «спряжение глаголов». Это, конечно, должно навести нас на мысль о морфологии.
И действительно, в индексе обычно хранят уже нормализованные формы
слов: вместо отдельных элементов для «глаголы», «глаголов» и «глаголами» — всего один индекс «глагол». В данном примере используется лемматизация, хотя для некоторых языков, включая английский, эффективнее
использовать стемминг.
Такое уменьшение элементов за счет приведения близких слов к одинаковой форме называют нормализацией (normalization). Иногда требуются и менее сложные способы нормализации, связанные, например, с
регистром символов или со слитным/раздельным написанием слов. Конечно, слова запроса тоже проходят те же этапы нормализации, прежде
чем мы начинаем искать их в индексе.
Я намеренно привел сейчас крайне упрощенное описание индекса. На
самом деле его правая часть (называемая списком словопозиций, или
posting list) устроена сложнее и содержит список не просто номеров документов, а довольно сложных структур, хранящих, например, следующую
информацию:
• в каких конкретно местах документа встретилось слово (иногда полезно искать слова в нужном порядке или подряд);
• сколько всего раз оно там встретилось (частота слова вообще очень
важна);
• в какой именно форме находилось слово в каждой позиции (это помогает искать, например, точные цитаты).
1
Будем придерживаться распространенной практики и заключать примеры запросов в
квадратные скобки.
196
Часть II. Направления
3.2. В идеальном мире
Предлагаю сейчас остановиться и попробовать представить, как должен был бы выглядеть «идеально» устроенный поиск с точки зрения классической компьютерной лингвистики.
Итак, у нас есть текст документа. Мы пропускаем его через морфологический анализатор, затем через синтаксический и получаем набор некоторых графов — например, деревьев зависимостей, — соответствующих
предложениям в документе. После этого к работе приступает семантический анализатор, который на основе этих структур строит некоторое семантическое представление. Остается только придумать, как построить
индекс на основе таких представлений. Затем при поступлении поискового запроса мы с помощью тех же операций строим семантическое представление запроса, отправляем это представление в наш семантический
индекс и, вероятно, с большой точностью находим то, что хотел пользователь.
Нет каких-то фундаментальных причин считать, что такой подход не
будет работать. Некоторые шаги в этом направлении делает компания IBM,
создавшая специализированную вопросно-ответную систему по имени
Watson. В 2011 году она прославилась тем, что победила лучших в США
игроков в «Jeopardy!» (аналог отечественной интеллектуальной «Своей
игры»). В последнее время эта система испытывается в области анализа
медицинских данных.
3.3. Тем временем в реальности
Если мы начнем разрабатывать полноценную поисковую машину по
описанной выше схеме, то очень быстро столкнемся с весьма серьезными
проблемами.
Во-первых, нужен качественный синтактико-семантический анализатор, который более или менее правильно разберет любое предложение, в
том числе верно обработает анафору, не откажется работать на безграмотном тексте из блога, опознает эллипсис, избежит комбинаторного взрыва
на предложении длиной в абзац и т. д. Делать такой анализатор очень долго и дорого, хотя, по-видимому, и возможно, как показывает ABBYY
Compreno [Анисимович и др. 2012].
Предположим, нам все же удалось как-то заполучить такой анализатор и придумать, как строить семантический индекс. Теперь заметим, что
нам постоянно нужно индексировать терабайты документов, а синтаксический и семантический анализ — очень трудоемкие операции с точки
зрения количества вычислений. Даже без них текущее обновление поисковых индексов требует громадных ресурсов.
Глава 8. Информационный поиск
197
Есть и содержательные проблемы. Тексты документов, как уже упоминалось, разнородны и часто содержат ошибки, так что для их правильной обработки требуется очень изощренный парсер. Но это полбеды, а
беда в том, что в запросах все совсем не так, как в документах. Синтаксиса как такового нет, заглавные буквы никто не пишет, да и вообще, как
правило, современный пользователь, в отличие от ученых из 1960-х, не
очень заботится о точности и ясности формулировок. Скажем, под запросом [дорога владимир николаев] может иметься в виду как маршрут из
города Владимира в город Николаев, так и какая-нибудь книга, песня или
клип «Дорога» некоего Владимира Николаева. Или что-нибудь еще. Получается, для запросов нужен какой-то совсем другой анализатор.
Существует не вполне четкая, но распространенная классификация
запросов:
• информационные, когда ищется ответ на вопрос или любая информация об объекте или явлении: [расстояние до марса], [время сейчас в
гонолулу], [всё о кроликах];
• навигационные, когда ищется конкретный сайт или страница: [оф
сайт фк зенит];
• транзакционные, когда на самом деле искать информацию не надо, а
надо выполнить некую задачу: [билет плацкарт в воронеж на
6 августа].
Кажется, что применение семантического индекса имеет смысл только для информационных запросов, да и то не для всех.
Кроме того, пользователи совершенно не привыкли рассматривать
поисковик как вопросно-ответную систему и для запросов употребляют
некоторый упрощенный язык. Маловероятно, что запрос будет сформулирован как [по какому адресу в г. Орле находится ООО «Супермен»?]; скорее, в окне поиска будет набрано что-то вроде [орел супермен адрес]. И
дело не только в лени пользователя, хотя и в ней тоже. Некоторые люди
поначалу пробуют задавать запросы на нормальном языке, но либо получают плохие ответы от машины («оно меня не понимает»), либо обнаруживают, что нужные ответы можно получить даже по недоформулированному запросу («и так работает»). В обоих случаях пользователи переходят
на упрощенный язык. А разработчики поисковых систем в свою очередь
видят, что практически никто не задает запросов на естественном языке, а
стало быть уделять какое-то особое внимание обработке таких запросов
незачем. Непонятно, где выход из этого замкнутого круга, да и нужно ли
его искать — тоже непонятно.
Думаю, вы уже поняли: современные промышленные поисковые системы работают без глубокого понимания смысла текста.
198
Часть II. Направления
4. Что такое хорошо?
4.1. Релевантность, полнота, точность
Прежде чем более плотно заняться вопросом о том, как сделать хороший поиск, хотелось бы попробовать понять, какой поиск можно считать хорошим.
Если спросить пользователя, то он скажет: хороший поиск — это такой, который показывает нужные мне документы, а ненужные не показывает. Степень этой «нужности» принято называть релевантностью
(relevance). Она ни в каких особых единицах не измеряется и служит только для сравнения документов между собой: этот более релевантный, тот
менее. Релевантность определена для любой пары <запрос, документ>,
хотя зачастую полезно считать, что она определяется даже для тройки
<пользователь, запрос, документ>.
Теперь представим себе пользователя поисковой системы полвека назад. Скорее всего, это ученый или специалист по патентам. На первый
взгляд, он делает примерно то же самое, что и интернет-пользователь:
формулирует свою поисковую потребность в виде запроса, вводит этот
запрос в некоторое поле и получает список документов или ссылок на них
— допустим, библиотечных кодов или номеров патентных заявок. Но есть
и важные отличия:
• он хорошо представляет себе, как устроена коллекция и что можно
ожидать в ней найти;
• он хорошо понимает свою поисковую потребность и приблизительное количество релевантных документов;
• он тщательно формулирует поисковый запрос и готов (и даже хотел
бы) просмотреть все документы, найденные по этому запросу.
При поиске в интернете ситуация выглядит иначе. В огромном большинстве случаев интернет содержит огромное число хоть в какой-то степени релевантных документов. И почти никогда мы не готовы просмотреть все выданные нам ссылки. По правде говоря, мы практически никогда не заходим даже дальше первой десятки. Зато нам бы хотелось, чтобы
в этой десятке были самые полезные документы. И тут мы естественным
образом приходим к понятиям точности и полноты поиска.
Точность поиска (precision) показывает, насколько хороши найденные документы, она определяется как доля релевантных документов в
числе всех найденных.
Полнота поиска (recall) показывает, не остались ли ненайденными
полезные документы, она определяется как доля найденных документов в
числе всех релевантных документов в коллекции.
Глава 8. Информационный поиск
199
Нашему гипотетическому библиотечному ученому важна полнота поиска: он не хочет пропустить ни одной статьи по нужной теме, даже если
для этого придется просмотреть пару лишних. Но сегодня нам с вами
важнее точность: мы совсем не хотим тратить время на неподходящие
страницы и очень часто удовлетворяемся всего одной подходящей.
Когда мы заботимся главным образом о полноте, документы в принципе можно выдавать в любом порядке. А вот если приоритетом является
точность, то нам очень хочется видеть ранжированную поисковую выдачу: чтобы поисковик в первую очередь выдавал те документы, которые
считает наиболее релевантными. Если среди первых 100 документов находится 95 релевантных, то точность при такой выдаче равна 95 %. Но
если на первых пяти строчках при этом оказались нерелевантные документы, результат поиска может разочаровать.
Для оценки поиска нужны совсем другие метрики качества, и их придумано очень много. В этой статье, к сожалению, не хватит места даже
для краткого их обзора, но в качестве отправной точки их изучения можно
взять, например, статью [Агеев и др. 2010].
4.2. Фильтрация и ранжирование
Пользователю нужна точность или полнота, но он в любом случае не
хочет просматривать совсем не подходящие документы. Поэтому первое,
что должен сделать поисковик, — постараться сразу отбросить такие документы. Их можно отсеивать разными способами. Например, документ
точно не подходит, если в нем нет ни одного из слов запроса; уже знакомый нам инвертированный индекс делает такую проверку очень простой.
Этот метод начинает работать хуже и пропускать много лишнего на длинных запросах или на запросах с так называемыми стоп-словами (это частотные слова вроде союзов или предлогов, которые часто можно выбросить без потери содержания запроса). На этот случай есть другие методы.
Один из них использует понятие, которое в Яндексе называется кворумом.
Оно приблизительно означает «в документе встретилась достаточная доля
слов запроса, взвешенных по частотности».
Так или иначе, после того как ненужные документы выброшены, оставшиеся нужно упорядочить по предположительной релевантности. Современные поисковые системы решают эту задачу методами машинного
обучения с учителем.
Будем считать, что релевантность (которая, напомним, задана для пары <запрос, документ>) — это число, тогда ранжирование сводится к сортировке документов по этому числу. Если так, то нам нужна некоторая
функция, которая, если ей дать пару запрос-документ, умеет возвращать
число.
200
Часть II. Направления
4.3. Факторы ранжирования
Чтобы программа могла сортировать документы, ей нужны факторы
ранжирования (ranking features) — признаки, которые можно извлечь из
запроса и/или из документа и которые можно выразить числом. Например,
такие:
• доля слов запроса, встретившихся в документе;
• доля слов запроса, встретившихся в документе ровно в такой же форме, как в запросе;
• доля биграмм запроса, встретившихся в документе.
Все это примеры текстовых факторов, т. е. таких, которые извлекают информацию из текста документа. Но могут быть и нетекстовые факторы.
Например: веб-документы могут ссылаться друг на друга посредством гиперссылок. Документы, на которые часто ссылаются, нередко бывают более качественными (никто же не станет ставить ссылку на плохие
документы, думали все, пока кто-то не изобрел торговлю этими ссылками).
Самая известный алгоритм, учитывающий ссылочные факторы, называется PageRank [Brin, Page 1998]. Поскольку гиперссылка содержит текст,
можно использовать его для расчета факторов: например, смотреть, часто
ли встречаются слова запроса в текстах ссылок на данный документ.
Можно заметить, что чисто ссылочные факторы вообще не используют информацию о запросе и зависят только от документа. В принципе,
таких факторов, которые задают «априорную» релевантность, можно придумать много: возраст сайта, доля опечаток в тексте документа, доля слов,
набранных заглавными буквами, количество смайликов на абзац, да что
угодно, лишь бы работало.
Еще одна важная разновидность факторов — поведенческие. Поисковая система имеет возможность «наблюдать» за тем, что пользователи
делают с результатами поиска: сколько документов просматривают, какие
именно и как долго, переформулируют ли запрос (если да, то, наверное, по
исходному запросу ничего путного не нашлось) и т. п.
Нечистые на руку владельцы сайтов, заинтересованные в том, чтобы
их документы показывались высоко в поисковой выдаче, постоянно пытаются «накручивать» любые факторы, включая поведенческие, — и им
это иногда удается. Поэтому разработчики поисковиков вынуждены постоянно придумывать новые признаки, иначе качество поиска будет быстро ухудшаться. Приходится бежать со всех ног, чтобы только остаться на
том же месте. К примеру, поиск Яндекса по состоянию на 2015 год использует порядка тысячи факторов.
Для работы некоторых факторов требуется включать дополнительные
данные в инвертированный индекс или вообще создавать отдельный ин-
Глава 8. Информационный поиск
201
декс. Это влечет определенные накладные расходы, которые оправдываются, если фактор улучшает общее качество поиска.
4.4. Оценки релевантности
Факторы ранжирования — это способ разложить такие сложные объекты, как запрос и документ, на простые численные составляющие, понятные машине. Но их, очевидно, недостаточно, ведь нужна еще какая-то
информация, позволяющая делать выводы о том, какие комбинации значений факторов свидетельствуют о высокой релевантности, а какие нет.
Как я уже упоминал, алгоритм ранжирования — это чаще всего обучение с учителем. Оно предполагает, что машине нужно показать какое-то
количество троек запрос-документ-релевантность, где релевантность уже
известна. Эти тройки являются обучающей выборкой — чем их больше,
тем лучше. Для их создания можно попросить группу людей оценивать
пары запрос-документ: насколько этот документ с их точки зрения релевантен данному запросу. Эти люди называются асессорами и, конечно,
никто не заставляет их подбирать числа для каждого случая; вместо этого
они пользуются шкалой типа «нерелевантный — слабо релевантный —
очень релевантный» (на самом деле шкала длиннее), а эти дискретные
оценки потом каким-то образом переводятся в число.
В итоге получится обучающее множество вместе с оценками, где документы и запросы выражены в виде значений факторов. Дальше остается
чисто инженерно-математическая задача: отдать это множество некоему
алгоритму, который построит формулу ранжирования. Введение в эти алгоритмы дано в нашей книге в главе 5 «Машинное обучение в лингвистике». Можно упомянуть также, что алгоритм MatrixNet [Gulin, Karpovich
2009], используемый в Яндексе, основан на деревьях решений и относится
к семейству oblivious boosted decision trees.
4.5. Не все слова одинаково полезны
Сложные алгоритмы ранжирования с машинным обучением, естественно, появились далеко не сразу. До них было предложено множество
более простых моделей, причем нельзя сказать, что они совсем уж ушли в
прошлое — идеи или даже готовые формулы из них, такие как BM25
[Spärck Jones et al. 2000], вполне пригодны в качестве факторов ранжирования.
Одно из известных семейств классических моделей поиска — это
векторные модели. Векторное представление — в целом довольно популярный способ работать с разнообразными лингвистическими объектами.
В случае с поиском основную идею можно описать так: пусть у нас есть
202
Часть II. Направления
пространство, заданное всеми возможными терминами (возможно, нормализованными). Представим каждый документ как вектор в этом пространстве: значением каждой координаты вектора будем пока считать количество употреблений соответствующего термина в этом документе (это модель
«мешка слов», когда порядок следования терминов не важен). Далее каждый запрос тоже будем представлять как вектор в этом же пространстве.
Тогда значение релевантности можно вычислить, например, как косинус
угла между вектором запроса V (q) и вектором документа V (d):
œ78•( , ž) =
(x( ), x(ž))
‖x( )‖‖x(ž)‖
Рассмотрим немного искусственный пример. Пусть у нас есть микроколлекция из трех документов и запрос q1 = [разводка мостов петербург].
Документы я запишу сразу в виде векторов частоты терминов:
Термины/
документы
Doc1
Doc2
Doc3
в
5
2
10
время
5
2
0
мост
0
7
8
петербург
5
15
25
разводка
1
4
0
Судя по этим векторам, документ 2 кажется релевантным, а в остальных двух говорится о чем-то не совсем соответствующем запросу. Проверим, увидит ли это наша метрика:
œ78•D
,
7œ1E =
œ78•D
,
7œ2E =
œ78•(
,
7œ3) =
1×1+1×0+1×5
√1 + 1 + 1 × √1 + 0 + 5
1 × 4 + 1 × 7 + 1 × 15
√1 + 1 + 1 × √4 + 7 + 15
1 × 0 + 1 × 8 + 1 × 25
√1 + 1 + 1 × √0 + 8 + 25
≈ 0.679
≈ 0.881
≈ 0.726
Все в порядке, второй документ выиграл.
А теперь изменим запрос: q2 = [время разводки мостов в петербурге].
Казалось бы, информационная потребность примерно та же самая и вто-
Глава 8. Информационный поиск
203
рой документ снова должен выиграть. (Заметьте, теперь в запросе уже
пять терминов и мы все их учитываем.)
œ78•D
,
œ78•D
œ78•(
,
,
7œ1E =
7œ2E =
7œ3) =
1×5+1×1+1×0+1×5+1×5
√1 + 1 + 1 + 1 + 1 × √5 + 1 + 0 + 5 + 5
1 × 2 + 1 × 4 + 1 × 7 + 1 × 2 + 1 × 15
√1 + 1 + 1 + 1 + 1 × √2 + 4 + 7 + 2 + 15
1 × 0 + 1 × 0 + 1 × 8 + 1 × 25 + 1 × 10
√1 + 1 + 1 + 1 + 1 × √0 + 0 + 8 + 25 + 10
≈ 0.821
≈ 0.777
≈ 0.685
Но, как видно, документ 1, почти совсем не релевантный (в нем ни
слова про мосты), неожиданно получает наибольший вес. Почему так
происходит? Очевидно, потому, что косинус и схожие метрики придают
одинаковое значение всем координатам вектора, то есть все термины имеют равный вес. Но имеет ли это смысл? Кажется, что слова запроса несут
неодинаковую смысловую нагрузку. Слово петербурге для поиска гораздо
важнее, чем слово в. Кроме того, можно предположить, что в нашем запросе слово разводка важнее слова мостов, поскольку добавление слова
разводка к информационной потребности «петербург + мосты» сужает
круг релевантных документов значительно сильнее, чем добавление мостов к потребности «петербург + разводка».
Так что хотелось бы внести в расчет релевантности знание о том, что
некоторые термины важнее, чем другие. А какие из них важнее? Есть разные способы это смоделировать, самый простой из которых — наблюдение, что степень семантического наполнения слова обратно коррелирует с
его частотой в языке. Чем более редкое слово, тем больше у него собственного значения. Это, конечно, упрощение, зато такую зависимость легко
формализовать.
До сих пор мы брали для расчетов просто количество употреблений
термина в документе. Эта величина естественно называется частотой
термина (term frequency) и обозначается tf. Теперь нужно учесть еще и
частоту термина вообще, во всей коллекции. Но давайте пойдем еще
дальше и заметим, что в коллекции вполне может попасться документ с
аномально высокой частотой некоторого термина. Допустим, кто-то по
невнимательности или ради интереса создал страницу, где десять тысяч
раз упоминается апатозавр — зверь, живший 150 миллионов лет назад.
Это совсем не то же самое, как если бы в коллекции встретилось 5000 документов по два апатозавра в каждом. Последний вариант говорил бы о
том, что объект, обозначаемый этим термином, достаточно распространен,
чтобы о нем нашлось что сказать в нескольких тысячах документов, а не в
204
Часть II. Направления
одном. А первый случай может быть просто хулиганством или случайным
отклонением. Поэтому вместо суммарной частоты термина во всей коллекции лучше брать количество документов коллекции, где этот термин
встретился. Этот показатель называется документной частотой (document
frequency), df. Чем она выше, тем меньший вес должен получить термин,
значит, на нее будем делить. После нескольких манипуляций, выполняемых для сглаживания (т. е. чтобы суммарный вес термина падал медленнее, чем падает df), получим новую важную величину под названием обратная документная частота (inverse document frequency) или idf:
tž (¨) = log
«¬( )
,
где t — термин, а N — число документов в коллекции.
Так мы приходим к самой известной схеме взвешивания терминов tfidf. Она получается, как можно догадаться, перемножением tf и idf:
¨ ˗tž (¨, ž) = ¨ (¨, ž) × tž (¨)
Можно проверить, что если все в той же векторной модели мы вместо
tf станем брать tf-idf, то ранжирование исправится. Вычисления я опущу, а
результат получится такой1:
œ78• ¬ «¬ (
œ78• ¬ «¬ (
œ78• ¬ «¬ (
,
,
,
7œ1) ≈ 0.745
7œ2) ≈ 0.809
7œ3) ≈ 0.617
У функции tf-idf есть много разновидностей: к примеру, кажется
странным, что термин, который встретился в документе двадцать раз, действительно в двадцать раз важнее термина, который встретился лишь однажды. Поэтому здесь тоже можно применить сглаживание, допустим,
брать вместо tf его логарифм плюс единицу. Про это и про другие варианты нормировки можно прочесть в [Маннинг и др. 2011, с. 143–148].
5. А где же лингвистика?
Может сложиться впечатление, что раз полноценный анализ документов и запросов для поиска практически невозможен, то поисковая система
прекрасно обходится вообще без компьютерной лингвистики и достигает
приемлемого качества одним только машинным обучением поверх достаточного количества факторов и оценок релевантности. Это не так.
1
Здесь df посчитана с помощью Национального корпуса русского языка (ruscorpora.ru), а
N, как легко видеть, можно выбрать любым, потому что оно одинаковое для любого термина
и любого документа; я взял 108.
Глава 8. Информационный поиск
205
5.1. Стандартные запчасти
Во-первых, для нормализации терминов нужен морфологический
анализатор — стеммер или лемматизатор. Помимо прочего, анализатор
должен хорошо управляться с несловарными словами, которых много в
запросах (в особенности это касается различных имен собственных).
Кроме того, поскольку запросы обрабатываются в реальном времени, могут возникать ограничения на размер модели словоизменения, «зашитой»
в лемматизатор. Чтобы уложиться в эти ограничения, потеряв как можно
меньше в полноте срабатываний, может потребоваться, скажем, выбросить
часть редких форм из слишком обширных парадигм, или выбросить максимум словарных форм, правильно разбираемых модулем несловарного
анализа, или придумать более компактный способ хранения модели, или
еще что-нибудь. Все это не такие уж тривиальные задачи.
Кстати, для того, чтобы выбрать правильный морфологический анализатор для данного документа или запроса, нужно уметь определять их
язык — даже если используется смесь языков или транслитерация. Чем
больше языков мы хотим поддержать, тем больше шансов, что они начнут
путаться между собой, и тем более хитрая модель распознавания языка
может понадобиться. (Хотя обычно все сводится к вероятностям N-грамм
символов и некоторой добавки из частотных слов.)
Другой очень важный компонент — модуль исправления опечаток.
Около 10–15 % запросов содержат опечатки, которые требуется исправить,
чтобы извлечь из запроса настоящую информационную потребность. Дело
отчасти осложняется тем, что запросы — это очень короткие тексты, и
часто контекста недостаточно для выбора нужного варианта исправления
из нескольких. К примеру, если мы получили запрос [тстер], то пользователь мог иметь в виду как тестер, так и тостер, и даже остер, но [цифровой тстер] намекает на то, что это все-таки тестер. В зависимости от
того, доступен ли контекст, можно использовать модель, учитывающую
или не учитывающую его.
По сравнению с некоторыми другими ситуациями, где нужен модуль
опечаток (например, в текстовом редакторе), при поиске используется
расширенный набор стратегий обработки слова с предполагаемой опечаткой:
• при достаточной степени уверенности можно просто заменить ошибочное слово в запросе на правильное (об автозамене см., например,
свежую статью [Панина и др. 2013]);
• если уверенности меньше, можно показать пользователю подсказку
(«Возможно, вы имели в виду…»);
• в некоторых случаях, когда в результате опечатки получается другое
существующее слово (допустим, [отель астра] вместо [опель астра]),
206
Часть II. Направления
можно подмешать к результатам поиска по исходному запросу результаты поиска по исправленному и тем самым увеличить вероятность нахождения хотя бы одного релевантного документа.
Где-то рядом с проблемой опечаток находится проблема диакритики.
Для русского языка она стоит не слишком остро (омонимов на е-ё сравнительно немного), но в некоторых других языках, таких как турецкий или
венгерский, много букв с диакритикой, и пользователи регулярно ленятся
набирать их (ведь это иногда требует двух нажатий клавиш вместо одного!), заменяя, например, ç на c или ğ на g. В результате образуется особый
класс регулярных опечаток, проблематичных именно своей регулярностью:
легко может оказаться, что вариант с «неправильной» диакритикой встречается в запросах чаще, чем с настоящей, а такого рода статистика —
важная часть модуля обработки опечаток.
5.2. Расширения
Поиск, как мы уже начинали обсуждать, страдает от неоднозначности,
присущей естественным языкам. Одна из сторон этой неоднозначности —
синонимия, причем в наиболее широком смысле: когда два термина (или
даже еще шире — две подстроки) взаимозаменяемы в некоторых контекстах. Скажем, по запросу [где купить картошку недорого] наверняка будет
релевантным документ, предлагающий [купить картофель дешево]. В этом
примере фигурирует самый очевидный для лингвиста вид синонимов, давайте назовем их «просто синонимы». Как известно, полных синонимов
вообще очень мало, вот и картошка/картофель тоже заменяют друг друга
не всегда: допустим, [пирожное картофель] — это запрос не про пирожное картошка.
Кроме «просто синонимов», можно выделить еще такие классы (см.
[Соловьев 2010]):
словообразовательные: [законы физики] vs [физические законы];
транслиты: [Bosch] vs [Бош], [Metallica] vs [Металлика];
аббревиатуры: [ИП] vs [индивидуальный предприниматель];
склейка-разрезание: [авто кредит] vs [автокредит].
Как это использовать? Если мы знаем, что термин Голландия является
синонимом термина Нидерланды, то можно сделать приблизительно вот
что: при обработке запроса [нидерланды достопримечательности] до того,
как обращаться к инвертированному индексу за словопозициями, преобразовать запрос так, чтобы на месте первого термина стояла дизъюнкция
терминов. Это можно записать как [(нидерланды ^ голландия) достопримечательности], и в данном случае можно сказать, что мы расширили тер•
•
•
•
Глава 8. Информационный поиск
207
мин запроса другим термином. Такие расширения практически не усложняют алгоритм поиска нужных документов в индексе.
Где найти и как потом хранить такие данные? Традиционно информация о связях между словами содержится в тезаурусах. Например, в структуре WordNet предусмотрены связи двух из пяти видов («просто синонимы» и словообразовательные), плюс аббревиатуры в принципе могут входить в тезаурус как отдельные слова и образовывать стандартные связи.
Если тезаурус многоязычный, там можно найти в каком-то количестве и
«транслитные» синонимы. Применение в поиске таких «классических»
тезаурусов описано в [Лукашевич 2011: 201–222]. Наши пять видов расширений можно считать тезаурусными расширениями.
Но в реальности готового тезауруса достаточной полноты не существует, особенно с учетом того, что новые аббревиатуры и транслиты появляются постоянно. В такой ситуации приходится собирать тезаурус из
разных источников. В вышеупомянутом докладе Евгения Соловьева описан процесс такой сборки в том виде, в каком он использовался в Яндексе
в 2010 году. Этот процесс работает во многом одинаково для всех классов
синонимов и включает 4 стадии:
генерация исходных гипотез;
фильтрация с помощью лингвистической модели;
фильтрация с помощью статистики совместной встречаемости;
очистка полученного словаря с помощью модели, полученной машинным обучением на данных ручной разметки пар гипотез.
Как может выглядеть лингвистическая модель? Для «просто синонимов» это может быть один из множества вариантов семантического расстояния по тезаурусу типа WordNet; для словообразовательных — соответственно, модель словообразования, которая знает обо всех допустимых
аффиксах и их продуктивности; для транслитов — написанные вручную
правила и имеющиеся стандарты транслитерации (с которыми сталкивался любой, кто получал загранпаспорт) и/или статистическая модель, обученная на большом параллельном корпусе транслитераций. Для аббревиатур и слитных-раздельных синонимов достаточно более простых моделей.
Под совместной встречаемостью подразумевается не только, допустим, появление обоих членов гипотетической синонимической пары на
одной веб-странице, но и регулярная замена одного члена другим в переформулировках: например, пользователь не удовлетворен результатами
поиска по запросу [айфон 6] и переформулирует запрос как [iphone 6];
такие события можно найти в накопленных данных и выделить статистически значимые частые замены, предположим, с помощью мер взаимной
информации. Фильтрация по совместной встречаемости помогает отсеять
•
•
•
•
208
Часть II. Направления
среди прочего случаи вроде магазин/magazine, то есть когда хороший
транслит не является хорошим расширением.
Одна из проблем полученных синонимов — неоднозначность, разрешаемая только в контексте: hugo в запросе [hugo boss] — это хьюго, а в
запросе [victor hugo] — гюго. Из этого следует, во-первых, что готовый
словарь расширений — структура несимметричная (расширять хьюго до
hugo безопасно, видимо, всегда, а наоборот — нет), во-вторых, что к паре
синонимов в словаре может прилагаться в каком-то виде список контекстов, в которых данное расширение имеет смысл.
Примечательно, что контекст необязательно должен быть текстовым.
Безобидная аббревиатура МГУ, оказывается, может означать не только
Московский государственный университет, но и еще несколько учебных
заведений (к примеру, Монгольский или Могилевский государственный
университет). И если к нам приходит запрос [поступление в МГУ] из Саранска (а поисковая система обычно может определить, в каком регионе
находится пользователь), то мы можем расширить МГУ до Мордовский
государственный университет. А вот если тот же самый запрос задан из
Подмосковья, то, пожалуй, это расширение не добавит полезных документов. Получается, что контекстом становится регион пользователя.
В качестве резюме можно сказать, что тезаурусные расширения серьезно помогают повысить полноту поиска, и это всецело оправдывает усилия по сбору словарей расширений.
5.3. Расстояния
Как использовать лингвистику для повышения точности? До сих пор
мы внимательно рассматривали только модель tf-idf, для которой порядок
следования слов запроса в документе был несуществен. Однако есть случаи, когда он имеет значение: вряд ли по запросу [нижний новгород] пользователь будет рад документу о маршруте из Нижнего Тагила в Великий
Новгород. Координатный инвертированный индекс, хранящий информацию о конкретных позициях терминов в документе, позволяет обрабатывать запросы с ограничениями на расстояния типа [нижний /1 новгород]
(такая запись означает, что второй термин должен находиться на расстоянии 1 от первого, то есть идти сразу за ним).
Типичная ситуация, когда расстояния полезны — наличие в запросе
имен и названий: имени-фамилии человека ([дмитрий менделеев]), топонима ([улица маршала жукова]), названия произведения искусства ([вино
из одуванчиков]) и т. п. С людьми, правда, есть некоторая загвоздка, потому что, скажем, в русской культуре у людей есть опциональные отчества,
и надо предусмотреть их корректную обработку, чтобы по запросу [владимир даль] находить документы «Владимир Даль» и «Владимир Ивано-
Глава 8. Информационный поиск
209
вич Даль» и не находить (или ранжировать ниже) документ «Князь Владимир всматривался в голубеющую даль».
Это немного похоже на задачу извлечения именованных сущностей, но в
запросе обычно не хватает контекста для использования стандартных моделей извлечения, поэтому более осмысленное решение здесь — использовать словари и некоторые простые модели (допустим, можно предположить, что цепочка вида «имя из словаря + слово на -вич/-вна + любое слово» является полным обозначением человека и все три термина надо искать вплотную). На эту тему см. [Ландо 2013].
Расстановка ограничений на расстояние — возможно, менее строгих
— может принести пользу и при обработке сочетаний типа [белая ворона],
[юридическое лицо], [спальный вагон] и т. п. Если смотреть шире, то если
мы в состоянии выделить в запросе, например, именную группу, то можно
попробовать искать слова-члены этой группы недалеко друг от друга. Что
такое «недалеко», можно подобрать эмпирически или машинным обучением.
В сущности, все это способы аппроксимировать структуру смысла
запроса без привлечения полного анализа. Как и во многих других случаях — например, со скрытыми марковскими моделями для снятия грамматической неоднозначности, — это явно очень сильное упрощение, но даже
в таком виде оно бывает полезно.
5.4. Еще немного поисковой лингвистики
Лингвистика может пригодиться и в некоторых других компонентах
информационного поиска. Например, некоторые информационные запросы предполагают один короткий правильный ответ, который можно показать вместе со списком найденных документов: [дата основания петербурга], [высота эйфелевой башни], [столица албании]. Это практически идеальная ситуация для использования простых семантических баз данных, в
частности, обычных троек RDF. Данные можно со сравнительно небольшими усилиями собрать даже из открытых источников (Википедия,
Wikidata, Freebase и т. п.). Остается научиться понимать, на какие запросы
нужно отвечать таким образом. Здесь с помощью относительно малого
количества шаблонов можно достичь приемлемой полноты.
Цель многих запросов неясна. Допустим, что следует искать по запросу [скутер]: транспортное средство или музыкальный коллектив? В
отсутствие контекста надо искать все, чтобы обеспечить разнообразие
поисковой выдачи. Но есть риск, что вся выдача заполнится документами
с одним из значений (заметим, вполне релевантными с обычной точки
зрения). Чтобы избежать этого, можно заранее с помощью классификатора
пометить документы тем или иным значением, а на этапе ранжирования
210
Часть II. Направления
проследить, чтобы все значения были равномерно представлены в выдаче.
Задача текстовой классификации документов исследована очень хорошо,
но здесь может возникнуть сложность с полнотой словаря многозначных
терминов и полнотой списка возможных значений. Часть этой информации можно взять из тезауруса или онтологии, если они есть в наличии, но
этого, конечно, недостаточно, и поэтому придется обращаться к статистике. В частности, это может быть статистика запросов с термином в заранее
отобранных контекстах вроде [скутер mp3] или [скутер техобслуживание].
На хорошей странице поисковой выдачи есть не только ссылки на
найденные документы, но и короткие фрагменты текста этих документов,
чтобы пользователь мог составить какое-то мнение о документе еще до
перехода по ссылке. Эти короткие фрагменты называются сниппетами
(snippets) или — в отечественной литературе — аннотациями. Хорошая
аннотация очень помогает пользователю, потому что экономит его время:
иногда уже по сниппету понятно, что документ нерелевантный, и можно
его даже не открывать. При этом особенно ценятся динамические сниппеты, то есть зависящие от запроса и содержащие слова из него, а не статические, которые создаются один раз для документа и показываются с
любым запросом. Задача генерации сниппетов напоминает задачу аннотирования/реферирования текста (text summarization), но не совпадает с ней
— главным образом потому, что при реферировании получаются статические аннотации, отражающие содержание документа целиком, а не в контексте запроса. Кроме того, судя по литературе, алгоритмы реферирования
не рассчитаны на работу в реальном времени. Проще говоря, они очень
медленные.
Говорят, однажды на одной из конференций некий докладчик сказал:
«Все эти Яндекс и Гугл работают очень тупо, по ключевым словам. А мы
у себя догадались применить семантику». Теперь, прочитав эту главу, каждый сможет сам определиться с перспективами использования серьезной
семантики в информационном поиске. Однозначного ответа на этот вопрос пока нет.
Литература
Среди четырех самых известных современных учебников по информационному поиску на русский язык переведен один — это [Маннинг
и др. 2011]. Остальные три учебника остаются на английском языке:
Baeza-Yates R. A., Ribeiro-Neto B. Modern Information Retrieval. Addison-Wesley
Longman Publishing Co., Inc. Boston, MA, USA, 1999.
Глава 8. Информационный поиск
211
Witten I. H., Moffat A., Bell T. C. Managing gigabytes (2nd ed.): compressing and indexing documents and images. Morgan Kaufmann Publishers Inc. San Francisco, CA,
USA, 1999.
Büttcher. S., Clarke C. L. A., Cormack G. V. Information Retrieval: Implementing and
Evaluating Search Engines. The MIT Press, 2010.
Агеев М., Кураленок И., Некрестьянов И. Официальные метрики РОМИП 2010 //
Российский семинар по Оценке Методов Информационного Поиска. Труды
РОМИП 2010 (Казань, 15 октября 2010 г.). Казань, 2010.
http://romip.ru/romip2010/20_appendix_a_metrics.pdf
Анисимович К. В., Дружкин К. Ю., Зуев К. А., Минлос Ф. Р., Петрова М. А., Селегей В. П. Синтаксический и семантический парсер, основанный на лингвистических технологиях ABBYY Compreno // Компьютерная лингвистика и интеллектуальные технологии: По материалам ежегодной Международной конференции «Диалог» (Бекасово, 30 мая – 3 июня 2012 г.). Вып. 11 (18).
М.: Изд-во РГГУ, 2012.
http://www.dialog-21.ru/digests/dialog2012/materials/pdf/Anisimovich.pdf
Захаров В. П. Информационные системы (документальный поиск): Учебное пособие. СПб.: Изд-во СПбГУ, 2002. http://vp-zakharov.narod.ru/VZAutoDocSearch.zip
Зобнин А. Лингвистика в поиске. Доклад на Малой Школе анализа данных, 18 мая
2013 г. М., 2013. https://events.yandex.ru/lib/talks/894/
Ландо Т. Извлечение объектов и фактов из текстов. Доклад на Малой Школе анализа данных, 23 ноября 2013 г. М., 2013. https://events.yandex.ru/lib/talks/1422/
Леонов Я. Поиск Яндекса: архитектура. Доклад на Малой Школе анализа данных,
16 ноября 2013 г. М., 2013. https://events.yandex.ru/lib/talks/1411/
Лукашевич Н. В. Тезаурусы в задачах информационного поиска. М.: Изд-во МГУ,
2011.
Маннинг К. Д., Рагхаван П., Шютце Х. Введение в информационный поиск. М.:
Вильямс, 2011.
Панина М. Ф., Байтин А. В., Галинская И. Е. Автоматическое исправление опечаток в поисковых запросах без учета контекста // Компьютерная лингвистика и
интеллектуальные технологии: По материалам ежегодной Международной
конференции «Диалог» (Бекасово, 29 мая – 2 июня 2013 г.). Вып. 12 (19). М.:
Изд-во РГГУ, 2013. http://www.dialog21.ru/digests/dialog2013/materials/pdf/PaninaMF.pdf
Расковалов Д. Информационный поиск изнутри. Курс лекций в Computer Science
Club при ПОМИ РАН. СПб., 2012. https://www.lektorium.tv/course/22855
Романенко Ф. Моделируем мир для поисковой системы. Доклад на Малой Школе
анализа данных, 2 ноября 2013 г. М., 2013.
https://events.yandex.ru/lib/talks/1372/
Семенихин А. IBM Watson — компьютерная лингвистика. Доклад на конференции
YaC'2013. М., 2013. https://events.yandex.ru/lib/talks/1137/
Соловьев Е. Тезаурусные расширения в информационном поиске. Доклад на Семинаре по автоматической обработке естественного языка. СПб., 2010.
http://nlpseminar.ru/archive/lecture36/
Brin S., Page L. The anatomy of a large-scale hypertextual web search engine // Proceedings of the International WorldWide Web Conference, 1998. P. 107–117.
212
Часть II. Направления
Gulin A., Karpovich P. Greedy function optimization in learning to rank. Lecture on
RuSSIR 2009. Petrozavodsk, 2009.
http://romip.ru/russir2009/slides/yandex/lecture.pdf
Spärck Jones K., Walker S., Robertson S. E. A probabilistic model of information retrieval: Development and comparative experiments // Information Processing and
Management. Iss. 36(6), 2000. P. 779–808, 809–840.
Электронные ресурсы
Летние школы по информационному поиску RuSSIR проводятся ежегодно с 2007 года, их материалы (слайды и видеозаписи некоторых лекций)
легко находятся вашим любимым поисковиком.
К сожалению, пока существует очень мало обзорных материалов по
информационному поиску в формате видео, особенно по-русски. Тем не
менее, такие материалы есть, и я их в целом рекомендую: [Зобнин 2013],
[Романенко 2013], [Леонов 2013], [Расковалов 2012] (последняя ссылка —
это сложный курс из четырех лекций с множеством технических подробностей).
Значительная часть научных статей по поиску публикуется в материалах ведущих международных конференций: SIGIR, JCDL, TREC, ECIR,
CIKM и др. В России с 2003 года проводится Семинар по оценке методов
информационного поиска (РОМИП). Все его публикации доступны в архиве на сайте http://romip.ru/ru/publications.html. С 2011 года тематика семинара ушла в сторону компьютерной лингвистики (анализ тональности,
анализ речи, машинный перевод).
Глава 9
Извлечение информации
Автор: Екатерина Александровна Филиппова, выпускница 2003
года, инженер-исследователь в компании Google
1. Какую информацию извлекаем?
Тема этой главы — извлечение информации (information
extraction) из текста на естественном языке. В обычной жизни под информацией подразумевается знание любого рода, но в прикладной лингвистике подразумевается, что извлеченные данные касаются одного или нескольких точно определенных именованных сущностей (named entities) и
относятся к одной из заранее определенных категорий. Кроме того, предполагается, что извлеченная информация структурируется, чтобы ее можно было занести в базу данных.
Задачи извлечения информации можно разделить на несколько групп.
Прежде чем познакомиться с некоторыми из них подробно, рассмотрим
несколько примеров, чтобы понять, почему извлечение информации стало
стандартным модулем систем обработки естественного языка.
Время от времени у каждого из нас возникают вопросы, ответа на которые мы не знаем. Вопросы могут быть вызваны как необходимостью
принятия важных решений, так и праздным любопытством:
1. Как снять головную боль?
2. Телефон службы газа в Центральном районе.
3. Сколько обычно стоит ремонт кухни?
4. Что подарить теще на юбилей?
5. Вегетарианские рестораны в Петербурге с неиндийской кухней.
Неудивительно, что создание вопросно-ответных систем, способных
мгновенно выдать верный ответ, является темой активных исследований
как в университетах, так и в коммерческих организациях. Благодаря массовому использованию интернета и мобильных устройств, теперь есть все
необходимые ресурсы, для того чтобы найти необходимую информацию и
ответить на практически любой вопрос. Например, почти на каждый из
приведенных выше вопросов где-то в интернете есть страница, параграф,
214
Часть II. Направления
предложение, дающие однозначный ответ. Тем не менее, поиск такого ответа при помощи современных поисковых систем может занять несколько
минут, в течение которых будут открыты, пролистаны и снова закрыты
несколько сайтов. Особенно очевидно несовершенство существующих
поисковых систем, если вопрос требует краткого ответа длиной в одно
слово или одну фразу:
6. Когда был основан петербургский университет? В 1724 году.
7. Кто хотел купить Скайп? Фейсбук и Майкрософт.
8. Как звали сына Анны Ахматовой? Лев Гумилев.
Как правило, такие ответы находятся в одном предложении и не требуют обработки множества страниц, как (3 и 5), развернутого ответа, как
(1), или дополнительных уточнений, как (4). Что же необходимо, чтобы
ответить на такие простые вопросы? Разумеется, можно преобразовать
вопрос в регулярное выражение и таким образом попробовать найти ответ.
Например, (6) можно преобразовать в петербургский университет был
основан в [0-9]{4} году. Здесь [0-9]{4} означает, что мы ищем ответы из
четырех цифр. Скорее всего, страница с такой последовательностью слов
действительно существует, и ответ будет найден.
Но пользователь может сформулировать вопрос следующим образом:
9. Когда был основан университет в Петербурге?
Последовательность (политехнический) университет в Петербурге
был основан в 1899 году также находится, правда, в единственном экземпляре, и из контекста пользователю, но не алгоритму, было бы понятно, что
речь идет не о СПбГУ, а о Политехническом университете. Поэтому полагаться только на слова из запроса не стоит, чтобы избежать досадных
ошибок.
Как можно сделать программу «умнее», чтобы она «не путала»
СПбГУ с Политехом? Можно разбираться для каждого нового описания, о
том ли объекте идет речь в найденном документе, то есть решать, как соотносятся петербургский университет с университетом в петербурге,
университет в петербурге с политехническим университетом в петербурге, и т. д. Но легче приписать каждому объекту или существу уникальный номер или идентификатор. Тогда запросы (6 и 9) преобразуются в
когда был основан /m/СПбГУ?, а предложения, упомянутые выше, преобразуются в /m/СПбГУ был основан в 1724 году и /m/политех был основан в
1899 году. О распознавании имен собственных, определении их категорий
и приписывании им идентификатора мы поговорим в разделе 2.
Вторая важная категория задач извлечения информации касается определения отношений между сущностями (relation extraction). Вернемся
к примеру (5), где речь идет о вегетарианских ресторанах. Если бы в рас-
Глава 9. Извлечение информации
215
поряжении поисковой системы была огромная база данных, перечисляющая всевозможные организации, то для ответа на вопрос потребовалось
бы выбрать те из них, что соответствуют запрашиваемой категории (ресторан,
вегетарианский)
и
расположены
в
Санкт-Петербурге.
Действительно, расположен-в является распространенным отношением,
связывающим организации с их местоположением, оно автоматически
распознается многими системами. Как и с распознаванием имен собственных, за отношением закреплен не единственный выражающий его шаблон, но набор синонимичных выражений. Так, расположен-в могут соответствовать такие фрагменты контекста, как … находится в …, … был
построен … или даже просто … в … К примерам других часто извлекаемых отношений между двумя сущностями относятся является-частью,
основан-в, в-браке-с, является-владельцем, работал-в. В разделе 3 мы разберем основные подходы к извлечению этих и других отношений автоматически, а также обсудим такой важный атрибут отношений, как временные границы, в которых они имели место.
Несмотря на простоту в обращении с бинарными отношениями, зачастую удобнее говорить о сложном событии целиком, как в следующем
примере:
10. Яндекс купил Кинопоиск за $80 миллионов в октябре
2013 года.
В такое событие (event), как приобретение в собственность, обычно
вовлечены две сущности, продавец и покупатель, а также дата и сумма, за
которую была совершена сделка. Каждое событие имеет фиксированный
набор ролей, которые могут быть заданы как на самом общем уровне (организация, человек, место), так и иметь более подробную характеристику
(покупатель, IT-компания).
В зависимости от события набор участников и ролей может отличаться, хотя, как правило, события имеют временной и географический атрибут. Так же как с отношениями, каждому событию соответствует целый
набор синонимичных шаблонов. Так, (10) можно выразить как Осенью
Кинопоиск был приобретен Яндексом за сумму в $80 миллионов или Яндекс стал владельцем Кинопоиска в октябре 2013 года, заплатив $80 миллионов. В разделе 4 мы поговорим подробнее о том, как строятся модели
событий, то есть, как находить такие шаблоны и группировать их в соответствии с выражаемыми ими значениями.
В завершении статьи, в разделе 5, мы приведем рекомендации для заинтересованных читателей, желающих самостоятельно отслеживать исследования в этой области.
216
Часть II. Направления
2. Распознавание сущностей
2.1. Какие сущности извлекаем
Начнем с определения: под именованной сущностью (named entity)
мы будем понимать что-либо реально существующее или вымышленное,
на что можно указать или к чему можно обратиться при помощи имени
собственного. В соответствии с этим определением в задачу распознавания именованных сущностей входит не только (1) нахождение в тексте их
упоминаний, но и (2) однозначное указание на подразумеваемый объект
или лицо, а также (3) приписывание ему категории. Как правило, используется очень простая классификация, включающая в себя всего лишь три
категории: ЧЕЛОВЕК, МЕСТО, ОРГАНИЗАЦИЯ. Аналогично терминологии, принятой в англоязычной литературе, мы будем использовать сокращения ПЕР (от персона), ЛОК (от локация) и ОРГ. Разумеется, такая классификация является довольно грубой, поскольку легко представить себе
задачи, где важно различать между подтипами: идет ли речь о компании
или стране, об актере или политике, и т. п. В англоязычной литературе
грубая классификация часто называется coarse-grained, она противопоставляется более точным классификациям (fine-grained classification). Тем
не менее, простая схема универсальна и является удобным компромиссом,
тогда как определить более подробную схему, удовлетворительную для
разных текстовых жанров, гораздо сложнее.
Хотя ни время, ни числа не соответствуют данному выше определению, они часто размечаются алгоритмами распознавания именованных
сущностей (далее РИС) наряду с ПЕР, ЛОК, ОРГ. Для них мы будем использовать теги ТЕМП (темпоральные выражения — temporal expressions)
и НУМ (нумерические выражения — numeric expressions). Заметим, что, в
отличие от трех других категорий, распознавание как чисел, так и времени
представляется значительно более простой задачей, поскольку существует
ограниченный набор способов их выразить.
В табл. 1 приведены различные именованные сущности и соответствующие им категории, содержащиеся в примере (11), который взят из Википедии:
11. Современный [СПбГУ] в [России] — преемник [Академического университета], который был учреждён одновременно с [Академией наук] указом [Петра I] от [28 января 1724 года] (в частности, в [1758—1765] годах ректором [Академического университета]
был [М. В. Ломоносов]).
Глава 9. Извлечение информации
217
Таблица 1. Именованные сущности, упомянутые в примере (11), и соответствующие
им категории
Название (имя)
Возможные категории
организация, образовательное учреждение, вуз
СПбГУ
Академический университет организация, образовательное учреждение, вуз
Академия наук
организация, научная организация, академия
Россия
место, страна, государство
Петр I
М. В. Ломоносов
человек, исторический деятель, политик, правитель
человек, ученый, химик, писатель, философ,
художник
28 января 1724 года
1758–1765
время (дата)
время (временной отрезок)
Приведенный пример иллюстрирует некоторые сложности автоматического РИС, о которых и пойдет речь ниже.
2.2. Зависимость категории от контекста
Как видно из неполного списка в табл. 1, помимо очевидного человека, М. В. Ломоносову можно приписать различные другие категории, соответствующие его многогранной личности. Заметим, что речь идет не о
более подробной детализации, как в случае с СПбГУ (от организации к
учебному заведению и дальше к вузу), а о категориях одного порядка. Тем
не менее, тот факт, что Ломоносов был в том числе и художником, в контексте примера не имеет такого большого значения, как то, что Ломоносов
был видным ученым своего времени.
Можно сказать, что из категорий одного порядка (например, профессий) в конкретном контексте, как правило (но не всегда), имеет значение
только одна из возможных категорий, и ее выбор часто не является самоочевидным.
Более того, подобная проблема может возникнуть и с семантически
несхожими категориями. Так, в примере (11) Россия, очевидно, является
географическим объектом, местом, чего нельзя сказать о следующем примере из издания Утро.Ru:
12. Россия отказалась от американского мяса. Россельхознадзор
вводит временные ограничения на поставки продукции птицеводства
США в Россию.
Географические объекты не могут от чего-либо отказываться, и во
втором предложении примера, которое развивает тему, заданную первым,
речь уже идет об организации (Россельхознадзор). Для России во втором
примере более подходящей категорией будет, скорее, СТРАНА.
218
Часть II. Направления
Таким образом, выбор подходящей категории не обязательно следует
из именованной сущности и не может быть просто считан из базы данных,
но очень часто определяется контекстом, в котором она была упомянута.
2.3. Неоднозначность идентификации
Услышав пример (11), вряд ли кто-либо переспросит, какой Петр I
или который М. В. Ломоносов имеется в виду. В случае Петра I, вероятно,
нет и не будет ни одного другого известного человека, так называемого.
Русская версия Википедии приводит список из шести ломоносовых, но
только один из них имеет инициалы М. В. Совершенно иначе воспринимается имя Толстой в следующем отрывке из «Театрального романа».
М. А. Булгакова:
13. В час ночи мы выпили чаю, а в два Рудольфи дочитал последнюю страницу. Я заерзал на диване.
— Так, — сказал Рудольфи.
Помолчали.
— Толстому подражаете, — сказал Рудольфи.
Я рассердился.
— Кому именно из Толстых? — спросил я. — Их было много…
Алексею ли Константиновичу, известному писателю, Петру ли Андреевичу, поймавшему за границей царевича Алексея, нумизмату ли
Ивану Ивановичу или Льву Николаичу?
В этом примере нельзя однозначно сказать, которая из известных исторических личностей имеется в виду, хотя с большой долей вероятности
можно предположить, что речь идет о последнем из перечисленных в отрывке. В отличие от этого примера, в абсолютном большинстве случаев
неоднозначность не предполагается автором, и идентификация референта
редко вызывает трудности у собеседников, но для автоматических систем
однозначное распознавание остается далеко не простой задачей. Главным
образом из-за того, что у значительного числа имен собственных есть несколько возможных референтов.
2.4. Концептуальные сложности
В некоторых случаях возникает вопрос о том, нужно ли провести границу между двумя сущностями или можно их считать единым объектом.
Возвращаясь к примеру (11), посмотрим на Академический университет и
СПбГУ. Из текста следует, что один является преемником другого и что
именно это дает основания говорить о том, что дата основания СПбГУ —
1724 год. С другой стороны, признавая, что СПбГУ и Академический уни-
Глава 9. Извлечение информации
219
верситет — одно и то же заведение, мы как бы лишаем текст смысла, потому что утверждение СПбГУ является преемником СПбГУ не несет в
себе никакой информации. Получается, что в этом контексте имеет смысл
приписать этим двум заведениям разные идентификационные номера, но в
других контекстах, напротив, нужно считать, что речь идет об одном и том
же заведении.
Можно сказать, что подобные сложности возникают, когда нарушается исходное положение о том, что сущности являются инвариантами, то
есть, что они не подвержены изменениям во времени. Особенно очевидна
неоправданность этого допущения, когда речь идет, например, о странах,
чьи границы неминуемо изменяются на протяжении их существования. К
счастью, для решения прикладных задач редко требуется обрабатывать
тексты, создаваемые столетиями, и такие «философские» сложности вряд
ли можно отнести к основным проблемам извлечения информации. Тем не
менее, важно отдавать себе отчет, что используемые схемы и классификации условны и неминуемо содержат в себе неточности и ошибки.
2.5. Разрешение анафоры и кореферентности
Задача, близко связанная с РИС, касается автоматического разрешения анафоры и кореферентности (anaphora and coreference resolution).
Если до этого мы исходили из того, что нам нужно понять, кто или что
является референтом имен собственных, то в данном случае нас интересуют все другие возможные способы указать на именованную сущность,
будь то местоимение или именная группа:
14. Грамоте обучил [Михайла Ломоносова] [дьячок местной
Дмитровской церкви С. Н. Сабельников]. «Вратами учёности», по
[его] собственному выражению, для [него] делаются «Грамматика»
[Мелетия Смотрицкого], «Арифметика» [Л. Ф. Магницкого], «Стихотворная Псалтырь» [Симеона Полоцкого]. В четырнадцать лет
[юный помор] грамотно и чётко писал.
Если не считать названия текстов, в примере (14), взятом из Википедии, упомянуто пять имен. Кроме этого, в нем использованы два местоимения (его, него) и именная группа юный помор, которые все относятся к
М. В. Ломоносову. Зная, что отрывок извлечен из биографической статьи
о Ломоносове, а также учитывая сравнительную редкость катафоры в русском языке, мы без труда понимаем, что и местоимения, и юный помор
могут относиться только к Ломоносову. Подобного рода информация может быть использована и при создании автоматических систем, о чем мы
поговорим в разделе 2.7.
220
Часть II. Направления
2.6. Установление референта
С появлением обширных репозиториев (repository), включающих в
себя многие миллионы именованных сущностей, задача нахождения кореферентных цепей (coreference chains) трасформировалась в задачу установления внетекстового идентификатора (entity linking). Если в первом случае в задачу алгоритма входило приписать каждому референту
индекс внутри документа, то во втором ему приписывается идентификатор, не привязанный к какому-либо тексту, а связанный с определенным
репозиторием, например Википедией или Freebase (см. табл. 2, составленную для примера (14)).
Таблица 2. Кореферентные цепи из примера (14) и соответствующие им
идентификаторы
Индекс
внутри
документа
Ломоносов, его, него, юный помор
1
Сабельников
2
Смотрицкий
3
Магницкий
4
Полоцкий
5
Кореферентная цепь
Индекс в репозитории
/m/mvlomonosov
/m/snsabelnikov
/m/msmotrickiy
/m/lfmagnickiy
/m/spolockiy
2.7. Автоматические подходы
Познакомившись с задачей РИС и родственными ей проблемами, перейдем к краткому обзору методов их автоматического решения.
Как правило, системы автоматической обработки языка построены по
принципу конвейера: все начинается с разбивки текста на слова и предложения, далее следует частеречная разметка и определение границ фраз,
после чего делается синтаксический анализ и РИС. Поэтому перед тем как
обратиться к примерам возможного решения задачи, которой посвящена
эта статья, мы положим, что в тексте нам уже даны как имена собственные, так и все другие именные группы. Таким образом, наша задача состоит в том, чтобы приписать уже найденным именным группам их категории и установить их референтов в тех случаях, где это возможно и имеет
смысл.
Также мы, как и многие другие исследователи, будем исходить из того, что в нашем распоряжении имеется обширный каталог именованных
сущностей. Учитывая размер и постоянный рост Википедии и других ресурсов (Freebase, Wikidata), наше предположение совершенно реалистич-
Глава 9. Извлечение информации
221
но. Разумеется, ни один ресурс не является исчерпывающим, и об этом мы
поговорим в конце раздела.
Как и в случае многих других модулей обработки текста, распространенным подходом является обучение статистических моделей на размеченных текстах. Подобно частеречной разметке, многие подходы используют варианты моделей марковских цепей, условных случайных полей
или просто классификаторы. Многие модели позволяют нам использовать
большое количество разнообразных сигналов, помогающих ответить на
интересующие нас вопросы:
Имеет ли данная именная группа своим референтом некую именованную
сущность?
• Какая категория из списка лучше всего соответствует именной группе
в данном контексте?
• Кто или что является референтом данной именной группы?
Хотя во всех примерах, которые мы рассмотрели до сих пор, у имен
собственных имелся референт, можно найти примеры, где это не так, как в
следующем предложении, где вряд ли имеется в виду столица Франции:
15. Дмитрий Рогозин: «Генералы в окопах должны быть, а не в
парижах».
Эффективность сигналов для систем машинного обучения зависит от
языка и жанра текста. Так, во многих языках важным признаком именованных сущностей является их написание с заглавной буквы. Однако, например, в немецком языке, где все существительные пишутся с заглавной
буквы, и в текстах, полученных при автоматическом распознавании речи,
этот сигнал оказывается гораздо менее полезным. Важным сигналом является также наличие леммы слова в списке известных именованных сущностей. Для слов и именных групп, отсутствующих в списке, решение о
том, идет ли речь об именованной сущности и, если да, то какого типа,
принимается на основе рассмотрения ближайшего контекста. Например,
слова Mrs. в английском, Frau в немецком или г-жа в русском с большой
долей вероятности сигнализируют о том, что за ними следует имя человека.
Как было сказано в разделе 2.6, задача разрешения анафоры и нахождение цепей кореферентных элементов тесно связана с РИС. Построение
кореферентных цепей можно свести к проблеме классификации, где мы
двигаемся от начала текста и при рассмотрении каждой новой именной
группы оцениваем вероятности, с которыми она может относиться к каждой из уже начатых цепей, либо может начать новую цепь. Подобные
классификаторы обучаются предсказывать вероятности, тренируясь на
множестве размеченных текстов, используя всевозможные сигналы.
222
Часть II. Направления
Снова обращаясь к примеру (14), мы начинаем с первой именной
группы Михайло Ломоносов и создаем первую кореферентную цепь с
единственным пока элементом. Следующая именная группа — дьячок
местной Дмитровской церкви С. Н. Сабельников. Используя такие сигналы, как леммы слов, путь от этой группы в синтаксическом дереве к элементу единственной созданной цепи, мы, вероятно, получим крайне низкую вероятность того, что рассматриваемая нами именная группа относится к уже существующей цепи, и примем решение начать новую цепь.
Следующий кандидат для пополнения кореферентных цепей — местоимение его. Вероятность того, что местоимение начинает новую цепь
крайне мала. Если учесть, что местоимение согласуется в роде с любой из
двух существующих цепей, важным сигналом становится то, что текст
посвящен Ломоносову, а не Сабельникову, и в результате натренированный на размеченных текстах классификатор выдаст более высокую вероятность принадлежности местоимения к первой из двух цепей. Тот факт,
что одна из цепей, а именно цепь, соответствующая Ломоносову, становится все более весомой по мере того, как мы продвигаемся от начала текста, делает еще более вероятным ее дальнейшее пополнение. Другими
словами, важным сигналом для классификатора, обученного оценивать
вероятность принадлежности именной группы к той или иной цепи, является не только априорная вероятность каждой из групп, но и набираемый
ею вес.
2.8. Использование экстратекстуальных сигналов
В литературе по разрешению кореферентности неоднократно говорилось о том, что эта задача требует так называемых «знаний о мире»
(world knowledge), в подтверждение чего приводились такие примеры как
(2.6–2.7).
16. Аня подарила Маше конфеты, потому что у нее был день
рождения.
17. Аня подарила Маше конфеты, потому что у нее было две коробки.
Эти два предложения очень похожи, их синтаксические структуры
мало отличаются. Только благодаря нашему знанию о том, что на день
рождения принято дарить подарки, в том числе конфеты, мы без колебаний относим местоимение нее из первого примера к Маше (если где-то
существует обычай дарить конфеты в свой день рождения, то представитель той культуры решит, что нее относится к Ане). Также для большинства будет естественным представить себе ситуацию, где кто-то дарит лишнюю коробку конфет, поэтому во втором примере логично предположить,
Глава 9. Извлечение информации
223
что нее относится к Ане. Кодирование такого рода знаний при помощи
сигналов, которые могли бы использовать системы машинного обучения,
является трудной задачей. Тем не менее, знания о мире могут быть успешно использованы в системах разрешения кореферентности и нахождения
идентификатора. В завершении этого раздела рассмотрим еще два связанных с этой темой примера.
18. По мнению многих туристов, [Эрмитаж] и [Мариинский театр] стали достопримечательностями, поразившими их больше всего. На обзор коллекций [знаменитого музея] туристы тратят в
среднем три часа.
Представим себе, что, двигаясь по тексту, мы подошли к именной
группе знаменитый музей, и теперь должны решить, к какой кореферентной цепи ее отнести. Для нас очевидно, что под музеем подразумевается
Эрмитаж, но такое же знание можно косвенно передать автоматической
системе. Например, в качестве сигнала мы можем использовать меру похожести между знаменитым музеем и существующими цепями: Эрмитаж
и Мариинский театр. В свою очередь сходство или семантическая близость может быть измерена автоматически как при помощи методов распределительного сходства (distributional similarity), так и с помощью обширных ресурсов, например, энциклопедий. Например, можно посчитать
количество «шагов» по категориям Википедии, которые нужно совершить,
чтобы попасть со страниц, посвященных Эрмитажу и Мариинскому театру, на страницу о музеях. Или можно посмотреть на количество общих
ссылок или слов между статьями о музеях и Эрмитаже, с одной стороны, и
музеях и Мариинском театре, с другой. Измеренная одним из этих способов степень сходства в случае Эрмитажа окажется выше, что в свою очередь окажется полезным сигналом для алгоритма поиска референтов.
Наконец, знания о мире становятся чрезвычайно важны для нахождения идентификаторов. Например, в предложениях (2.9–2.11) речь идет о
Евгении Онегине, хотя очевидно, что в одном случае имеется в виду роман, во втором — герой, а в третьем — опера.
19. «Евгений Онегин» стал одним из самых значительных произведений Пушкина.
20. Евгений Онегин — молодой дворянин, отправляющийся в начале романа к умирающему дяде.
21. «Евгений Онегин» состоит из трех действий и семи картин.
Если представить себе, что в имеющемся в нашем распоряжении репозитории Евгений Онегин может иметь три идентификатора (/m/EOkniga, /m/EO-geroj, /m/EO-opera), то для правильного выбора одного из
224
Часть II. Направления
них достаточно рассмотреть контекст и оценить тематическое соответствие между текстом и идентификатором. Например, если мы обратимся к
статье об опере «Евгений Онегин» в Википедии или Freebase, то найдем в
ней такие слова, как опера, Чайковский, либретто, действие и другие.
Напротив, в статьях о романе находятся такие слова, как роман, Пушкин,
литература. Сравнивая контекст словоупотребления с текстами статей,
мы, вероятно, придем к выводу, что каждому из указанных примеров соответствует свой идентификатор.
3. Извлечение отношений
3.1. Какие отношения извлекаем
Рассмотрим теперь задачу извлечения отношений, которые возникают
между двумя именованными сущностями.
Вряд ли кому-нибудь удастся составить исчерпывающий список всех
возможных отношений, но можно определить те отношения, которые могут оказаться нужными для конкретной практической задачи. Например,
если нашей целью является отслеживание финансового рынка и составление прогнозов о курсах акций, то к числу важных отношений стоит отнести изменение генерального директора компании, выпуск нового продукта, покупка одной компанией другой, увольнение большого числа сотрудников или открытие нового офиса. Каждое из перечисленных отношений
может быть выражено разными способами:
• пер стал директором орг, орг выбрала пер своим новым управляющим;
• орг объявила о выпуске новой модели прод, прод будет выпускаться
орг
• с января;
• орг приобрела орг за нум рублей, орг была приобретена орг;
• орг уволила нум сотрудников, нум работников орг остались без работы;
• орг открывает новый офис в лок, лок станет вторым по размерам центром исследований орг.
Извлечение отношений обычно предполагает, что в тексте уже размечены именованные сущности и указана их категория, причем речь идет не
только об именах собственных, но и о местоимениях и других именных
группах. Если кроме этого каждая из них привязана к идентификатору в
базе данных, то извлеченное отношение может быть занесено туда же,
Глава 9. Извлечение информации
225
чтобы связать два идентификатора (человека и компанию, две компании,
компанию и город).
3.2. Обучение моделей на размеченных текстах
Как можно создать систему, автоматически распознающую и извлекающую интересующие нас отношения? Если в нашем распоряжении есть
множество размеченных текстов того же жанра, что и документы, с которыми нам предстоит работать, то вопрос сводится к тому, какой метод
машинного обучения и какие сигналы наилучшим образом подойдут для
наших данных. Например, мы можем использовать стандартный классификатор, который натренирован, чтобы определять, выражает ли предложение какое-либо отношение между двумя указанными сущностями. При
утвердительном ответе на первый вопрос он может указать на наиболее
вероятное отношение из интересующего нас списка.
Заметим, что в поисках ответа мы формулируем вопросы не столько
по отношению к предложению, сколько по отношению к паре упомянутых
в нем сущностей (например, двух компаний). Таким образом, все пары из
размеченного корпуса, которые упоминаются в одном предложении и, как
следует из разметки, находятся в каком-либо отношении, представляют
собой «положительные» примеры для обучения. Те же пары, которые также упоминаются в одном предложении, но не состоят ни в каком отношении становятся «отрицательными» примерами.
Рассмотрим следующее предложение:
22. В прошлом году [Яндекс]
[Майкрософт] купил [Скайп].
приобрел
[Кинопоиск],
а
Пары (Яндекс, Кинопоиск) и (Майкрософт, Скайп) образуют положительные примеры, тогда как (Яндекс, Майкрософт) или (Яндекс, Скайп)
становятся примерами отрицательными. В качестве сигналов для обучения имеет смысл использовать категории упомянутых сущностей (например, ОРГ и ПЕР), леммы главных слов в задействованных именных группах (например, скайп и яндекс), леммы слов на пути от одной сущности к
другой в синтаксическом дереве (например, купить), расстояние между
ними как в синтаксическом дереве, так и в предложении, расположение
других сущностей между ними (да или нет), а также леммы слов, предшествующих или следующих за рассматриваемой нами конструкцией (это
может быть, например, слово конкурент перед упоминанием первой компании). Кроме этого, мы можем заранее извлечь и упорядочить часто
встречающиеся конструкции и в качестве сигнала указывать их порядковый номер.
226
Часть II. Направления
Как видно, сигналы совсем не обязательно должны иметь четкое толкование для создателей системы. Зачастую проще «покидать» всевозможные сигналы в обучающуюся модель и предоставить ей самой отсеивать
те, что не имеют практической ценности. Одна из причин, по которой такой подход предпочтительней, связана с несовершенством модулей автоматической обработки, на которые мы полагаемся при извлечении отношений. Например, синтаксический парсер может последовательно приписывать сложным для него конструкциям определенный разбор, который, в
свою очередь, будет сигналом для классификатора отношений, что парсер
«не уверен» и что из данного предложения лучше ничего не извлекать.
Полезными сигналами могут оказаться вероятности, с которыми
предшествующие, вспомогательные модули размечали текст. Например,
модуль РИС разметил одну из именных групп, первую в возможном отношении, приписав ей категорию компания с вероятностью 0.2. Кроме сигнала первый-актант: компания, мы можем добавить еще один, p(первыйактант = компания): 0.2. Он подскажет классификатору отношений, что у
нас нет особой уверенности в том, что первый участник отношения —
компания.
3.3. Полуавтоматическое создание размеченного
корпуса
К сожалению, чтобы натренировать точную систему, распознающую
интересующие нас отношения в нужном жанре, мы редко можем воспользоваться уже существующим размеченным корпусом текстов. Поэтому в
области извлечения отношений очень популярны методы, где изначально
не существует никакой разметки и где отношения угадываются в тексте
благодаря тем знаниям, которые заранее занесены в нашу базу данных.
Идея полуавтоматического создания размеченного корпуса привлекательна своей простотой. Допустим, в нашей базе данных уже содержится
информация о том, что Аркадий Волож — генеральный директор компании Яндекс, но про большинство других компаний такой информации у
нас нет, как нет у нас и размеченного корпуса новостей, на котором мы
могли бы натренировать систему распознавания этого интересующего нас
отношения. Вместо того чтобы тратить усилия на ручную разметку собранных новостей, мы собираем все предложения, где упоминаются Волож
и Яндекс, и делаем серьезное допущение, заключающееся в том, что все
эти предложения выражают именно это отношение. Если ограничить поиск только сайтами новостей, то мы можем найти следующие фрагменты
предложений:
Глава 9. Извлечение информации
227
23. …генеральный директор ООО «Яндекс» Аркадий Волож с 1
сентября …
…компания «Яндекс», которую в 2000 году основал Аркадий Волож …
…Аркадий Волож рассказывал о пробах «Яндекса» на этом поле …
Руководитель группы компаний «Яндекс» Аркадий Волож поддержал …
…генеральный директор группы «Яндекс» Аркадий Волож рассказывал в…
Как видно из этих примеров, наше допущение не лишено смысла, но
и не гарантирует качества, сходного с разметкой, выполненной вручную.
Разумеется, если мы остановимся на этом варианте, то использование некоторых сигналов, например, лемм именованных сущностей, станет проблематичным. Так, алгоритм может решить, что использование слов Яндекс или Волож обязательно сигнализирует интересующие нас отношение. Кроме того, в нашем корпусе отсутствуют отрицательные примеры,
что делает обучение стандартных методов малопродуктивным.
Для дальнейшего наращивания корпуса мы можем использовать обнаруженные шаблоны, чтобы найти новые пары сущностей, которые с
высокой долей вероятности находятся в том же отношении, что Яндекс и
Волож. Например, используя шаблон генеральный директор ОРГ ПЕР с
ТЕМП, мы можем найти пару (Озон, Д. Перекальски), которая, в свою очередь, может пополнить наш размеченный корпус новыми предложениями.
Сделав еще одно допущение, что один и тот же человек редко оказывается
управляющим нескольких компаний, мы можем набрать отрицательные
примеры, собрав предложения, где упоминаются Яндекс и Перекальски.
При таком постепенном наращивании размеченного корпуса количество ошибок может быстро увеличиваться, поэтому некоторая ручная работа может понадобиться, чтобы избавиться от них хотя бы частично.
Скорость, с которой корпус накапливает в себе ошибочные примеры, зависит как от самого отношения, так и от количества исходных пар, с которых мы начали его создание. Кроме этого, при создании отрицательных
примеров нужно учитывать неполноту баз данных: то, что в нашей базе не
содержится какая-то информация, не исключает ее истинности. Несмотря
на неизбежные ошибки метода, его «дешевизна» и простота исполнения
зачастую перевешивает недостатки.
228
Часть II. Направления
3.4. Временное измерение
Говоря об извлечении отношений, мы не можем обойти стороной вопрос временных рамок. Хотя существуют отношения, не подверженные
изменениям (например, рождение в каком-либо месте), многие отношения, в том числе те, что мы только что рассмотрели, могут изменяться
произвольное количество раз и с практически любой частотой. Поэтому,
как правило, важно уметь приписывать извлеченным отношениям временные рамки, внутри которых это отношение имело место. Простых и надежных способов определения таких рамок из текста не существует, поэтому одним из способов извлечения временной информации становится
использование даты публикации документа. Например, если в нашем распоряжении есть архив новостей за продолжительное время, то мы можем
извлечь из него информацию о том, что до сентября 2014 года генеральным директором Яндекса был Аркадий Волож. Новости 1 сентября 2014
года последующих дней будут указывать на то, что директором компании
стал другой человек, Александр Шульгин.
4. Извлечение событий
В этом разделе мы уберем ограничение на число задействованных
именованных сущностей и обратимся к автоматическому извлечению событий. Событие мы определим как минимальное описание ситуации или
изменения в положении вещей, отвечающее на основные вопросы о том,
что произошло, кто это сделал, когда, где и почему. Большая часть литературы на эту тему использует стандартный размеченный корпус текстов
политически-военной тематики и касается распознавания ограниченного
числа событий: восьми основных категорий и 33 подтипов. Как и при извлечении отношений, многие системы разбивают задачу на два этапа.
Сперва принимается решение, выражает ли рассматриваемое слово суть
события (event triggering word). Затем, в случае утвердительного ответа,
находятся участники события и устанавливаются их роли. Как и с другими
рассмотренными нами задачами, сложность состоит в поиске надежных
сигналов и эффективного алгоритма.
Очевидно, набор из 33 событий является далеко не полным, а составление исчерпывающего списка вручную представляет собой трудоемкую
задачу. Поэтому вместо того, чтобы обсуждать достоинства и недостатки
систем, распознающих события из этого короткого списка, данный раздел
мы посвятим методам, позволяющим автоматически создавать модели
событий гораздо большего размера. Под моделью событий мы будем понимать совокупность шаблонов, сгруппированных в соответствии с выра-
Глава 9. Извлечение информации
229
жаемыми ими событиями. Так, в табл. 3 приведены примеры шаблонов,
выражающих бракосочетание и приобретение одной компанией другой.
Таблица 3. Примеры шаблонов, выражающих события бракосочетания и
приобретения одной компании другой компанией
Бракосочетание
ПЕР и ПЕР поженились в ТЕМП
ТЕМП стало датой свадьбы ПЕР и ПЕР
ПЕР стала женой ПЕР ТЕМП
ПЕР назвал ПЕР своей супругой перед алтарем в ЛОК
Приобретение компании
ОРГ приобрела контрольный пакет ОРГ
ОРГ стала частью ОРГ ТЕМП
ОРГ и ОРГ принадлежат одному холдингу
владелицей ОРГ начиная с ТЕМП будет ОРГ
События, как правило, описываются предикатом и его актантами, хотя они могут выражаться и отглагольными существительными.
Первым шагом к построению модели событий является вычленение
из предложения смыслового ядра — минимальной его части, выражающей
необходимую информацию, которая потом послужит нам шаблоном. Хотя
во многих случаях эта задача может быть решена при помощи очень простых правил, составить алгоритм для общего случая вряд ли представляется возможным. Рассмотрим несколько примеров.
24. К прискорбию родных и друзей, г-н Иванов скончался у себя
дома на 50-м году жизни.
25. Сообщается, что г-н Иванов трагически ушел из жизни вчера вечером, 13 февраля, окруженный домочадцами.
Оба приведенных предложения описывают смерть (ПЕР скончался,
ПЕР ушел из жизни), но также содержат взаимодополняющие детали (на
НУМ году жизни, ТЕМП). Если центральное содержание предложения
(24) можно извлечь при помощи правила извлечь глагол с подлежащим и
прямым дополнением, то в случае (25) мы бы получили неполный предикат с совершенно другим значением: ПЕР ушел. Автоматическим системам крайне сложно уловить разницу между, например, ушел из дома и
ушел из жизни (в первом случае предложная группа является адъюнктом,
а во втором — частью предиката), поэтому правил, сформулированным в
терминах глагола и его актантов, будет недостаточно. Кроме того, неясно,
как можно было бы сформулировать подобные правила в отношении важ-
230
Часть II. Направления
ных с семантической, но второстепенных с синтаксической точек зрения
частей предложения. В примерах выше из шаблонов можно опустить сведения о том, что человек скончался трагически или к прискорбию родных,
тогда как возраст на момент смерти и точная дата несут нужную информацию.
Предположим, что задача вычленения сути предложения, то есть, задача создания шаблонов, нами решена. Любое предложение, в котором
упоминаются именованные сущности, числа или даты, может быть преобразовано в минимальную грамматически правильную конструкцию, описывающую событие с его основными участниками. Вместо конкретных
имен и дат мы используем семантические категории, уже размеченные в
тексте (ПЕР, ЛОК, ОРГ, ТЕМП, НУМ). Более того, шаблон сохраняет соответствующую ему синтаксическую структуру предложения (Рис. 1),
чтобы его можно было обнаружить в предложениях с отличающимся порядком слов (26) и чтобы его не находили там, где не следует (27). Второй,
но не первый из этих примеров, содержит в нужном порядке необходимые
слова (ушел, из, жизни) и участников (ПЕР, ТЕМР), но временное обстоятельство (1-го декабря) относится не к событию, которое мы хотим извлечь, а к глаголу рассказали.
Рис. 1. Часть синтаксического дерева, соответствующая шаблону, извлеченному из
(25)
26. В начале ноября ушел из жизни Сидоров.
27. О том, как Сидоров ушел из жизни, мне рассказали 1-го декабря.
Сами по себе шаблоны не могут сообщить системе автоматического
извлечения информации о том, какое событие за ними скрывается и какие
шаблоны описывают одно и то же событие, а какие — разные. Научиться
группировать шаблоны мы можем, например, используя процедуру, сходную той, о которой говорилось в предыдущем разделе. Имея базу данных,
где для некоторых людей указана дата их смерти, мы можем найти все
предложения, где упоминается человек из списка вместе в соответствующей ему датой. Но этот подход, помимо проблем, описанных ранее, имеет
Глава 9. Извлечение информации
231
еще один недостаток: весь список типов событий будет исчерпываться
тем, что уже есть в базе данных. Например, если в ней содержится только
информация о рождении и смерти, но не о датах заключения брака, то мы
никогда не сможем собрать шаблоны, их описывающие.
Одним из способов существенно расширить список событий является
метод, использующий избыточность информации. Суть этого метода заключается в том, что новости об одних и тех же участниках, появившиеся
в один день, с большой долей вероятности повествуют об одном и том же
событии. Например, новости, опубликованные 14 февраля, где речь идет
об одном и том же Иванове, скорее всего, сообщают об одном и том же
событии (в данном случае: его смерти). Сгруппировав шаблоны по дате
публикации и совокупности их участников, мы можем использовать статистические методы для создания глобальной модели событий. Не вдаваясь в подробности этих методов, заметим, что если в один день из новостей об Иванове мы собрали шаблоны ПЕР скончался и ПЕР ушел из жизни, а в какой-либо другой день в отношении другого человека (Сидорова)
мы сгруппировали ПЕР скончался, ПЕР умер и ПЕР погиб, то в глобальной модели все эти шаблоны могут оказаться в одной группе. Кроме того,
шаблоны, занесенные по ошибке (ПЕР был уважаем коллегами), будут
отсеяны или отнесены к соответствующей им группе.
Модели событий, построенные без вовлечения лингвистов, но использующие идеи избыточности информации, в том числе взятой из новостей, весьма популярны. Они описывают тысячи разнообразных событий.
К их явным недостаткам можно отнести то, что при поиске шаблона в новых документах игнорируется контекст, который может изменить значение шаблона. Для распознавания явного отрицания можно сформулировать простые правила, но сложно составить исчерпывающий список таких
слов, как почти, которые существенно дополняют или даже меняют смысл
предиката. Кроме того, предикат может быть использован в метафорическом смысле или находиться в конструкции, напрямую его отрицающей
(Это ложь, что Иванов скончался в возрасте 50 лет). Поэтому такие модели должны быть либо дополнены модулями распознавания смысла контекста, либо они должны использоваться в качестве сигналов в системах,
способных обрабатывать разные источники информации в совокупности.
Простейшая такая система решала бы, что событие действительно имело
место, если ей удалось найти значительное число подтверждений, пропорциональное популярности человека или организации. Например, чтобы быть уверенным в смерти известного лица, нужно найти указания на
это в новостях при помощи по меньшей мере пяти разных соответствующих этому событию шаблонов не менее чем в десяти источниках.
232
Часть II. Направления
5. Для тех, кто хочет попробовать сам
РИС входит в стандартный набор модулей автоматической обработки
языка: GATE, LingPipe, NLTK, OpenNLP, Stanford CoreNLP и др. Для экспериментов с такими методами машинного обучения как марковские цепи
[Bikel et al. 1997] и условные случайные поля [McCallum & Li 2003], можно использовать, например, систему Mallet. Интерес к исследованиям в
области извлечения информации сначала поддерживался регулярно проводимыми соревнованиями при MUC [Grishman & Sundheim 1996]. Правда, при использовании размеченных ими текстов нельзя не заметить узкой
военно-политической направленности заданий. Преемницей MUC стала
программа ACE, где типовыми задачами стали РИС, разрешение анафоры
и кореферентности, извлечение отношений и временных атрибутов и рамок. Кроме этого, конкурс по РИС в разных языках проводился дважды
при CoNLL в 2002 и 2003 годах [Tjong Kim Sang 2002; Tjong Kim Sang &
De Meulder 2003]. Для тренировки систем, способных размечать временные рамки, часто используется ресурс TimeBank, размеченный в соответствии с правилами TimeML.
С идеями использования семантического сходства для нахождения
идентификаторов именованных сущностей можно познакомиться поближе
через статьи [Ponzetto & Strube 2006, Gabrilovich & Markovitch 2007, Milne
& Witten 2008]. Сравнение методов измерения распределительного сходства проводится в [Baroni et al. 2014]. Литература по разрешению анафоры
и кореферентности чрезвычайно обширна, поэтому для более близкого
знакомства с этой темой мы рекомендуем просмотреть статьи участников
последних соревнований.
Один из методов создания размеченных текстов автоматически был
представлен в работе [Mintz et al. 2009]. О проблеме неполноты баз данных и вызванных ею ошибках при создании размеченного корпуса говорится в [Min et al. 2013]. Примерами систем автоматического извлечения
отношений, которые не нуждаются в размеченном корпусе текстов вообще, объединенные понятием OpenIE, являются TextRunner [Banko et
al.,2007], ReVerb [Fader et al. 2011], Ollie [Mausam et al. 2012]. NELL представляет собой автоматическую самообучающуюся систему, ежедневно
сканирующую новости и извлекающую из них информацию об отношениях между всевозможными сущностями.
Раздел 4, помимо отсылок к соревнованиям, организованным ACE,
большей частью основывается на работе моих коллег [Alfonseca et al.
2013; Pighin et al. 2014; Krause et al. 2015].
В этой статье мы оставили без рассмотрения проблему оценки качества (evaluation) систем извлечения информации. Заинтересованный читатель может познакомиться с широко используемыми метриками, если
Глава 9. Извлечение информации
233
просмотрит публикации последних лет, появившиеся на таких конференциях как ACL, EMNLP, NAACL. Краткий исторический обзор систем извлечения информации, появившихся до 2005 года содержится в [Kaiser &
Miksch 2005].
Литература
Alfonseca E., Pighin D., Garrido G. HEADY: News headline abstraction through event
pattern clustering. In Proc. of ACL-13, 2013. P. 1243–1253.
Banko M., Cafarella M. J., Soderland S., Broadhead M., Etzioni O. Open information
extraction from the Web. In Proc. of IJCAI-07, 2007. P. 2670–2676.
Baroni M., Dinu G., Kruszewski G. Don’t count, predict! A systematic comparison of
context-counting vs. context-predicting semantic vectors. In Proc. of ACL-14,
2014. P. 238–247.
Bikel D. M., Miller S., Schwartz R., Weischedel R. Nymble: A highperformance learning
name-finder. In Proc. of ANLP-97, 1997. P. 194–201.
Fader A., Soderland S., Etzioni O. Identifying relations for open information extraction.
In Proc. of EMNLP-11, 2011. P. 1535–1545.
Gabrilovich E., Markovitch S. Computing semantic relatedness using Wikipedia-based
explicit semantic analysis. In Proc. of IJCAI-07, 2007. P. 1606–1611.
Grishman R., Sundheim B. Message understanding conference 6: A brief history. In
Proc. of COLING-96, 1996. P. 466–471.
Kaiser K., Miksch S. Information Extraction. A survey. Technical Report: Vienna
University of Technology, 2005.
Krause S., Filippova K., Alfonseca E., Pighin D. Idest: Learning a distributed
representation for event patterns. In Proc. of NAACL-HLT-15, 2015.
Mausam, Schmitz M., Bart R., Soderland S., Etzioni O. Open language learning for
information extraction. In Proc. of EMNLP-12, 2012. P. 523–534.
McCallum A., W. Li Early results for named entity recognition with conditional random
fields, feature induction and web-enhanced lexicons. In Proc. of CoNLL-03, 2003.
Milne D., Witten I. H. An effective, low-cost measure of semantic relatedness obtained
from Wikipedia links. In Proc. of WIKIAI-08, 2008.
Min B., Grishman R., Wan L., Wang C., Gondek D. Distant supervision for relation
extraction with an incomplete knowledge base. In Proc. of NAACLHLT-13, 2013.
P. 777–782.
Mintz M., Bills S., Snow R., Jurafsky D. Distant supervision for relation extraction
without labeled data. In Proc. of ACL-IJCNLP-09, 2009. P. 1003–1011.
Pighin D., Colnolti M., Alfonseca E., Filippova K. Modelling events through memorybased, Open-IE patterns for abstractive summarization. In Proc. of ACL14, 2014.
P. 892–901.
Ponzetto S. P., Strube M. Exploiting semantic role labeling, WordNet and Wikipedia for
coreference resolution. In Proc. of HLT-NAACL-06, 2006. P. 192–199.
Tjong Kim Sang E. F. Introduction to the CoNLL-2002 shared task: Languageindependent Named Entity Recognition. In Proc. of CoNLL-02, 2002.
234
Часть II. Направления
Tjong Kim Sang E. F., De Meulder F. Introduction to the CoNLL-2003 shared task:
Language-independent Named Entity Recognition. In Proc. of CoNLL03, 2003.
P. 142–147.
Электронные ресурсы
ACE http://www.itl.nist.gov/iad/mig/tests/ace/
ACL Anthology http://www.aclweb.org/anthology/
Freebase https://www.freebase.com/
GATE https://gate.ac.uk/
LingPipe http://alias-i.com/lingpipe/
Mallet http://mallet.cs.umass.edu/
NELL http://rtw.ml.cmu.edu/rtw/
NLTK http://www.nltk.org/
OpenIE http://openie.cs.washington.edu/
OpenNLP https://opennlp.apache.org/
Stanford CoreNLP http://nlp.stanford.edu/software/corenlp.shtml
TimeBank https://catalog.ldc.upenn.edu/LDC2006T08
TimeML http://www.timeml.org/site/index.html
Wikidata http://www.wikidata.org/wiki/Wikidata:Main_Page 9
Глава 10
Диалоги и чат-боты
Авторы: Наталья Сергеевна Константинова, выпускница 2007
года, ведущий программист-разработчик в компании First Utility;
Анна Валерьевна Дегтева, выпускница 2007 года, старший преподаватель кафедры математической лингвистики СПбГУ
1. Компьютер притворяется человеком
Исследователи начали работать над проблемой общения с компьютером на человеческом языке почти одновременно с появлением первых вычислительных машин. Возможность живого диалога на привычном языке
дает человеку быстрый и удобный доступ к информационным и вычислительным ресурсам. Обеспечением этого занимаются диалоговые системы
(dialogue systems) и их упрощенные версии чат-боты (chatterbots,
chatbots).
Английский математик Алан Тьюринг в 1950-м году предположил,
что к 2000 году качество имитации человеческого диалога компьютером
достигнет такого уровня, что в 30 процентах случаев после пяти минут
общения человек будет путать живого собеседника с компьютером. Этот
критерий получил название теста Тьюринга, а в 1990 году была учреждена
премия Лёбнера — ежегодное соревнование чат-ботов в прохождении теста Тьюринга.
В 2014 году в городе Рединг в Великобритании на очередном соревновании чат-ботов произошло знаковое событие: один из ботов — Женя
Густман (Eugene Goostman) — обманул 33 % судей, и таким образом формально прошел тест Тьюринга. Это событие, к сожалению, в большей степени демонстрирует не уровень развития технологий, а несовершенство
методов их оценки. Но, тем не менее, в последние годы в этой области
наметился серьезный прогресс.
Первые чат-боты — были задуманы для того, чтобы ввести в заблуждение собеседника и заставить его думать, что он общается с человеком.
Это позволило бы им пройти тест Тьюринга. Однако с развитием технологий чат-боты стали все чаще применяться в коммерческих проектах, где
они используются для общения с клиентами для помощи в покупке това-
236
Часть II. Направления
ров, навигации по сайтам, а также для технической поддержки [Lester,
Branting, and Mott 2004].
2. Особенности диалога на естественном языке
Речевое общение — это сложная деятельность, которая включает в
себя множество процессов от генерации высказываний до понимания текстов на естественном языке. При создании диалоговых систем должны
быть приняты во внимание следующие аспекты: порядок обмена репликами (turn-taking), общий контекст собеседников (grounding), структура
диалога (conversational structure), кто берет на себя ведущую роль в беседе
(initiative) [Jurafsky and Martin 2009]. Все эти аспекты изучает специальная
научная область, находящаяся на стыке лингвистики и социологии [Sacks,
Schegloff, and Jefferson 1974]. Рассмотрим подробнее каждый из этих аспектов.
Первый аспект — порядок обмена репликами — задает тот момент,
когда следующий участник должен вступить в беседу и взять инициативу
на себя. Обычно люди интуитивно понимают, когда пришло их время говорить, но автоматическим системам понять это бывает трудно. Логичнее
всего предположить, что люди начинают говорить, когда наступает тишина, но исследования показывают, что паузы бесконечно малы, а люди могут догадаться по контексту, когда им следует вступать в разговор
[Jurafsky and Martin 2009: P. 814]. Поэтому понимание того, что было сказано, играет в данном процессе важную роль. Существуют определенные
правила, по которым можно определить момент, когда приходит время
вступать другому собеседнику [Sacks, Schegloff, and Jefferson 1974]. Несмотря на сложность проектирования данного аспекта в диалоговых системах, он является важным фактором естественности диалога.
Наличие контекста диалога — это вторая характеристика, которую
следует учитывать при разработке диалоговых систем. При общении людям необходимо иметь общий контекст, информацию, которую собеседники используют для интерпретации высказываний друг друга. Такой тип
информации по-английски называется общей почвой (common ground)
[Stalnaker 1978]. В ходе разговора собеседники выстраивают модель дискурса, куда постепенно добавляют кусочки информации для успешного
ведения диалога [Ramsay 2003]. Участники заранее предполагают какойто объем информации и в процессе диалога пытаются добавить его к общему контексту [Clark and Schaefer 1989]. Однако все участники обладают
своим видением информации и потому для успешного диалога необходимо постоянное подтверждение данного контекста посредством «Да», «Яс-
Глава 10. Диалоги и чат-боты
237
но…», «Ага» или дополнительных вопросов. Если это условие не выполняется, собеседники могут потерять нить разговора.
Важной характеристикой контекста можно назвать наличие у беседы
темы (topicality), которая на протяжении беседы может оставаться постоянной или меняться. Общая тема обеспечивает понимание собеседниками
друг друга и в некоторой степени определяет то, как строится диалог
[Dooley 2007].
Еще одним важным аспектом диалога является его специфическая
структура. Она включает в себя не только содержание реплик, а также роли собеседников и что каждый из них должен сообщить. Исследования
показали, что у людей есть внутреннее понимание структуры беседы, и
они могу легко различать естественные диалоги и те, которые были автоматически сгенерированы [Goldthwaite 1997]. Во многих случаях структура беседы предопределяется ситуацией и диктует содержание. Например,
беседу принято начинать с приветствия, а не с прощания. Таким образом,
если цель собеседников — успешно общаться, они должны следовать всем
этим правилам и принимать во внимание структуру беседы.
Понятие инициативы в диалоге является также крайне важной характеристикой. Оно показывает, кто ведет беседу, имеет лидирующее положение [Walker et al. 1990]. Обычно присутствует смешанная инициатива
(mixed-initiative), где ведущая роль переходит от одного собеседника к
другому. Хотя бывают ситуации, когда инициатива принадлежит только
одной стороне (single-initiative), например, допрос полицией или судьей.
Все эти аспекты диалога очень важны при разработке диалоговых
систем, благодаря им диалог кажется естественным и приближенным к
человеческому общению.
3. Архитектура диалоговых систем
Упрощенные версии диалоговых систем — чат-боты — имеют очень
простую архитектуру. Она предполагает нахождение шаблонов или ключевых слов в высказываниях людей, с помощью которых система подбирает ответ из существующего набора вариантов. Более подробно об этом
рассказывается в следующем разделе. Во многих случаях обмен несколькими репликами может создать впечатление естественного диалога, но в
какой-то момент он превращается в неразбериху.
Современные полномасштабные диалоговые системы имеют более
сложную архитектуру и состоят из нескольких модулей. Их архитектура
сильно варьируется, но принято считать, что в ней обычно присутствует
пять главных элементов: распознавание речи (speech recognition), понимание языка (natural language understanding), диалоговый менеджмент (dia-
238
Часть II. Направления
logue management), генерация естественного языка (natural language generation) и синтез речи (speech synthesis). Некоторые элементы являются
необязательными и отсутствуют в ряде систем. Например, распознавание
и синтез речи часто исключаются, поскольку обычно они реализуются как
отдельные независимые модули. Рассмотрим кратко три оставшихся компонента диалоговых систем.
3.1. Модуль понимания естественного языка
Задачей модуля понимания естественного языка (natural language understanding — NLU) является получение семантического представления
входного текста, которое затем сможет быть использовано для реализации
каких-либо заданий в рамках диалоговых систем. Есть два подхода для
разработки данного модуля, выбор которых зависит от сложности диалоговой системы и имеющихся ресурсов: построенные вручную правила
(handcrafted) или правила, основанные на данных (data-driven) [Ginzburg
and Fernandez 2010].
Для успешной работы данного модуля необходимо большое
количество информации, включающей знания об окружающем мире,
контекст диалога и информацию о дискурсе. В системах типа IBM Watson
или диалоговых функциях Google для описания окружающего мира
используются базы знаний (knowledge graph). Базы знаний формируются
на основании открытых структурированных источников, таких как
Википедия, и пополняются с помощью различных алгоритмов извлечения
информации из текстов. Эти данные также используются для дальнейшего
обучения модулей NLU распознаванию именованных сущностей в
репликах пользователей. Мобильные ассистенты также могут накапливать
информацию о пользователе: его интересы, предпочтения, дату рождения
и другую личную информацию.
3.2. Диалоговый менеджер
Диалоговый менеджер — это центральная составляющая диалоговых
систем, которая координирует деятельность других компонентов. Её основной задачей является сохранение представления о текущем состоянии
диалога [Bui 2006]. Траум и Ларссон [Traum and Larsson 2003] так определяют главные задачи диалогового менеджера:
• обновление контекста диалога на основании проинтерпретированного
общения;
• предоставление контекстно-зависимых интерпретаций сигналов;
• работа с обработкой задания и области знания (например, базы данных, планирование, реализация и другие системы), координирование
Глава 10. Диалоги и чат-боты
239
диалогового и недиалогового поведения, принятие решения о том, каково будет содержание следующего высказывания и когда следует его
реализовать.
Диалоговые менеджеры должны интерпретировать речевые акты,
производить необходимые действия, формулировать ответы и поддерживать идею системы о состоянии дискурса [Dale, Moisi and Somers 2000].
Таким образом, диалоговый менеджер контролирует всю архитектуру и
структуру беседы, а также является связующим звеном между модулями
понимания и генерации языка, так как берет на себя функцию донесения
информации от одного модуля к другому.
Существует масса различных классификаций диалоговых менеджеров. Журавский и Мартин рассматривают четыре основных типа их архитектуры:
с конечным количеством состояний (finite-state DM);
базирующийся на фреймах-формах (frame/form based DM);
с информационными состояниями (information-state DM);
ДМ, основанный на плане (plan-based DM).
Буи совмещает первые два типа в одну группу и вводит понятие коллаборативного агентного подхода (collaborative agent-based approach). Более детальное обсуждение данных подтипов не входит в замысел данной
главы, однако, заинтересованные читатели могут получить более подробную информацию из [Jurafsky and Martin 2009, Bui 2006 и Ginzburg and
Fernandez 2010].
•
•
•
•
3.3. Модуль генерации естественного языка
Генерация естественного языка ответственна за автоматическое создание высказываний на естественном языке на основе полученного представления нелингвистической информации. Преимущественно процесс
генерации языка состоит из трех стадий: планирование документа (document planning), микропланирование (microplanning) и поверхностная реализация (surface realization) [Reiter and Dale, 2000].
Планирование документов включает определение содержания (content determination) (преобразование необработанного материала в определенный тип data objects) и структурирование документов/планирование
дискурса (упорядочение информации, к которым относится и структурирование выходного/конечного текста). Стадия микропланирования состоит
из лексикализации (выбора подходящих слов для выражения информации),
аггрегации (aggregation) (принятие решения о том, какую информацию
вложить в одно предложение) и генерации отсылочных выражений (referring expression). Последняя стадия, поверхностная реализация (surface
240
Часть II. Направления
realization), включает лингвистическую реализацию (создание грамматически правильных предложений) и реализацию структуры (конвертация
результирующего текста в какой-то запрашиваемый формат).
В диалоговых системах информация, поступающая в модуль генерации языка, приходит из диалогового менеджера. Это означает, что диалоговый менеджер ответственен за подбор информации для выдачи ее пользователю и для планирования дискурса. Таким образом, в большинстве
случаев модуль генерации языка формулирует высказывания системы, то
есть принимает решение «как сказать».
Многие диалоговые системы оперируют ограниченной областью знания, таким образом, часть стадий генерации языка становятся тривиальными, и нет нужды разрабатывать сложную систему. В таком случае
обычно полагаются на заранее определенные шаблоны, хотя это может
сказаться на качестве текста, и человеку такие высказывания покажутся
неестественными. Для устранения данной проблемы, обычно используются местоимения, небольшие перефразирования для внесения разнообразия
в ответы системы. Некоторые чат-боты используют марковские цепи для
генерации разнообразных ответов, при этом выглядящих похоже на предложения, сгенерированные человеком [Bradeško et al. 2012].
Во многих простых чат-ботах модуль генерации речи может отсутствовать: система использует предварительно созданные разработчиками
ответы, список которых может пополняться. Например, система Cleverbot
используют для пополнения своей базы знаний реплики пользователей и
пользовательские реакции на них — что сделало этого бота несколько агрессивным и не слишком приятным в общении.
4. Как работают чат-боты
4.1. Имитация беседы
Как уже упоминалось ранее, чат-боты — это упрощенные версии
диалоговых систем. Диалоговые системы отличаются многоступенчатой
архитектурой, в то время как в чат-ботах часть модулей становится тривиальной.
На первом этапе работы чат-бот системы может иметь место подобие
упрощенной системы понимания языка: разбиение высказываний на предложения, исправление опечаток, замена слов на стандартные. После того,
как текст преобразован в более понятную структуру, производится его
анализ с помощью набора правил, цель которого заключается в нахождении или генерировании реакции бота путем определения нужного правила. Эта реакция может представлять собой как словесный ответ пользова-
Глава 10. Диалоги и чат-боты
241
телю, так и некоторое внеязыковое действие (для чат-ботов, совмещенных
с системой голосового управления, например, мобильных ассистентов и
систем типа «умный дом»), или действие, направленное на получение определенной реакции от пользователя — например, для чат-ботов, используемых в интерактивных системах обучения.
Важная область применения чат-ботов — это виртуальные ассистенты, разработанные для мобильных приложений. Чаще всего, такие программы сочетают в себе развлекательную функцию с возможностями голосового управления устройством. Наиболее известной является система
Siri, разработанная компанией Apple. Она положила начало целому ряду
похожих приложений и теперь каждая уважающая себя крупная технологическая компания старается выпустить свой улучшенный вариант Siri.
Существует множество приложений под Android, которые предлагают помощь виртуального ассистента: Maluuba, Robin, Iris, Vlingo, Skyvi. Не менее известны приложения, разработанные другими крупными компаниями:
Voice Mate (LG), S-Voice (Samsung), Google Now, Cortana (Microsoft). Наибольшего внимания заслуживает последняя диалоговая система — Cortana,
поскольку она обладает индивидуальностью, и разработчики потратили
долгое время, чтобы приблизить ее к живым секретарям.
4.2. Язык AIML и другие подходы
Самой простой технологией, используемой для анализа входящих
текстов, является применение шаблонов (pattern matching), которые используются практически во всех существующих системах.
Количество предложений, которые может сформулировать пользователь, очень велико, потому подобные системы лучше всего работают в
ограниченных областях знания.
Сегодня большинство чат-ботов в своей основе используют специальный язык — Artificial Intelligence Markup Language (AIML). Это вариация XML, разработанная Ричардом Уэллесом и мировым сообществом
программистов между 1995 and 2002 годами. AIML лежал в основе широко известного чат-бота под названием «A.L.I.C.E.» («Artificial Linguistic
Internet Computer Entity»), который трижды (в 2000, 2001, 2004 годах) завоёвывал премию Лёбнера.
AIML позволяет определять правила для анализа текста и генерации
ответов. Наиболее важными элементами AIML являются:
• <aiml>: тэг, который начинает и заканчивает AIML документ;
• <category>: тэг обозначающий «элемент знаний» в базе знаний;
• <pattern>: содержит простой шаблон, который может быть сопоставлен с тем, что пользователь может сказать чат-боту;
• <template>: содержит ответ, который генерирует система.
242
Часть II. Направления
Существуют также еще 20 тэгов, которые используются для дальнейшего уточнения шаблонов и для сохранения контекста беседы.
Рассмотрим простой пример вопросно-ответной структуры:
<category>
<pattern> WHAT ARE YOU </pattern>
<template>
I am the latest result in artificial intelligence,
which can reproduce the capabilities of the human brain
with greater speed and accuracy.
</template>
</category>
Весь текст между <category> и </category> является категорией. Категория может содержать один шаблон (pattern) и один ответ (template).
Данный шаблон (pattern) сможет узнать только точную фразу «what are
you» (заглавные буквы используются исключительно в шаблоне). Соответствующий ответ будет показан пользователю, если данный шаблон будет идентичен входному тексту.
В данном примере правила расширены за счет использования специальных символов, которые позволяют ставить в соответствие («узнавать»)
большее количество предложений. Например, звездочка * используется
для обозначения одного или нескольких заранее неопределенных слов:
модифицированное правило со звездочкой <pattern>* WHAT ARE YOU *
</pattern> «узнает» фразу «WHAT ARE YOU» и все те предложения, в которых это предложение является подмножеством. Например, следующие
предложения будут также покрыты данным шаблоном:
• WHAT ARE YOU
• WHAT ARE YOU MADE OF
• COULD YOU TELL ME WHAT ARE YOU
Таким образом, разработчики AIML-правил должны соблюдать баланс между желанием сделать правило достаточно общим, чтобы оно могло «узнать» большое количество текста, и стремлением сохранить правило
достаточно точным, чтобы оно не приводило к неточным ответам.
Набор AIML правил A.L.I.C.E. находится в широком доступе и распространяется под GNU GPL лицензией, а большинство интерпретаторов
AIML предлагаются бесплатно или с open source лицензией, поэтому было
создано большое количество «Alicebot клонов». Эти чат-боты дополняли
изначальный набор правил, и теперь в Интернете можно найти правила
для чат-ботов на нескольких языках. Кроме того, AIML интерпретаторы
Глава 10. Диалоги и чат-боты
243
написаны на многих других языках, включая Java, Ruby, Python, C++ and
C#.
Полуформальная спецификация и W3C XML схема для AIML существует с 2013 года, и A.L.I.C.E foundation работает над новой версией
AIML 2.0.
Доступность ресурсов и легкость языка AIML объясняют популярность чат-ботов, и то, почему многие компании предпочитают использовать чат-боты, а не тратить годы разработок на более совершенные диалоговые системы.
Создатели интерактивной игры Façade с нелинейным сюжетом, выбрали путь, отличный от стандартного использования языка AIML. В их
системе входящие фразы пользователя не соотносятся напрямую с реакцией бота, а проецируются на дискурсивные акты, такие как согласие,
несогласие, критика и флирт, каждый из которых изменяет состояние персонажей внутри системы: например, если пользователь критикует одного
из участников разговора, это изменяет и состояние другого персонажа.
Создатели Façade уходят от идеи полного понимания входящей фразы
к тому, чтобы понять, к какому из 50 актов дискурса она относится, и выдать соответствующую реакцию системы — при этом в случае ошибки
пользователь, зачастую ее не замечает.
Дискурс в игре построен на основе так называемых битов (beats), задающих контекст определенного участка разговора и определяющих поведение персонажей и то, как они интерпретируют слова пользователя.
Примерами таких битов являются, например, приветствие или спор между
персонажами
5. Обучение диалоговых систем на реальных
диалогах
С развитием технологий машинного обучения, а особенно с возросшей популярностью нейронных сетей, разработчики диалоговых систем
обратили внимание на статистические подходы и начали искать способы
их применения.
Исследования 2015 года предлагают абсолютно новый подход: непрерывное обучение без разделения системы на компоненты, что значительно
уменьшает объем необходимой ручной работы. В основе данного подхода
лежит модель последовательность к последовательности (seq2seq или
sequence to sequence). Каждую реплику пользователя можно трактовать
как произвольную последовательность, а ответную реплику — как последовательность, которая должна ей соответствовать. Тогда получается, что
модель (рекуррентная нейронная сеть, обученная на реальных диалоговых
244
Часть II. Направления
данных) должна предсказать очередную последовательность для реплики,
т. е. ответную реплику.
На основе этого подхода были обучены две модели: одна на данных
логов службы поддержки пользователей, а вторая на корпусе субтитров к
фильмам. Оба эксперимента оказались довольно успешными: ответы обученных моделей были вполне уместны и превзошли ожидания исследователей. Такой успех нового подхода позволяет надеяться на скорый прорыв
в области диалоговых систем. Подробнее о результатах этого эксперимента можно прочитать в статье [Vinyals and Le Quoc 2015].
6. Углубление диалога
Диалоговые системы и чат-боты становятся все более привлекательными для коммерческого применения, так как они могут значительно сократить расходы на обслуживание клиентов, предоставлять эффективный
доступ к информации, быть на связи 24/7. Существующие на рынке решения несовершенны и могут быть значительно улучшены.
Уровень «интеллектуальности» диалоговых систем может быть повышен за счет интеграции с вопросно-ответными системами (question
answering systems). Их цель — не убедить пользователя в своей «человечности», а предоставить максимально точный ответ на вопрос, заданный на
естественном языке. Одной из самых известных вопросно-ответных систем стал IBM Watson. Он максимально приблизился к искусственному
интеллекту благодаря модулю контентной аналитики DeepQA, который
собирает и упорядочивает информацию, а также использует машинное
обучение на основе нейронных сетей. В 2011 году IBM Watson победил
лучших американских игроков в интеллектуальном телешоу «Jeopardy!».
Первое свое практическое применение IBM Watson нашел в области медицинского консультирования.
Кроме того, важной проблемой является эмоциональная составляющая взаимодействия человека с виртуальным собеседником. Она особенно
важна в развлекательных приложениях и в обучающих системах.
Для улучшения диалоговых систем необходимо разработать новые
способы оценки их качества. Единственная на данный момент метрика
качества диалоговых систем — это тест Тьюринга, но он не отражает реального качества систем и формально уже пройден.
Улучшение диалоговых систем и чат-ботов, в том числе за счет применения машинного обучения и нейронных сетей, создание метрики качества диалоговых систем — это перспективные и многообещающие направления научных исследований и практических разработок, в которых в
ближайшие годы должен произойти качественный скачок.
Глава 10. Диалоги и чат-боты
245
Литература
Bui T. Multimodal dialogue management–state of the art (Technical Report). Enschede,
Centre for Telematics and Information Technology, University of Twente, 2006.
Bradeško L., Mladenić D. A Survey of Chabot Systems through a Loebner Prize Competition. 2012.
Clark H. H., Schaefer E. F. Contributing to discourse. Cognitive Science, 13, 1989.
P. 259–294.
Dale R., Moisi H., Somers H. (Eds.). Handbook of natural language processing. Marcel
Dekker, Inc., 2000.
Dooley R. A. Explorations in Discourse Topicality, SIL Electronic Working Papers
2007–010, 2007.
Ginzburg J., Fernandez R. Computational Models of Dialogue. In Clark, A., Fox, C, &
Lappin S. (eds.) The Handbook of Computational Linguistics and Natural Language Processing. Wiley-Blackwell, 2010. P. 429–481.
Goldthwaite D. Knowledge of pragmatic conversational structure. Journal of Psycholinguistic Research, 26 (5), 1997. P. 497–508.
Jurafsky D., Martin J. H. Speech and language processing an introduction to natural
language processing, computational linguistics, and speech recognition. PrenticeHall, Inc., 2009. Second Edition.
Lester J., Branting K., Mott B. Conversational agents. In M. P. Singh (Ed.). The practical
handbook of internet computing. Chapman & Hall, 2004.
Mauldin M. L. Chatterbots, Tinymuds, And The Turing Test: Entering The Loebner Prize
Competition. In Proceedings of the Eleventh National Conference on Artificial Intelligence. AAAI Press, 1994.
Mori R. D., Béchet F., Hakkani-Tr D., McTear M., Riccardi G., et al. Spoken language
understanding: A survey. IEEE Signal Processing Magazine, 25, 2008. P. 50–58.
Ramsay A. Discourse. In Mitkov, R. (Ed.). Handbook of computational linguistics. Oxford University Press, USA, 2003.
Reiter E., Dale R. Building natural generation systems. Cambridge University Press,
2000.
Sacks H., Schegloff E. A., Jefferson G. A simplest systematics for the organization of
turn-taking for conversation. Language, 50 (4), 1974. P. 696–735.
Stalnaker R. Assertion. In P. Cole (Ed.), Pragmatics: Syntax and semantics. V. 9. Academic press, 1978. P. 315–332.
Traum D., Larsson S. The information state approach to dialogue management. In
J. van Kuppevelt & R. Smith (Eds.), Current and new directions in discourse and
dialogue Springer, 2003. P. 325–354.
Vinyals O.,
Quoc V. Le.
http://www.reading.ac.uk/news-andevents/releases/PR583836.aspx
Walker M., Whittaker S., Laboratories H. P., Qz B. Mixed initiative in dialogue: An investigation into discourse segmentation. In Proceedings of the 28th annual meeting
of the association for computational linguistics, 1990.
246
Часть II. Направления
Электронные ресурсы
Наиболее известные чат-боты
http://ai.bluemars.com/chat/
https://www.chatbots.org/virtual_assistant/alisa/
http://nlp-addiction.com/eliza/
http://sheepridge.pandorabots.com/pandora/talk?botid=b69b8d517e345aba&skin=custo
m_iframe
Ресурсы, посвященные созданию чат-ботов
http://rebot.me — самый крупный и популярный сайт, посвященных созданию чатботов;
http://www.pandorabots.com — конструктор чат-бота;
http://www.chatbot4u.com/en — создание коммерческих чат-ботов;
http://www.personalityforge.com — конструктор чат-ботов (три уровня сложности);
http://www.alicebot.org/downloads/sets.html — конструктор «для профессионалов»;
http://chatscript.sourceforge.net/ — конструктор чат-бота;
http://iii.ru/signup — конструктор чат-ботов на русском языке;
Информационные ресурсы
https://www.chatbots.org — информационный ресурс о чат-ботах;
http://web.stanford.edu/group/SHR/4–2/text/dialogues.html#note7 — примеры диалогов с ранними версиями чат-ботов.
Глава 11
Анализ тональности
Автор: Мария Владимировна Хохлова, выпускница 2007 года,
доцент кафедры математической лингвистики СПбГУ
1. Компьютер отслеживает чувства
Как узнать общественное мнение по какому-нибудь вопросу? Можно
спросить друзей, знакомых, соседей, устроить опрос в коллективе или на
улице. В век электронной коммуникации нам могут помочь отзывы в социальных сетях и на сайтах с обратной связью. Но информации там слишком много — настолько много, что прочитать все сообщения невозможно.
Надо извлечь из них самое ценное — например, фотоаппарат делает потрясающие снимки, а отель настолько понравился, что невозможно не поехать. Этим занимаются системы извлечения мнений (opinion mining). По
своим технологиям они близки к системам извлечения информации
(information extraction или data mining), описанным в главе 9.
Данная глава будет посвящена системам автоматического анализа
тональности (sentiment analysis). На первый взгляд термин может показаться странным, но это направление чрезвычайно популярно и развивается сейчас очень быстро. Анализ тональности не предполагает извлечения
фактографической информации, он занимается только степенью эмоциональной окраски сообщений. Например, на прошлой неделе фамилию некоторого политика упоминали с сильной отрицательной эмоцией, а на
этой неделе начали говорить о нем с положительным оттенком. Несколько
месяцев назад этот товар упоминался нейтрально, а сейчас, после проведения рекламных акций, его начали хвалить.
Анализ тональности отслеживает не что говорят о каком-то человеке
или явлении, а насколько эмоционально о нем говорят. Ведь содержание
быстро забывается, а «нехороший осадок» остается: «То ли он украл, то
ли у него украли, но была там какая-то неприятная история».
В русском языке за англоязычным термином sentiment analysis закрепились сразу несколько эквивалентов. Анализ тональности — это самый
распространенный его перевод. Встречаются также названия сентиментанализ, анализ мнений, анализ эмоциональной составляющей сообщений.
248
Часть II. Направления
2. С чего начинается оценка?
Прежде всего, необходимо разобраться, в каких типах текстов может
содержаться эмоциональная оценка. Маловероятно, что это будут научные
книги. Скорее всего, это будут записи в блогах, социальных сетях, твиты,
тексты комментариев и отзывов на сайтах Интернет-магазинов, электронных библиотек или фото- и видеохостингов, — то есть записи, которые
оставляют пользователи и которые отражают их мнение. Затем необходимо собрать корпус данных текстов. Можно, конечно, делать это вручную,
но потребует очень большого количества времени. Поэтому для этой цели
используются специальные программы, которые позволяют автоматически
собрать материал по заданным параметрам (бесплатная программа
Webometric Analyst).
Язык социальных медиа, входящий в пользовательский контент (usergenerated content, или UGC) вообще довольно сильно отличается от более
стандартизованных источников, таких как СМИ или обычные тексты на
сайтах. В них часто можно встретить эмотиконы (смайлики), опечатки,
неологизмы, окказионализмы и многое другое. Поэтому если требуется
дальнейшая частеречная разметка таких текстов, то часто используют программы, «заточенные» для работы с UGC текстами (например, для английского языка GATE Twitter PoS tagger [GATE Twitter PoS tagger] или
Tweet NLP [Tweet NLP]).
Далее необходимо понять, что следует искать. При анализе тональности необходимо выявить несколько составляющих.
Во-первых, источник мнения, или субъект тональности, — кто является автором сообщения. Во-вторых, объект тональности — о чем идет
речь в тексте (например, о фотокамере или об отеле). В-третьих, аспект
тональности — характеристика объекта (например, затвор камеры или
местоположение отеля). И, в-четвертых, тип мнения (собственно оценочный компонент), или тональная оценка. Здесь имеется в виду отношение
автора к описываемому предмету, конкретное сообщение об аспектах
(свойствах) объекта (допустим, «потрясающая оптика» или «очень милый
персонал»).
Оценка может относиться как к целому документу (например, к
фильму), так и к отдельному аспекту (например, к игре актера, исполняющего главную роль).
Анализ тональности в той или иной мере связан с классификацией. В
простейшем случае классификация текстов сводится к бинарному представлению: положительно или отрицательно окрашен данный текст, то
есть хорошо или плохо автор относится к тому, о ком или о чем пишет.
Однако на практике все оказывается сложнее. Если мы будем сравнивать
между собой, например, положительные рецензии на фильмы, то увидим,
Глава 11. Анализ тональности
249
что авторы одних пишут более нейтрально, а другие всячески хвалят кино
и рекомендуют к просмотру. Поэтому можно ввести более дробное деление на классы и попытаться оценить мнение, высказанное в тексте, подругому (например, по трех- или пятибалльной шкалам, которые будут
включать промежуточные оценки). Правда, с увеличением количества
классов уменьшается точность классификации, так как становится сложнее понять, чем один отзыв лучше или хуже другого.
Как уже было сказано, автор может оценивать только отдельную характеристику в своем отзыве, поэтому более сложная задача — постараться определить аспект сообщения и соответствующую ему тональность.
Например, на основе отзыва об отеле необходимо понять, что понравилось
(«близко от исторического центра»), а что нет («плохо работал wi-fi»), каким характеристикам будет приписана позитивная оценка, а каким негативная.
Задача осложняется тем, что в отзывах может содержаться оценка
сразу нескольких объектов, иногда конкурирующих. Разберем на примере
комментария на Яндекс.Маркете, в котором оценивается iPad, о каких составляющих идет речь (орфография и пунктуация автора сохранены).
Приятный на ощупь, когда держишь в руках ощущается что
держишь вещь а не пластмассовую игрушку. Быстро к нему привыкла. С iOS проблем нет. Хотелось бы конечно чтобы батарея работала дольше в режиме LTE. Хотя что я, когда был android он держал
зарядку еще меньше. После iPad смотреть в сторону других планшетов желания нет. Геолокация работает получше чем на android. В
общем в ipad есть много приятных мелочей которых нет в планшетах других производителей. и даже если умельцы в кустарных условиях как-то пытаются воспроизвести всякие бантики iPad'а на
android планшетах — это всё равно не то… Каждому свое конечно.
Apple это всё равно что — «Пока не попробуешь не узнаешь».
Чтобы ни говорили фанаты android.
Объект этого отзыва — модель планшета iPad Air 2. Аспекты — операционная система, батарея, длительность работы от аккумулятора, геолокация. Оценочная лексика (тональность): «приятный», «быстро к нему
привыкла», «проблем нет», «работала дольше», «еще меньше» и др. При
этом часть оценок относится не к планшету iPad Air 2, а к моделям на основе системы Android.
250
Часть II. Направления
3. Как измерить тональность текста
Каким образом можно извлечь мнение из большой коллекции отзывов? Сам по себе автоматический поиск в текстах положительно или отрицательно окрашенных слов не дал бы результатов, поскольку язык использует их слишком разнообразно. В предложениях могут встретиться
отрицание, саркастические замечания или другие приемы, которые приведут к ошибочной интерпретации высказывания, меняя его тональность на
противоположную. Поэтому были разработаны специальные методы, которые позволяют частично решать эти сложные проблемы.
Как и в других задачах прикладной лингвистики, основные подходы к
автоматическому определению тональности текста можно разделить на
две большие группы. Алгоритмы первой группы основаны на правилах
(rule-based), а алгоритмы второй группы используют методы машинного
обучения (machine learning). Для русского языка чаще применяется первый подход, а для английского второй. Это связано во многом с тем, что
для английского языка существует большое число общедоступных размеченных коллекций, на которых можно тренировать модели машинного
обучения и большое количество программных продуктов с открытым кодом, заточенных так же на английский язык, тогда как русскоязычных ресурсов практически не существует.
3.1. Подход с использованием правил и словарей
3.1.1. Построение правил
Правила для анализа тональности используют заранее разработанные
шаблоны, описывающие данную предметную область. По этим шаблонам
из текста извлекаются n-компонентные цепочки (n-граммы), их тональность определяется как на основе правил, так и на основе словарей, о которых речь пойдет ниже.
Правила могут строиться по модели «если… то…». Например:
Если цепочка содержит глагол из списка («любить», «нравиться», «обожать» и др.) и не содержит глагола из другого списка
(«ужасать», «отвращать» и др.) или отрицания, то ее тональность
положительная.
При использовании отрицания перед найденной цепочкой тональность может меняться на противоположную.
Так собираются оценки различных цепочек документа. Для получения итоговой окраски общую сумму весов можно подсчитать по формуле,
которую составляют разработчики конкретного решения, универсальной
Глава 11. Анализ тональности
251
формулы не существует. Конечно, сумма тональностей фрагментов может
быть не равна общей окраске всего текста («отличный фильм для страдающих бессонницей»). Кроме того, сложности возникают в тех случаях,
когда срабатывают несколько правил — как оценить их суммарное влияние? Для решения подобных проблем предусмотрены механизмы комбинации правил. Они учитывают, насколько часто правило используется в
документе, на какой позиции оно встречается и прочее. При большом наборе правил алгоритм может показывать хорошие результаты.
Недостаток данного подхода связан с тем, что создание достаточно
большого списка правил требует много сил и времени. Кроме того, словари обычно описывают лишь определенную тематику, например, обзоры
ресторанов или фотоаппаратов, поскольку тональная оценка часто зависит
от предметной области. Так, прилагательному «замысловатый» в обзоре
фильмов или ресторанов скорее будет соответствовать положительная тональность («замысловатый сюжет» или «замысловатый интерьер»), в то
время как в текстах, посвященных техническим устройствам, это признак
отрицательной тональности («замысловатая настройка»).
3.1.2. Словари оценочной лексики
Хотя ранее было сказано, что простой поиск лексики в текстах не
приведет к желаемому результату, тем не менее словари весьма полезны и
активно используются в задачах, связанных с автоматическим анализом
тональности. В словарях оценочной лексики хранятся слова и словосочетания, каждому из которых присвоен уровень эмоциональной оценки (см.
табл. 1).
Таблица 1
Слово /словосочетание
отвратительный
с гулькин нос
модный
усталый
Уровень эмоциональной оценки
–5
–2
+3
–2
В зависимости от словаря используются разные шкалы оценок. Так,
словам может быть приписана только одна оценка (как в примере, приведенном выше). В некоторых системах (например, SentiStrength [Thelwall et
al.2010]) группы слов получают не одну, а две тональные оценки (положительную и отрицательную). Также существуют лексиконы, в которых словам приписываются разные эмоции, к ним относится, например, NRC
Word-Emotion Association Lexicon [NRC Word-Emotion Association
252
Часть II. Направления
Lexicon]. В словаре приводится список из 14 тысяч слов, каждому из которых вручную были сопоставлены эмоции (такие как «гнев», «страх»,
«предчувствие», «вера», «удивление», «грусть», «отвращение», «радость»)
и тональные оценки (положительная или отрицательная). Ниже приведен
пример для слова «frank» (рус. «откровенный», см. табл. 2). Данный список был переведен на несколько десятков языков, среди которых есть и
русский.
Таблица 2
Слово
Эмоция
или тональная
оценка
frank
frank
anger
anticipation
frank
frank
frank
disgust
fear
joy
frank
frank
frank
negative
positive
sadness
frank
frank
surprise
trust
Значение
(1 — присутствует
соответствие;
0 — отсутствует
соответствие)
0
0
0
0
0
0
1
0
0
1
Словарь NRC Hashtag Sentiment Lexicon [Mohammad et al. 2013] создавался на основе твитов, которые отбирались по хештегам, обозначающим позитивно или негативно окрашенные тексты (к ним относились,
например, #good, #excellent, #bad и #terrible). Словам, биграммам и их сочетаниям были приписаны тройки значений: тональная оценка, количество сочетаний данной единицы с положительно окрашенным маркером (это
мог быть хештег или эмотикон) лексикой и количество сочетаний данной
единицы с отрицательно окрашенным маркером (см. табл. 3). Тональная
оценка могла быть как больше нуля (это было свидетельством позитивного сентимента), так и меньше нуля (что говорило о негативном сентименте).
Глава 11. Анализ тональности
253
Таблица 3
Слово/
словосочетание
Значение
тональной
оценки
Частота
позитивной
связи
Частота
негативной
связи
5,665
537
3
5
7
0
1,006
–3,12
39
7
23
256
elegant («элегантный»)
excellent movie («великолепный фильм»)
kindness («доброта»)
sinister («зловещий»)
Такие словари можно создавать вручную и автоматически. Второй
способ, конечно, гораздо удобнее.
Вручную подобные словари могут создаваться по-разному. Вопервых, можно создать подобный список слов с нуля, используя для этой
цели в том числе толковые словари или корпусы текстов. В них данная
лексика сопровождается специальными пометами. Так, в Национальном
корпусе русского языка [НКРЯ] слова помечаются как ev:posit (например,
«гений» или «малыш») и ev:neg (например, «обжора» или «прилипала»).
Во-вторых, в случае языков, для которых пока нет подобных ресурсов,
списки слов могут быть переведены с другого языка (например, с английского, как это было сделано для NRC Word-Emotion Association Lexicon).
Далее полученные списки слов можно расширять, включая в них новую лексику. Одним из автоматических способов пополнения таких словарей является разработка правил, которые используются для извлечения
новых оценочных слов из текстов (т. е. тех, которые не попали в словарь).
Например, если прилагательные объединены сочинительным союзом «и»,
а первое из них содержится в словаре, то и второму можно приписать такой же вес. На выходе список этих слов пополнит лексикон.
Также возможно определить, как часто данное слово или словосочетание встречается с положительно окрашенной или отрицательно окрашенной лексикой (наиболее простой вариант: «хороший» /«хорошо» и
«плохой» /«плохо»). В качестве инструмента для измерения такой совместной встречаемости лексических единиц используются статистические
меры — хи-квадрат, мера поточечной взаимной информации (PMI) и др.
Данные меры учитывают частоты встречаемости слов A и B в корпусе, а
также их совместную встречаемость (слово A рядом со словом B). По специальным формулам вычисляются значения этих мер. Например, для PMI:
A®¯ = log
°(слово ² ОКОЛО слово ¶)
,
°(слово ²) ∗ °(слово ¶)
254
Часть II. Направления
где p (слово) — вероятность такого события, что слово встретится в документе.
Под словом A может пониматься не только отдельное слово, но и словосочетание (например, «красивое платье»). В качестве слова B используется как раз эмоциональная лексика с известной окраской (которая была
приписана человеком). Далее тональность слова A (SO — sentiment
orientation) находится как разница между значениями меры, то есть:
z· = A®¯("хорошо" или хороший\, слово ²) −
−A®¯ ("плохо" или плохой, слово ²)
Для данного алгоритма желательно иметь достаточно большой корпус, в котором слова будут встречаться вместе довольно часто. В противном случае, например, если слово встретилось один раз с положительной
окраской и один раз с отрицательной, будет довольно сложно сделать вывод о его эмоциональной оценке.
Существуют также специальные тезаурусы, в которых размечена
эмоциональная составляющая лексики. Для английского языка это
SenticNet, SentiWordNet и WordNet-Affect.
SenticNet [Cambria, Havasi, Hussain 2012] — это семантический тезаурус, в котором отражена не только тональность лексики, но и некоторые
смысловые связи. Последнее стало возможным благодаря специальным
вычислениям, использующим алгоритмы семантических сетей и искусственного интеллекта. Так, для понятия «празднование дня рождения» системой будет выданы его принадлежность к домену верхнего уровня «события», а также набор семантически связанных понятий (например, «клоун» или «сладкое»).
В лексическом семантическом тезаурусе SentiWordNet [Esuli,
Sebastiani, 2006] представлены результаты работы по автоматической разметке синсетов WordNet. Наряду с весами для положительной и отрицательной эмоциональных составляющих, приписанных лексике, в нем есть
также индекс для нейтральности, или объективности. Последняя оценка
вычисляется на основании первых двух по следующей формуле:
·»u( ) = 1 − DA7 ( ) + ¼•%( )E,
где s — слово.
Как видно из этой формулы, в сумме три индекса равны 1.
Подобная работа ведется также в рамках проекта RussNet [Дегтева,
Азарова 2013], который представляет собой электронный тезаурус типа
WordNet для русского языка.
В тезаурусе WordNet-Affect [Strapparava, Valitutti 2004] наряду с метками, описывающими эмоции (такими как «физическое состояние», «настроение», «поведение», «отношение», «чувство» и др.), синсетам вруч-
Глава 11. Анализ тональности
255
ную были приписаны валентности (позитивная, негативная, неоднозначная и нейтральная). Также синсетам были сопоставлены так называемые
эмоциональные категории: «радость», «страх», «гнев», «печаль», «отвращение» и «удивление». Синсеты этого тезауруса переведены с английского языка на русский и румынский [Sokolova, Bobicev 2009].
3.2. Подход с использованием машинного обучения
3.2.1. Метод, основанный на применении машинного обучения
с учителем
При обучении с учителем алгоритм классификации тренируется на
основе обучающей выборки. Эту выборку нужно собрать и разметить.
Рассмотрим отдельно каждую из двух этих операций.
Документы могут содержать разметку, которая была выполнена самим автором (например, наряду с написанным отзывом автор присвоил
рейтинг товару). Так же документам могут быть присвоены оценки другими людьми. Желательно, чтобы оценку тексту проставляло несколько
человек, так как эксперты могут по-разному воспринимать высказывание.
Например, создание тонального словаря в НИУ «Высшая школа экономики» выглядит следующим образом. Любой желающий может зайти на сайт
проекта [Linis Crowd] и принять участие в его разработке. Необходимо
оценить текст и определенные слова, которые в нем встретились, с точки
зрения их эмоциональной окраски по пятибалльной шкале от –2 до +2.
После данные поступают для проверки лингвистам, которые анализируют
полученные результаты и проверяют, добросовестно ли пользователи расставляли оценки, нажимая на кнопки с соответствующими баллами (дело
в том, что авторы проекта пообещали денежные призы тем людям, кто
разметит наибольшее число текстов и слов).
Каждый такой размеченный текст представляет собой пару — вектор
признаков текста и приписанную ему тональность. Под вектором признаков понимается представление текста как набора терминов (слов и словосочетаний) с соответствующими им весами. На основе данной выборки
строится статистический классификатор, который используется для определения тональности новой коллекции документов.
3.2.2. Метод, основанный на применении машинного обучения
без учителя
При этом подходе в используемой для тренировки обучающей выборке неизвестны присвоенные документам тональности. Наибольший вес
при этом подходе получают термины, которые наиболее часто встречаются в данном тексте, но при этом присутствуют только в ограниченном ко-
256
Часть II. Направления
личестве текстов всего множества [Turney 2002]. Таким образом, данные
слова могут отражать тональность определенных текстов и, следовательно, на их основе можно сделать вывод о тональности этих документов.
4. Как это выглядит на практике
Уже сейчас доступны программы, благодаря которым можно увидеть,
как происходит определение тональности текста.
В Стенфордском университете был предложен алгоритм, который
предполагает использование нейронных сетей [Socher, Perelygin, Wu et al.
2013]. Работа программы основана на следующем. Для каждого предложения строится синтаксическое дерево с оценкой тональности всех входящих в него слов (см. рис. 1). Далее на основе весов слов высчитывается
общий вес словосочетаний и предложений. Данная модель была «натренирована» на 11855 предложениях, взятых из отзывов о фильмах. Авторы
демонстрируют, что предложенный алгоритм успешно распознает конструкции с отрицанием, как в позитивно, так и негативно окрашенных предложениях, уверенно определяя верную тональность.
Рис. 1. Пример размеченных предложений на основе нейронных сетей
На схеме (рис. 1) приведен пример разбора предложения «Qualities
that were once amusing are becoming irritating» (рус. «Качества, которые
когда-то забавляли, начинают раздражать»). Оттенками синего отмечены
слова, получившие положительную оценку (qualities, amusing, becoming),
Глава 11. Анализ тональности
257
оттенками красного обозначены слова с отрицательной оценкой
(irritating).
На сайте уже упомянутых разработчиков из Стенфорда представлены
более 9000 размеченных предложений [Stanford Sentiment Treebank], по
которым можно вести расширенный поиск. Пользователь может задавать
слова, длину предложений, веса оценочных слов (в интервале от 1 до 25,
где 25 — максимальная оценка для положительно окрашенной лексики).
Также в режиме онлайн возможно построение дерева и приписывание
тональности произвольному предложению [Stanford Live Demo]. Разработчики предлагают принять участие в разметке предложений, корректируя уже приписанные оценки.
Еще одной системой, позволяющей узнать тональность для текста,
является программа SentiStrength [Thelwall 2010], алгоритм которой использует словарь эмотивной лексики и дополнительную лингвистическую
информацию для автоматического распознавания эмоциональной окраски
в коротких текстах на английском языке (система также адаптирована для
русского языка). Для каждого текста результатом является две оценки по
пятибалльной шкале от 1 до 5. Например, нейтральный текст получит
оценку [1, –1], в то время как оценка [5, –2] будет означать, что в тексте
выражается сильно позитивное и умеренно негативное отношение. Разработчиками используются две шкалы, так как в текст может быть одновременно окрашен и положительно, и отрицательно. При этом целью является распознать эти типы тональности, а не определить общую полярность
текста.
Программа LIWC [Linguistic Inquiry and Word Count] позволяет провести анализ текстов, в том числе по их эмоциональной окраске, подсчитывая количество слов, принадлежащих к разным категориям. Полученные результаты можно сравнить со средними значениями для разных типов текстов (твиты, личные письма, официальная корреспонденция и другие).
На сайте [Sentiment 140] пользователи могут узнать, положительно
или отрицательно оценивается тот иной продукт на основе проанализированных сообщений Твиттера.
5. Оценка качества работы алгоритмов
Как оценивается качество анализа тональности? Для этого используются хорошо известные метрики полноты, точности и f-меры, которые
применяются в информационном поиске. Полнота определяется как отношение верно приписанных тональностей (т. е. тех, что совпали с оценкой эксперта) к общему количеству тональностей (приписанных и не при-
258
Часть II. Направления
писанных). Точность — это отношение верно определенных тональностей
ко всем определенным системой тональностям. F-мера представляет собой
гармоническое среднее полноты и точности и вычисляется как отношение
их удвоенного произведения к их сумме.
При оценке качества работы систем сентиментного анализа формируется так называемый «золотой стандарт» из размеченных и оцениваемых
экспертами текстов. Методы и приемы, используемые при подготовке «золотого стандарта», описаны в статье [Wiebe, Bruce, O’Hara].
В мире проводятся соревнования по тестированию систем в области
обработки естественного языка. На протяжении последних нескольких лет
в рамках семинара РОМИП также проходит SentiRuEval — конкурс по
анализу тональности в текстах на русском языке. По сложившейся традиции, участники представляют результаты работы своих систем на международной конференции по компьютерной лингвистике «Диалог». В качестве материала для исследования участникам предлагают отзывы пользователей, а также новостные сообщения и твиты. Так, в 2015 году были
сформулированы два задания [Лукашевич, Блинов и др. 2015]. Первое заключалось в аспектно-ориентированном анализе отзывов о ресторанах и
автомобилях. Необходимо было найти слова и выражения, обозначающие
важные характеристики объектов (т. е. аспекты), и классифицировать их
по тональности и обобщенным категориям. Во втором задании нужно было проанализировать влияние твитов на репутацию заданных компаний.
Системы автоматического анализа тональностей активно развиваются, и в ближайшем будущем можно ждать новых решений, позволяющих
оценить, насколько позитивно воспринимается тот или иной товар, деятель или явление.
Литература
Знакомство с исследованиями в области сентиментого анализа можно
начать с работ [Bing Liu; Pang, Lee]. Работающие системы автоматического определения тональности, ориентированные на материал русского языка, представлены в материалах соревнования SetniRuEval, а также в отдельных статьях, например, [Азарова, Гордеев, Дёгтева; Паничева; Проноза, Ягунова].
Bing Liu, Sentiment Analysis and Subjectivity // Handbook of Natural Language Processing, 2nd Edition. Editors: Nitin Indurkhya, Fred J. Damerau. Chapman and
Hall/CRC, 2010.
Cambria E., Havasi C., Hussain A. SenticNet 2: A semantic and affective resource for
opinion mining and sentiment analysis. In: AAAI FLAIRS, Marco Island, 2012.
P. 202–207.
Глава 11. Анализ тональности
259
Esuli A. and Sebastiani F. SentiWordNet: A Publicly Available Lexical Resource for
Opinion Mining. In: Proceedings of the International Conference on Language Resources and Evaluation. Genoa, Italy, 2006. P. 417−422.
Mohammad S. M., Kiritchenko S., Zhu X. NRC-Canada: Building the State-of-the-Art in
Sentiment Analysis of Tweets. In Proceedings of the seventh international workshop on Semantic Evaluation Exercises (SemEval-2013), June 2013, Atlanta, USA
2013.
http://www.saifmohammad.com/WebDocs/sentimentMKZ.pdf (электронный ресурс).
Дата обращения: 15.08.2015.
Pang B., Lee L. Opinion mining and sentiment analysis // Foundations and Trends in
Information Retrieval 2(1–2), 2008. P. 1–135.
Pang B., Lee L., Vaithyanathan S. Thumbs up? Sentiment Classification Using Machine
Learning Techniques. In: Proceedings of the EMNLP 2002. P. 79–86.
SentiStrength http://sentistrength.wlv.ac.uk. Дата обращения: 15.08.2015
Socher R., Perelygin A., Wu J., Chuang J., Manning Ch., Ng A. and Potts Ch. Recursive
Deep Models for Semantic Compositionality Over a Sentiment Treebank. In: Proceedings of the Conference on Empirical Methods in Natural Language Processing
2013. P. 1631–1642.
Sokolova M., Bobicev V. Classification of Emotion Words in Russian and Romanian
Languages. In: Proceedings of RANLP-2009 conference, Borovets, Bulgaria,
2009. P. 415–419.
Steinberger J., Lenkova P., Ebrahim M., Ehrmann M., Hurriyetogly A., Kabadjov M.,
Steinberger R., Tanev H., Zavarella V. and Vazquez S. Creating Sentiment Dictionaries via Triangulation. In: Proceedings of the 2nd Workshop on Computational
Approaches to Subjectivity and Sentiment Analysis, ACL-HLT 2011. P. 28–36.
Strapparava C., Valitutti A. Wordnet-affect: an affective extension of wordnet. In: Proceedings of the 4th International Conference on Language Resources and Evaluation. Lisbon, 2004.
Thelwall M., Buckley K., Paltoglou, Cai G., D., Kappas A. Sentiment strength detection
in short informal text. Journal of the American Society for Information Science and
Technology, 61(12), 2010. P. 2544–2558.
Turney P. Thumbs up or thumbs down? Semantic orientation applied to unsupervised
classification of reviews. In Proceedings of ACL-02, 40th Annual Meeting of the
Association for Computational Linguistics, Association for Computational Linguistics, 2002. P. 417–424.
Wiebe J., Bruce R. F., O’Hara T. P. Development and use of a gold standard data set for
subjectivity classifications // Proceedings of the Association for Computational
Linguistics (ACL), 1999. P. 246–253.
Азарова И. В., Гордеев C. C., Дёгтева А. В. Использование нейронной сети для
автоматического определения тональности отзывов // Материалы XLIII Международной филологической конференции, 2014. СПб., 2014. С. 3–9.
Дегтева А. В., Азарова И. В. Структура эмоционально-экспрессивного компонента
в тезаурусе русского языка RussNet // Компьютерная лингвистика и интеллектуальные технологии: По материалам ежегодной Международной конференции «Диалог» (Бекасово, 29 мая — 2 июня 2013 г.). Вып. 12 (19). М.: Изд-во
РГГУ, 2013. С. 200–211.
260
Часть II. Направления
Лукашевич Н. В., Блинов П. Д., Котельников Е. В., Рубцова Ю. В., Иванов В. В.,
Тутубалина Е. SentiRuEval: Testing Object-Oriented Sentiment Analysis Systems
in Russian // Компьютерная лингвистика и интеллектуальные технологии: По
материалам ежегодной Международной конференции «Диалог» (Москва, 27–
30 мая 2015 г.). Вып. 14 (21). М.: Изд-во РГГУ, 2015.
http://www.dialog-21.ru/digests/dialog2015/materials/pdf/LoukachevitchNVetal.pdf
(электронный ресурс). Дата обращения: 15.08.2015.
Паничева П. В. Система сентиментного анализа ATEX, основанная на правилах,
при обработке текстов различных тематик // Компьютерная лингвистика и
интеллектуальные технологии: По материалам ежегодной Международной
конференции «Диалог» (Бекасово, 29 мая — 2 июня 2013 г.). Вып. 12 (19). М.:
Изд-во РГГУ, 2013.
Проноза Е. В., Ягунова Е. В. Аспектный анализ отзывов о ресторанах для рекомендательных систем е-туризма // Сборник научных статей XV Объединенной
конференции «Интернет и современное общество» IMS-2015, СанктПетербург, 23–25 июня 2015 г. СПб.: ИТМО, 2015. С. 130–141.
Электронные ресурсы
Linguistic Inquiry and Word Count http://liwc.wpengine.com
http://linis-crowd.org/ — общедоступный тональный словарь ВШЭ Linis Crowd и
краудсорсинговая платформа для его создания
Система Webometric Analyst для сбора сообщений из Твитера —
http://lexiurl.wlv.ac.uk/searcher/installingWebometricAnalyst.htm и описание его
работы (для сбора сообщений на русском необходимо установить параметр
lang=ru) — http://lexiurl.wlv.ac.uk/searcher/twitter.htm
https://linguistics.stonybrook.edu/students/varvara.magomedova — система LinguiPingui, умеющая собирать примеры из самых разных блогов и сервисов
GATE Twitter PoS tagger https://gate.ac.uk/wiki/twitter-postagger.html
NRC Word-Emotion Association Lexicon http://saifmohammad.com/WebPages/NRCEmotion-Lexicon.htm
Sentiment 140 http://sentiment140.com
SentiStrength http://sentistrength.wlv.ac.uk/
Stanford Live Demo http://nlp.stanford.edu:8080/sentiment/rntnDemo.html
Stanford Sentiment Treebank http://nlp.stanford.edu/sentiment/index.html
Tweet NLP http://www.cs.cmu.edu/~ark/TweetNLP/
Материалы SetniRuEval
http://www.dialog-21.ru/evaluation/2012/tonality/
http://www.dialog-21.ru/evaluation/2013/tonality/
http://www.dialog-21.ru/evaluation/2015/tonality/
Глава 12
Компьютерная текстология
Авторы: Елена Леонидовна Алексеева, выпускница 1978 года,
доцент кафедры математической лингвистики СПбГУ;
Дина Марковна Миронова, выпускница 1997 года, старший преподаватель кафедры математической лингвистики СПбГУ
1. Что такое текстология
Текстология — это раздел литературоведения, который изучает историю древних текстов и готовит их публикацию с учетом тех различий,
которые существуют в разных версиях одного текста.
Письменный текст при копировании всегда подвергается изменениям.
В рукописном тексте изменения могут возникать в каждом экземпляре, а в
печатном — в каждом новом издании. Текстолог не просто изучает историю изменения текста одного произведения, но ищет причины этих изменений и те источники (рукописи или печатные издания с изучаемым текстом), в которых лучше всего сохранился первоначальный, авторский вариант. Итогом работы текстолога становится научное издание текста, где
приводятся данные из разных источников и объясняются особенности
различных вариантов чтений. Так перед читателем — историком, филологом или просто любознательным человеком — встает текст, не закрепленный в одном источнике, а живой, меняющийся на протяжении столетий.
Чтения, приведенные как варианты изданного текста, называют критическим аппаратом, а издание текста с критическим аппаратом — критическим изданием. Всю совокупность изучаемых рукописей с одним
текстом, называют рукописной традицией.
Рукописи, которые сохранились сегодня, — это потомки первых, уже
утраченных рукописей текста. С древними рукописными традициями работать сложнее, чем с печатными текстами, так как все рукописи отличаются между собой, а авторский оригинал (автограф) обычно утрачен.
Различия возникают, потому что при переписывании текстов в рукописях
неизбежно появляются ошибки — случайные или намеренные изменения
текста антиграфа — той рукописи, с которой непосредственно списывался текст. Это могли быть механические пропуски или повторы, искажения,
вызванные непониманием или рассеянностью или осознанные редакцион-
262
Часть II. Направления
ные вторжения, направленные на прояснение смысла и изменение стилистики.
После распространения книгопечатания тип отличий в текстах меняется: появляется авторская правка (например, автор со временем решил
внести изменения в текст, поэтому тексты первого и последующих изданий отличаются), вмешательство редактора или цензуры, возникают издания по тем рукописям, в которые внесли изменения переписчики и т. д.
Текстолог сравнивает прижизненные издания, рукописи, дневники —
все данные, которые могут прояснить, какой текст предпочитал автор,
вносил ли он исправления, усовершенствуя свое произведение или они
появились без его участия [Лихачев 2001].
2. Этапы текстологического исследования
рукописной традиции
Текстолог стремится найти реально существующую рукопись, к которой можно возвести всю традицию. Такая рукопись называется архетипом. Если среди сохранившихся рукописей невозможно точно определить
архетип, то речь идет о поиске предполагаемого или гипотетического
архетипа. Текст такой рукописи ближе всего к тексту оригинала (автографа).
К исследованию рукописной традиции нужно привлекать все имеющиеся источники. При этом обработку материала по всем источникам
удобнее проводить с помощью специальных программ.
Рукописные тексты можно разделить на два типа: литературные памятники и библейские тексты. Один литературный памятник обычно доходит до нас в нескольких экземплярах, максимум в нескольких десятках
экземпляров. А количество библейских текстов исчисляется тысячами.
Поэтому и возможности исследования таких разных традиций несколько
отличаются.
Работа текстолога начинается с выбора базовой рукописи с хорошо
сохранившимся текстом. Эта рукопись должна, прежде всего, обладать
полнотой, т. е. содержать весь текст, а не его фрагмент, по времени написания находиться по возможности близко ко времени создания текста,
быть свободной от очевидных редакционных вторжений.
Далее следуют три этапа: коллация рукописей, классификация рукописей и подготовка научного издания текста. Коллация — это сравнение
рукописей. Различия в одном и том же месте в тексте произведения называют разночтениями, а само место в тексте, где две и более рукописи
имеют чтение, отличающееся от остальных рукописей — узлом разночтений. Некоторая рукопись берется за основу, все остальные рукописи
Глава 12. Компьютерная текстология
263
сравниваются с ней, выписываются только разночтения. Таким образом,
мы получаем список разночтений для каждой рукописи с выбранной нами
рукописью. После этого разночтения объединяются в один список: для
каждого чтения базовой рукописи ищем все варианты в коллациях и формируем узел разночтений [Алексеев 1999].
Например, в базовой рукописи А читаем: свидетельствуют о мне, в
рукописи В — послушествуют о мне, в рукописи же С этого фрагмента
текста вовсе нет. На этом отрезке формируется два узла разночтений — с
пропуском текста и с заменой:
1) свидетельствуют о мне (рукопись А): пропуск текста (рукопись С)
2) свидетельствуют (рукопись А): послушествуют (рукопись В)
Как видно, перед нами три варианта текста в одном и том же месте,
но узлов разночтения предлагается выделить два, а не один, так как пропуск текста и лексическая замена — это разночтения разного рода и они
могут иметь разное значение для исследования.
Если в каком-то узле разночтений все рукописи кроме одной имеют
одинаковое чтение, то такой узел называется индивидуальным и не учитывается. Он характеризует только одну рукопись, в которой данное чтение встретилось, и не дает новой информации об отношениях этой рукописи с другими.
Коллации можно делать вручную, выписывая разночтения или занося
их в компьютер. Можно вводить сразу весь текст в компьютер, а коллации
делать уже автоматически. Оба способа имеют как плюсы, так и ограничения.
Начнем с более заманчивого способа — автоматической коллации.
Основную сложность представляет ввод текста. Это очень трудоемкая
работа, которая требует тщательной проверки. Ошибки при вводе, как и
ошибки при переписывании, породят новые разночтения, и в результате
дальнейшие труды текстолога могут привести к ложному результату. Работа с электронной текстовой базой открывает огромные возможности для
сравнения текстов, поэтому при работе с небольшой рукописной традицией, состоящей из нескольких источников, разумно ввести в компьютер все
тексты. Однако в случае такой объемной традиции, как, например, Славянское Евангелие, насчитывающей несколько тысяч источников, вряд ли
возможно найти ресурсы для ввода всего массива текста.
Большое количество источников порождает еще одну проблему —
сравнивать ли все тексты или достаточно ограничиться только фрагментом рукописи. Для классификации тысяч источников можно выбрать небольшой отрывок текста, на нем сравнить все рукописи, а в дальнейшем
при подготовке издания прибегать к полным текстам избранных рукописей. Фрагмент должен включать в себя разнообразные синтаксические и
грамматические конструкции и богатую лексику. Желательно выбрать от-
264
Часть II. Направления
рывок из начала текста, так как скорее всего начало текста писец будет
переписывать в начале работы, и допустит меньше ошибок, которые могут
возникнуть вследствие усталости. Однако нужно учитывать и то, что иногда писец менял антиграф при работе над одной рукописью. Поэтому для
большей достоверности лучше выбирать отрывки для сравнения хотя бы
из двух частей текста.
Следующий после коллации этап в работе текстолога — классификация рукописей. Часто она осложняется присутствием в традиции контаминации, то есть смешением текстов двух или нескольких рукописей в
одной. Контаминация возникает, когда при копировании или редактировании текста писец пользовался несколькими антиграфами. Для библейских
текстов это было особенно актуально, так как писец стремился безошибочно передать текст автографа и мог привлечь для переписывания несколько антиграфов, чтобы выявить и устранить ошибки.
Признаком контаминированной традиции являются слитные чтения
или конфляции. Это объединение двух разновидностей чтений в одно.
Например, если в некоторых рукописях употребляется выражение на двор,
в других — внутрь двора, а в-третьих — внутрь на двор, то последнем
случае мы имеем конфляцию, а значит, перед нами контаминированный
текст. Если при переписывании какого-либо текста систематически использовалось несколько антиграфов, что случалось нередко в допечатную
эпоху, в этом случае возникала контролируемая рукописная традиция.
Именно так переписывались общественно значимые богослужебные и
библейские тексты.
Для контролируемой традиции уже невозможно определить, какая рукопись — антиграф, а какая списана с нее (апограф). Отношения между
рукописями слишком запутаны, поэтому практически не встречаются генеалогически значимые узлы разночтений, то есть узлы, показывающие
направление изменения текста. Например, в рукописи А мы видим: тех
государь пожаловал даде им грады и власти великия и села во одержание,
а в рукописи В — тех государь пожаловал грады и села. Что у нас здесь:
сокращение текста в рукописи В или его распространение в рукописи А?
На самом деле очевидно, что в рукописи В писец сокращал текст: он убрал глагол даде (= дал), но существительные грады и села остались в винительном падеже. Этот узел генеалогически важен, потому что показывает, что рукопись В восходит к А, но не наоборот.
В отличие от генеалогически значимых узлов разночтений, текстологически значимые — это такие узлы, которые характеризуют группу рукописей или редакцию текста, то есть являются общими для всех рукописей, относящихся к данной группе. Разночтения, текстологически значимые для данной группы рукописей, называют приметами группы.
Глава 12. Компьютерная текстология
265
В неконтролируемых традициях, когда у каждой рукописи только
один оригинал (антиграф), достаточно велика вероятность выявления генеалогически значимых узлов разночтений. В контролируемой же традиции, такой, как славянское Евангелие, возможно говорить лишь о том, характеризуют ли узлы некоторого типа отдельные группы рукописей, то
есть являются ли они текстологически значимыми.
Рукописи классифицируются на основании разночтений. Для текстологов, занимающихся небольшой неконтаминированной традицией, классификация — это точное установление связей между всеми рукописями.
Такие связи удобнее всего представить в виде дерева (или стеммы), где
конечные узлы — это имеющиеся в наличии рукописи. Дерево может
быть как ориентированным, так и неориентированным. На рис. 1 показано неориентированное дерево, на рис. 2, 3 — различные варианты его
ориентации, показывающее, как развивалась традиция по отношению к
архетипу. В неориентированном дереве узлы соединены ребрами, которые
не задают направления, а в ориентированном дереве узлы соединены дугами с заданным направлением, и есть одна вершина, в которую не входит
ни одна дуга.
Рис. 1. Неориентированное дерево. amj — конечные узлы, которым соответствуют
сохранившиеся рукописи; KmP — промежуточные, узлы, которым соответствуют
гипотетические, не дошедшие до нас рукописи
266
Часть II. Направления
Рис. 2. Пример ориентированного дерева, где O — вершина дерева, гипотетический
архетип
Рис. 3. Пример ориентированного дерева, где K — вершина дерева, гипотетический
архетип
В контаминированной традиции отношения между рукописями рассматривать невозможно, мы получим клубок, в котором все рукописи связаны со всеми.
Рис. 4. Пример связи между рукописями в контаминированной традиции
Глава 12. Компьютерная текстология
267
Однако можно рассмотреть отношения нескольких групп рукописей.
В каждой группе рукописи имеют очень близкий текст, хотя и не совпадают полностью. Появились такие группы не случайно, в основном в результате массовой редакторской правки, и текстолог может определить
основных представителей этих групп, их ядро, выделить их характерные
чтения. Имея характерные чтения группы, ее приметы, несложно предположить, в какую из групп войдет новая неисследованная рукопись.
3. Компьютер в работе текстолога
3.1. Автоматическое сравнение рукописей
Компьютерная текстология зародилась как дисциплина на рубеже 70–
80-х гг. XX в., когда некоторые этапы обработки большого количества материала стали проводиться не вручную, а с помощью компьютеров.
Для автоматического сравнения рукописей английский ученый Питер
Робинсон разработал программу Collate [Robinson 1989]. С ее помощью
можно также выполнять статистическую обработку результатов сравнений
и подготовить критическое издание текста. Работу над ней он начал в середине 1980-х гг., в ходе исследования 44 рукописей двух древнеисландских песен. Программа непрерывно дорабатывалась и совершенствовалась и была доведена до коммерческого продукта.
На первом этапе обработки рукописей их текст вводится в компьютер.
Для дальнейшей работы необходимо нормализовать их орфографию, то
есть привести различные варианты написания одного и того же слова к
одному варианту. Нормализация осуществляется на базе авторитетного
словаря соответствующего древнего языка. Нормализация позволяет также упростить процесс ввода большого числа рукописей: после введения
базового текста каждый следующий получается через его корректуру, т. е.
только введение разночтений.
Создание списка узлов разночтений после ручной коллации также
происходит вручную. Но программа может формировать узлы разночтений для тех текстов, которые введенны в базу. Компьютер сопоставляет
введенные рукописи и строит узлы разночтений. Однако ученые, работавшие с первым вариантом программы Collate, обнаружили, что компьютер нередко неправильно проводит границы между узлами, поэтому в более поздней версии программы Collate был предусмотрен диалоговый режим формирования узлов, позволяющий человеку корректировать работу
компьютера.
При помощи программы Collate в 2007 г. на базе Бирмингемского
университета было полностью подготовлено издание византийского текста
268
Часть II. Направления
Евангелия от Иоанна (The Gospel According to John in the Byzantine
Tradition) по 70 источникам в двух вариантах, печатном и электронном.
Электронный вариант по сравнению с книгой обладает рядом дополнительных возможностей: он позволяет посмотреть текст каждой рукописи
целиком, узлы разночтений расположены списком, а не идут подряд, как в
книге, они снабжены гиперссылками к текстам рукописей и т. п.
Теоретически количество обрабатываемых программой рукописей и
их объем не ограничиваются, но реально даже более поздний вариант мог
обработать не более 200 рукописей. Поэтому, например, невозможно было
использовать программу Collate для сравнения 650 рукописей славянского
Евангелия от Иоанна и около 600 рукописей Евангелия от Матфея в рамках Славянского проекта, выполнявшегося в СПбГУ [Алексеев 1998].
3.2. Компьютерная классификация рукописей
Как только перед текстологами встал вопрос об анализе одновременно десятков и сотен рукописей, понадобился математический метод, позволяющий формализовать процедуру установления отношений между
таким большим числом объектов. В зависимости от целей исследования
существуют два основных направления для поисков метода — кладистика и кластерный анализ. Кладистика — (от др.-греч. κλάδος — ветвь) —
направление биологической систематики, разрабатывающей принципы
классификации живых организмов, в котором при классификации учитываются только генеалогически важные признаки. Второй метод классификации — вариации кластерного анализа (от англ. cluster — пучок, группа
связанных между собой объектов), когда объекты группируются по некоторым признакам сходства или различия.
Результатом классификации объектов при помощи кластерного анализа является некоторое количество групп, внутри которых объекты тесно
связаны друг с другом. У каждой группы есть центр и периферия, границы
между группами могут быть размыты. Кластерный анализ можно применять к рукописной традиции, в которой присутствует контаминация, так
как генеалогические отношения между отдельными рукописями не устанавливаются. Различные текстологи используют различные коэффициенты близости или расстояния между объектами, отталкиваясь от базовой
формулы — отношения числа совпадающих узлов в данной паре рукописей к общему числу узлов разночтений.
Впервые кластерный анализ применительно к рукописям был использован двумя американскими текстологами — Эрнестом Колвеллом и Эрнестом Тьюном в 1963 г. для греческой новозаветной традиции [Colwell
1969]. До них при изучении рукописной традиции все рукописи поочередно сравнивались с неким эталоном и далее на основании общности отли-
Глава 12. Компьютерная текстология
269
чий от эталона объединялись в группы. Колвелл и Тьюн предложили отказаться от эталона, сравнивать все рукописи попарно между собой и оценивать их близость по общему тексту, а не по различиям.
Идеи Э. Колвелла и Э. Тьюна были развиты российским ученым
А. А. Алексеевым в конце 1980-х — начале 1990-х гг. для первичной обработки рукописей славянского Евангелия [Алексеев 1999].
Метод А. А. Алексеева основан на том, чтобы обнаружить, какие рукописи ближе всего друг к другу, то есть во всей совокупности традиции
выявить несколько групп, в которых текст максимально идентичен. Поскольку рукописная традиция Евангелия контаминированная, компьютер
позволяет быстро разбить на группы любое количество рукописей. Только
опытный текстолог может грамотно выявить разночтения, определить
границы между ними. Но когда узлы разночтений готовы, вручную вычислить степень близости между тысячами рукописей уже нереалистично,
для этой задачи и используется программное обеспечение. Создание нужной программы может взять на себя текстолог, владеющий навыками программирования.
Алгоритм кластеризации несложен: после вычисления степени сходства между всеми парами рукописей и построения исходной матрицы, где
для каждой пары рукописей указан процент сходства, формируются кластеры рукописей, начиная с пары с самым высоким процентом сходства и
двигаясь дальше строго в порядке убывания процента сходства. Процесс
кластеризации заканчивается, когда все рукописи объединятся в один кластер. В результате мы получаем перестроенную матрицу, в которой рукописи идут в том порядке, в каком они объединялись в кластеры. Двигаясь
вниз по главной диагонали матрицы (см. рис. 5), мы обнаруживаем границы элементарных кластеров: внутри кластера процент сходства вдоль
главной диагонали убывает, увеличение процента сходства указывает на
начало нового кластера. Элементарные кластеры следуют в матрице в том
порядке, в каком они объединялись в более крупные кластеры в процессе
кластеризации.
270
Часть II. Направления
Рис. 5. Результат кластерного анализа (фрагмент итоговой матрицы). B, OB, A, Gl,
Me, Tp, VLs, Trs, Mss, Jus — обозначения (сиглы) рукописей. Полученные кластеры:
B, OB, A; Gl, Me, Tp, VLs; Trs, Mss, Jus
Немного позже Э. Колвелла и Э. Тюна, в 1970-е гг., голландский текстолог Антоний Деес разработал метод для построения дерева отношений
между рукописями [Dees 1975]. В отличие от предшественников — приверженцев представления рукописной традиции в виде ориентированного
дерева — он не ставил задачи обязательного построения ориентированного дерева и обнаружения архетипа. Он предложил начать с построения
неориентированного дерева, в котором все конечные узлы — реальные
рукописи, а промежуточные узлы — гипотетические рукописи (те, которых нет в наличии, предполагаемые фиктивные предки реальных рукописей). После построения такого дерева текстолог может строить ориентированное дерево, то есть искать гипотетический архетип, предков и потомков среди существующих и гипотетических рукописей.
В 90-е гг. голландский математик Эверт Ваттель (Evert Wattel) в сотрудничестве с текстологами развил метод А. Дееса, формально его описал, сделал ряд доработок и усовершенствований [Wattel 2004]. В основе
метода Э. Ваттеля также лежит кластерный анализ. Этот метод позволяет
строить стеммы для любой рукописной традиции, как библейской, так и
авторской, с любым количеством рукописей. Формально программа строит дерево не более чем для 250 рукописей, но практически идентичные
Глава 12. Компьютерная текстология
271
рукописи можно представить как одну, что дает возможность построить
дерево для гораздо большего числа источников.
Стемма строится следующим образом. Э. Ваттель вычисляет коэффициент расстояния для каждой пары рукописей: чем он меньше, тем две
рукописи ближе друг к другу, и тем скорее они окажутся потомками одной
и той же гипотетической рукописи.
Рис. 6a. Таблица коэффициентов расстояния между рукописями. Рукописи b и f
первыми объединяются и возводятся к гипотетической рукописи λ
Рис. 6b. Таблица коэффициентов расстояния между рукописями, в которой вместо a
и b подставлена гипотетическая рукопись λ, рукопись e присоединяется к b и f и
возводится к гипотетической рукописи µ
272
Часть II. Направления
Рис. 6c. Таблица коэффициентов расстояния между рукописями, в которой вместо e
и λ подставлена гипотетическая рукопись µ. Рукописи a и c образуют новую пару,
восходят к гипотетической рукописи ρ
Рис. 6d. Таблица коэффициентов расстояния между рукописями, в которой вместо a
и c подставлена гипотетическая рукопись ρ. Рукопись d и гипотетические рукописи ρ
и λ возводятся к гипотетическому архетипу Θ. Построение дерева завершено
Рассмотрим рис. 6a. Слева — таблица, показывающая коэффициент
расстояния между рукописями. Самое маленькое различие — между рукописями b и f. Вводим для них гипотетический антиграф λ и соединяем с
ним b и f ребрами. На место b и f в таблицу помещается гипотетическая
рукопись λ. Для нее коэффициент расстояния от других рукописей вычисляется как среднее арифметическое коэффициентов расстояния для b и f.
На рис. 6b видно, что следующий наименьший коэффициент расстояния
Глава 12. Компьютерная текстология
273
— между рукописями λ и e. Вводим новую гипотетическую промежуточную рукопись µ и строим ребра, соединяющие λ и e с µ.
Почему приходится вводить в стемму гипотетическую рукопись? Допустим, в рукописях b и f текст очень близок, но нельзя утверждать, что
одна из рукописей списана с другой. Однако можно предположить, что у
них был общий антиграф — несохранившаяся гипотетическая рукопись λ.
Построение дерева закончено, когда в него вошли все конечные рукописи (рис. 6d). Далее Э. Ваттель усовершенствует дерево, пытаясь, где это
возможно, объединять промежуточные гипотетические рукописи. Для этого оценивается математический вес каждого узла, при желании можно
задать и текстологический вес.
Если рассматривать дерево как способ представления Х групп (одна
ветвь — одна группа), то дерево с Х ветвями соответствует Х кластерам
Алексеева. Так, на рис. 6d мы можем выделить 3 кластера: ac, d, bfe. Соответственно, метод Дееса и Ваттеля, как и метод Алексеева, может использоваться для любой традиции, в том числе и контаминированной.
При кладистическом анализе необходимо в первую очередь выявить
генеалогически значимые узлы разночтений, в которых одно из чтений
первично. На основе только таких узлов строятся все возможные неориентированные деревья. Для каждого дерева вычисляется его длина — сумма
длин всех ветвей. При этом длина каждой ветви, соединяющей два соседних узла, представляется как число чтений, различных для этих узлов (рукописей). Из всех деревьев выбирается дерево с наименьшей длиной. Такой подход называется принципом экономии, или парсимонии. Это основное правило, лежащее в основе кладистического анализа. Согласно
этому принципу в процессе эволюции переход из одного состояния в другое должен произойти за минимальное количество шагов. На основе полученного дерева с наименьшей длиной строится ориентированное дерево
отношений между рукописями. Для подобной классификации в текстологии обычно используется готовое программное обеспечение, разработанное для биологов — программу PAUP [Salemans 2000].
Для контаминированной традиции невозможно выявить генеалогически важные узлы разночтений и, тем более, построить ориентированное
дерево. Однако, такой подход можно применять частично, учитывая все
узлы разночтения (приняв их по умолчанию за генеалогически важные) и
ограничиваясь построением неориентированного дерева. Кластеры близких между собою рукописей, принадлежащих к одной редакции, будут
соответствовать, как и в методе Дееса и Ваттеля, группе соседних конечных узлов, восходящих к одному антиграфу.
Ограничения методов, требующих построения дерева, связаны с высокими требованиями к памяти и скорости работы компьютера. В виде
таблицы данные представлять удобнее и количество обрабатываемых ру-
274
Часть II. Направления
кописей неограниченно. Все три метода были применены к 525 рукописям
Евангелия от Матфея славянской традиции и результаты разбиения на
группы совпали. Однако, при построении дерева приходилось сокращать
количество рукописей до 250, объединяя практически идентичные рукописи.
Глубже изучая текст рукописной традиции, текстолог решает множество задач: какой фрагмент текста выбрать для коллаций, как точнее провести границу между узлами разночтений, приписывать ли вес различным
узлам разночтения. В ходе работы над классификацией могут быть обнаружены поздние рукописи с древним текстом. После выявления примет
редакции — той группы узлов, которая характеризует одну редакцию, —
легко определить по приметам, к каким уже существующим редакциям
относится та или иная новая рукопись.
После завершения этапа классификации можно перейти к основной
задаче текстологии — изданию текста. Научное издание с критическим
аппаратом раскрывает историю текста, делает доступными огромное количество источников другим исследователям. Подготавливая такое издание, текстолог не принимает решения о первичности некоторых чтений
или рукописей, он дает варианты, предоставляя читателю свободу в дальнейшей работе с ними. В критическом, научном издании текст и его история оживают перед читателем, и он становится участником увлекательного исследования.
Литератураvi
Алексеев А. А. Текстология славянской Библии. СПб., 1999.
Лихачев Д. С. при участии А. А. Алексеева и А. Г. Боброва. Текстология (на
материале русской литературы X–XVII вв.). СПб., 2001.
Алексеев А. А. (ред.). Евангелие от Иоанна в славянской традиции / Изд. подгот.:
А. А. Алексеев, А. А. Пичхадзе, М. Б. Бабицкая, И. В. Азарова,
Е. Л. Алексеева, Е. И. Ванеева, А. М. Пентковский, В. А. Ромодановская,
Т. В. Ткачева. СПб., 1998.
Colwell E. C. Studies in Textual Criticism of the New Testament. Leiden, 1969.
Dees A. Sur une constellation de quatre manuscrits. // Melanges de linguistique et de
litterature offertes a Lein Geschiere. Amsterdam, 1975. P. 1–9.
Robinson P. The Collation and Textual Criticism of Icelandic Manuscripts (1): Collation
// Literary & Linguistic Computing. 1989, 4 (2). P. 99–105.
Salemans B. Building Stemmas with the Computer in a Cladistic, Neo-Lachamnian Way.
Nijmegen, 2000.
Wattel E. Constructing Initial Binary Trees in Stemmatology // Studies in Stemmatology
II. Ed. Reenen P.van, Mulken M. van. Amsterdam, 2004. P. 145–166.
Глава 13
Квантитативная лингвистика: что
можно сосчитать в языке и речи?
Кван ти тативн ая лин гви стик а
Автор: Илья Сергеевич Николаев, выпускник 1993 года, доцент
кафедры математической лингвистики СПбГУ
Математика пришла в лингвистику в середине ХХ века для решения
практических задач, но затем стала незаменимым инструментом лингвистических исследований. Сформировался и особый раздел лингвистики —
квантитативная лингвистика — прикладная и теоретическая дисциплина,
которая решает практические проблемы, связанные с использованием
конкретных человеческих языков, и одновременно позволяет открыть закономерности, присущие естественному языку в целом.
В этой главе мы коротко рассмотрим некоторые специфические направления прикладной лингвистики, которые основаны на методике количественного исследования языковых структур естественных языков и текстов на отдельных языках. В основном здесь используются методы математической статистики: в некоторых случаях — довольно сложные, а в
некоторых — достаточно простые. Мы не будем перегружать эту главу
формулами — все подробности читатели найдут в рекомендованной литературе. Здесь мы постараемся лишь в общих чертах описать несколько
важных аспектов квантитативной лингвистики.
1. Буквы и звуки: как определить, на каком
языке написан текст? — Дешифровка
Современные лингвисты рассматривают язык как системноструктурное образование, состоящее из элементов, связанных друг с другом определенными отношениями. Значащие единицы языка — прежде
всего, слова и части слов (морфемы) — являются знаками, состоящими из
экспонента и денотата. Экспонент — материальный носитель значения
(звуковой образ слова), денотат — понятие, связанное с данным экспонентом (значение слова). Экспонент и денотат связаны друг с другом, но эта
связь условная и произвольная. Так, в русском языке денотат «дерево»
связан с экспонентом дерево, а в английском с экспонентом tree.
276
Часть II. Направления
Элементы, из которых состоят экспоненты слов и морфем, называют
фонемами. Фонемы — это не знаки, а односторонние сущности, имеющие
только экспонент. Такие сущности называют фигурами. Число фонем в
каждом языке ограничено, но из этого конечного набора фонем можно
образовать бесконечное количество слов.
На подсчете экспонентов разнообразных единиц языка и их сочетаний основана квантитативная методика.
Рассмотрим минимальные элементы языка — фонемы. Очевидно, что
существуют определенные правила сочетания фонем в слова. Кроме того,
для записи звукового образа слова можно использовать символы естественного языка — транскрипцию — так же как буквы используются для
записи слов: /d’er’eva/ и /tri:/. Письменная запись слова есть некоторый
аналог транскрипции, только менее точный, поэтому существуют правила
орфографии и орфоэпии — правила записи звучащего слова и правила
чтения записанного слова.
Закономерности сочетаемости фонем в разных языках различаются, а
значит различаются и правила сочетаемости букв разных языков. Этот
принцип применяется в теории дешифровки и в методике определения
языка, на котором написан текст.
Зная частотность букв в разных языках, мы можем определить, на каком языке написан текст, если мы подсчитаем частотность букв в этом
тексте. Если язык известен и текст зашифрован простым способом, то
есть, каждая буква текста заменена на другой символ (букву, цифру, картинку), мы можем расшифровать этот текст, подсчитав частотность каждого символа и сравнив ее с частотностью букв в данном языке. Если язык
неизвестен, можно вначале по такой же методике попытаться определить,
какой это язык. Можно считать частотность не только отдельных букв и
символов, но и частотность сочетаний этих букв или символов (комбинации по два, три, четыре, пять и т. д.). В этом случае скорость и точность
дешифровки возрастет. Используя компьютеры, таким способом можно за
секунды определять язык, на котором написан текст. А затем использовать
более сложные алгоритмы исследования текста на уже известном языке.
Дешифровка любых буквенных шифров на современном компьютере
тоже не представляет особой сложности. Поэтому для современных систем шифрования (криптографии) используют не простые методы замены,
а сложные математические методы, которые поддаются дешифровке только с использованием таких же сложных математических методов (криптоанализ).
Тем не менее, в лингвистике проблема дешифровки остается актуальной по отношению к текстам на языках, которые нам неизвестны, на которых есть только письменные памятники, записанные неизвестным нам
письмом. Для дешифровки таких памятников недостаточно простой ста-
Глава 13. Квантитативная лингвистика
277
тистики. Необходимы знания о том, какие языковые структуры могут
встречаться, как могут быть устроены системы письма. Но и этой информации не всегда достаточно. Необходимы исторические сведения о людях,
которые создали эти тексты, о том, чем они занимались, с кем торговали и
воевали. Необходимо изучать письменные памятники соседних народов.
Часто имена правителей и названия городов служат ключом к дешифровке письменности, потому что они встречаются в документах соседних
народов, язык которых мы знаем. Следовательно, мы можем предположить, что они есть и в письменных памятниках, подлежащих дешифровке.
Таким образом французский востоковед Ж. Ф. Шампольон раскрыл тайну
египетских иероглифов. В ХХ веке была расшифрована слоговая критомикенская письменность и иероглифическая письменность Майя. Но еще
ждут расшифровки другие письменные памятники, например, надписи,
найденные на острове Пасхи.
Более подробно о дешифровке можно прочитать в [Савенкова 1996,
Сингх 2007].
2. Морфемы: как оценить сложность языка? —
Типология
В 50–60-е годы ХХ века американский ученый Джозеф Гринберг, анализируя классификацию типов языков, разработанную Эдвардом Сепиром,
попытался измерить сложность языков количественными методами. Он
предложил 10 типологических индексов, основанных на подсчете количества морфем и слов, и подсчитал эти индексы для некоторых языков
[Гринберг 1963]. Рассмотрим некоторые из них для пяти языков разных
типов.
1. Первый из них называется индексом синтеза (или синтетичности).
Он показывает, сколько в среднем морфем в одном слове данного языка, и
рассчитывается по формуле:
Syn = M/W, где M — количество морфем в тексте, а W — количество
слов в том же тексте.
2. Следующий — индекс деривации. Он показывает, насколько широко в данном языке используется словообразование при помощи морфем:
Der = D/W, где D — количество словообразовательных (деривационных) морфем в тексте, W — количество слов в том же тексте.
3. Индекс префиксации показывает, насколько часто в данном языке
используются префиксы (приставки):
Pref = P/W, где P — количество префиксов в тексте, W — количество
слов в том же тексте.
278
Часть II. Направления
4. Соответственно, индекс суффиксации показывает насколько часто
в данном языке используются суффиксы:
Suf = S/W, где S — количество суффиксов в тексте, W — количество
слов в том же тексте.
В табл. 1 можно увидеть, насколько сильно отличаются, например,
русский и английский язык по всем этим параметрам Русский более синтетический язык, а английский более аналитический. И насколько похожи русский и якутский, хотя русский язык флективный (фузионный)
— преимущественно использует многозначные словоизменительные морфемы, а якутский — агглютинативный — преимущественно использует
однозначные словоизменительные морфемы. Оба языка при этом используют большое количество морфем для словообразования и словоизменения, но в якутском нет приставок. Вьетнамский и эскимосский языки противопоставлены русскому, английскому и якутскому по всем индексам.
Вьетнамский язык — язык в высшей степени аналитический и, кроме того, изолирующий — в нем совсем не используются словообразовательные и словоизменительные морфемы. Эскимосский язык — агглютинативный и полисинтетический — в нем высокая степень сложности слов.
Мы теперь видим, что русский и английский противопоставлены еще как
флективный и изолирующий.
Таблица 1. Некоторые типологические индексы по Гринбергу
Русский
Синтез
Деривация
Префиксация
Суффиксация
2,33
0,37
0,17
1,15
Английский
1,68
0,15
0,04
0,64
Якутский
2,17
0,35
0,00
1,15
ВьетЭскинамский мосский
1,06
3,72
0,00
1,25
0,00
0,00
0,00
2,72
Все эти пять языков совершенно разного типа, или, как говорят лингвисты, разного строя. Разницу между языками можно точно описать при
помощи специальных индексов.
Хотя не все современные лингвисты, занимающиеся типологией языка, согласны с подобной классификацией, она все еще используется для
общей характеристики языков.
Глава 13. Квантитативная лингвистика
279
3. Части речи: можно ли определить, о чем
текст? — Стилеметрия
Мы прекрасно понимаем, как отличаются друг от друга по содержанию научные и художественные произведения, и можем без труда отличить научную книгу от художественной. А различаются ли такие произведения по языку? Если мы посчитаем отдельно количество существительных, глаголов и местоимений в научных и художественных текстах на
русском языке, то мы увидим, что в научных текстах примерно в два раза
меньше глаголов, чем в художественных, и примерно в полтора раза
меньше местоимений, но примерно на 20 % больше существительных.
Примерно так же будут отличаться тексты газет и тексты театральных
пьес. Произведения разных жанров используют различные пропорции
частей речи: там, где больше событий, там больше глаголов; там, где
больше описаний, там больше существительных; там, где больше диалогов между людьми, там больше местоимений. Все очень просто.
На таких принципах основана стилеметрия (stylometry) — количественное исследование стилей текстов, написанных разными писателями в
разных жанрах. Разумеется, в стилеметрии подсчитывают не только (и не
столько) части речи. Исследователи пытаются найти особенности речи,
которые могут быть статистически значимыми, в отличие от общих особенностей языка, которые одинаковы у всех [Тулдава 1987].
Существует множество разных методов: от лингвистических, основанных на статистике и комбинаторике языковых средств до математических, основанных на анализе большого объема текстов, например, методами машинного обучения.
Стилеметрия может использоваться для классификации текстов
[Мартыненко 1988], для определения жанров [Kessler, Numberg, Schutze
1997], для определения авторства анонимных и псевдонимных произведений [Марусенко 1990, Stamatatos 2009].
Исследователи из Университета Стоуни Брук (США) использовали
методы стилеметрии и алгоритмы машинного обучения (подробнее машинное обучение описано в главе 5 нашей книги) для предсказания популярности новых книг и даже сценариев фильмов [Ashok, Feng, Choi, 2015].
Посмотрим, как они это сделали. Для начала ученые посмотрели статистику скачивания книг разных жанров на сайте англоязычной электронной
библиотеки Проект Гутенберг (www.gutenberg.org), где хранится около 40
000 книг. Затем они выбрали по 50 самых популярных текстов и 50 самых
непопулярных текстов в следующих жанрах книг и киносценариев: приключения, детектив, художественная литература, исторические романы,
любовные романы, поэзия, научная фантастика и короткий рассказ. Они
составили обучающую выборку для алгоритма обучения с учителем.
280
Часть II. Направления
В качестве лингвистических параметров для кв