Сборник 2001

Словокомплексы и шаблоны
в технологии
InBASE

Ажичаков Д.C., Егорушкин А.А.

РосНИИ Искуственного Интеллекта

 

1      Постановка задачи

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

  1. Один сегмент соответствует двум или более объектам (кумуляция в плане выражения);
  2. Несколько сегментов соответствуют одному объекту (кумуляция в плане содержания).

Далее мы рассмотрим, какие средства используются в системе InBASE для решения проблем, связанных с кумулятивностью ЕЯ. Объектом внутреннего представления ЕЯ выражения вInBASE является семантическая единица, принадлежащая к некоторому семантическому классу и имеющая определённую ориентацию [Нариньяни, 1979].

2      Кумуляция в плане выражения

Случаи кумуляции могут быть как стандартными (продуктивными для данного языка), так и нестандартными (идиоматичными). Стандартные случаи кумуляции могут быть описаны алгоритмически. Это значит, что, например, не нужно вносить в словарь все лексемы с приставкой ‘не’; достаточно сформулировать правило: “сегмент, состоящий из ‘не’ и основы преобразуется в две единицы ‘ОТРИЦАНИЕ’ + ‘основа’” (это, конечно же, упрощённое, нестрогое правило). Идиоматичные же случаи кумуляции невозможно описать правилами (например, как вывести по правилам, что сегмент “мать” соответствует следующему множеству семантических единиц, выделяемых в описываемой предметной области: ‘женщина’, ‘имеющая’, ‘детей’). Для решения этой проблемы в систему InBASE был введён тип ТОЛКОВАНИЕ.

3      Кумуляция в плане содержания

Ситуация с кумуляцией в плане содержания аналогична. То, что можно вывести по правилам, выводится по правилам (на построении одной семантической единицы более высокого уровня из множества семантических единиц более низкого уровня фактически основывается принцип семантически-ориентированного анализа ЕЯ [Нариньяни, 1979], положенного в основу лингвистического процессора InBASE). Если же правила получения семантической единицы из нескольких сегментов сформулировать затруднительно или вовсе невозможно, то возникает потребность в средстве, способном вычленять из текста множество сегментов, соответствующих одной семантической единице. В InBASE такое средство получило название подсистемы сборки словокомплексов и анализа шаблонов. Ниже даётся описание возможностей этой подсистемы и примеры её применения.

4      Подсистема сборки словокомплексов

Основной задачей подсистемы сборки словокомплексов является вычленение из текста семантических единиц, соответствующих нескольким сегментам текста, с учётом свободного порядка слов ЕЯ. Например, пользователь, задавая вопрос, может написать как «гречневая каша», так и «каша гречневая». Также при сборке учитывается возможность неполного задания пользователем словокомплекса в запросе. Допустим, в базе данных присутствует значение «гречневая каша с молоком»; тогда, на запрос пользователя «гречневая каша» запись, содержащая это значение, должна быть выдана.

Подсистема сборки словокомплексов использует словарь InBASE для хранения словокомплексов в виде словарных статей, помеченных специальным образом и имеющих атрибут, хранящий описание словокомплекса. Это позволяет продукционной программе работать со словокомплексами так же, как и с обычными словарными статьями, состоящими из одного сегмента.

Словокомплекс определяется как множество элементов. Элемент дает описание того, что может встретиться в данной позиции словокомплекса (см. ниже). Кроме этого, элемент может быть повторяющимся. Есть возможность задать минимальное и максимальное количество повторений. В каждом элементе можно задать несколько вариантов (альтернатив) описаний. Языковые структуры, описываемые альтернативами, делятся на несколько типов. В зависимости от типа можно задать параметры, по которым будет производиться отождествление. Возможны следующие типы альтернатив:

  1. Строка. Отождествление производится сравнением строки из запроса и указанной в описании альтернативы. Отождествление происходит при совпадении этих строк.
  2. Словарная статья[1]. Отождествление происходит, если во входном запросе встречается указанная словарная статья. Словарная статья определяется уникальным номером в словаре. Если в описании указана словарная статья, являющаяся словокомплексом, то отождествление производится аналогично типу «вложенный словокомплекс».
  3. Класс. Отождествление происходит в том случае, если в запросе встречается словарная статья указанного в описании альтернативы класса. Класс определяется уникальным номером. Кроме названия класса в описании альтернативы можно указать ограничения на значения атрибутов словарной статьи данного класса.
  4. Вложенный словокомплекс. Это средство позволяет производить отождествление не с отдельным словом, а с группой слов. Описание альтернативы этого типа аналогично описанию словокомплекса в целом. Допускается неограниченная вложенность словокомплексов.
  5. Любое слово. Позволяет указать в словокомплексе возможность того, что в этой позиции может встретиться любое слово. Никаких ограничений на слово не накладывается.

Поиск словокомплексов производится нежёстким способом. То есть, как говорилось выше, если в словаре есть словокомплекс «каша гречневая», а пользователь запросил «гречневая каша», то словокомплекс «каша гречневая» будет найден, хотя его оценка релевантности будет меньше, чем если бы был найден словокомплекс «гречневая каша».

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

ü      Отождествлены все элементы словокомплекса. Устанавливается, если для каждого элемента словокомплекса min_count £ n £ max_count, где

min_count – минимальное количество повторений элемента

max_count – максимальное количество повторений элемента

n – количество найденных отождествлений

ü      Отождествленные части запроса идут в правильном порядке (так, как указано в описании словокомплекса).

Пример 1: «каша гречневая»

будет найден словокомплекс «каша гречневая с молоком», флаг «части запроса идут в правильном порядке» установлен.

Пример 2: «гречневая каша»

будет найден словокомплекс «каша гречневая с молоком», флаг «части запроса идут в правильном порядке» сброшен.

ü      Отождествленные элементы словокомплекса идут подряд.

Пример 1: «каша гречневая»

будет найден словокомплекс «каша гречневая с молоком», флаг «элементы словокомплекса идут подряд» установлен.

Пример 2: «каша с молоком»

будет найден словокомплекс «каша гречневая с молоком», флаг «элементы словокомплекса идут подряд» сброшен.

ü      Отсутствуют допустимые внешние включения. Некоторые слова могут быть помечены как «допустимое внешнее включение». Отождествленные части запроса могут быть разделены словами, помеченными таким образом.

Пример: «каша гречневая без сахара с молоком», слова «без» и «сахар» помечены как «допустимое внешнее включение»

будет найден словокомплекс «каша гречневая с молоком», флаг «отсутствуют допустимые внешние включения» сброшен.

Итак, список отождествлений получен. Дальнейшие действия (второй шаг) могут варьироваться. Рассмотрим два варианта возможных действий:

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

Второй вариант действий — построить семантическую сеть с альтернативными (омонимичными) вариантами и производить оценку релевантности не словокомплексов по отдельности, а запросов в целом. Этот вариант более предпочтителен, но и более сложен в реализации.

5      Анализ шаблонов

Как видно из предыдущих примеров, подсистема сборки словокомплексов используется, когда требуется нежёсткий поиск словосочетаний во входном запросе, образующих семантические примитивы (с точки зрения идеологии системы). Но помимо этого есть другой тип сборки целого из частей, с которым словокомплексы справиться не в состоянии: распознавание шаблонов. К шаблонам относятся

  1. стандартные числовые шаблоны, состоящие из чисел, разделённых знаками (например, дробные числа, даты и т.п.);
  2. сложные шаблоны, представляющие совокупность строк и чисел (номер паспорта, марка автомобиля и т.п.).

При распознавании шаблонов основную роль играет не отождествление, а разрешение омонимии, поскольку элементы шаблонов, как правило, жёстко фиксированы, но чаще чем обычные словокомплексы являются причиной омонимии. Можно выделить два типа омонимии:

  1. Семантическая омонимия;
  2. Синтаксическая омонимия.

Семантическая омонимия возникает, если одному найденному шаблону можно приписать несколько значений. Так, шаблон 98-12-01 может быть как датой (1 декабря 1998 года), так и номером телефона (в той предметной области, где релевантны оба эти значения). Выбрать правильное значение в этом случае без учёта контекста невозможно.

Синтаксическая омонимия возникает, когда последовательность единиц и знаков может интерпретироваться либо как шаблон, либо как совокупность независимых единиц. Примеры:

Автомобили ГАЗ-29

vs.

Автомобилей ГАЗ – 29 штук

вес 12,50 кг

vs.

Возраст 12, 15 или 18 лет

Первый тип омонимии является частным случаем словарной омонимии (когда одна лексема может относиться одновременно к нескольким классам или иметь ориентацию на несколько атрибутов), поэтому разрешается общими правилами.

К синтаксической омонимии можно подойти двумя способами. При первом подходе мы полностью полагаемся на компетентность пользователя, на то, что он при вводе будет использовать пробелы между знаком пунктуации и сегментом. Данный подход запрещает интерпретацию 12,_15 в виде десятичной дроби, а 12,15 интерпретируется только как дробь. То есть синтаксическая омонимия полностью снимается договорённостью.

При втором подходе интерпретация не зависит от наличия или отсутствия пробелов (это может понадобиться, если пользователь торопится и легко может ошибиться). InBASE может работать в обоих режимах – как с учётом синтаксической омонимии, так и без неё.

6      Возможности подсистемы анализа шаблонов

Подсистема анализа шаблонов имеет следующие возможности:

ü      анализ стандартных и сложных шаблонов;

ü      учёт синтаксической омонимии;

ü      гибкое описание шаблонов;

ü      построение значения по шаблону.

Вся необходимая информация, необходимая системе для анализа шаблонов, задаётся в словаре. В неё входит описание структуры шаблона и описание значения шаблона. Описание структуры шаблона схоже с описанием словокомплекса. Шаблон тоже состоит из множества элементов, каждый из которых может иметь несколько альтернатив. В качестве альтернатив могут быть знаки, целые, строки-константы или словарные статьи. Прототипический шаблон состоит из целых и знаков. Важнейшим компонентом в структуре шаблона являются ограничения на составные части. Предусмотрены следующие типы ограничений:

ü      символьная маска (стандартное задание значений);

ü      ограничение на значение (операторы <, >, = и т.п.);

ü      длина элемента (количество символов).

Помимо описания структуры, шаблон имеет описание процедуры сборки поискового образа из шаблона. Пример. Рассмотрим две базы данных. В одной из них телефоны хранятся с разделителями (145-34-98), а в другой без (1453438). Однако пользователя не интересует, как устроена та или иная база данных, он хочет вводить телефон так, как это принято (с разделителями). Для этого нужно добавить в словарь шаблон для номера телефона. Шаблоны телефона для этих баз данных будут идентичны во всём, кроме поискового образа. В первой он будет выглядеть следующим образом:

<элемент 1>-<элемент 2>-<элемент 3>,

а во второй так:

<элемент 1><элемент 2><элемент 3>.

7      Промежуточные случаи

Помимо словокомплексов, характеризующихся максимальной гибкостью при сборке, и шаблонов, являющихся кортежом объектов, можно выделить промежуточный класс случаев, для корректного анализа которых необходимо применение обоих средств. Это различные названия с букво-числовыми кодами. Например, Samsung SyncMaster 3Ne-LR. Если и Samsung иSyncMaster 3Ne-LR в данной предметной области относятся к одному атрибуту, то чтобы корректно обрабатывать запросы типа «монитор Samsung SyncMaster 3Ne-LR», «мониторыSyncMaster», «мониторы SyncMaster 3Ne-LR фирмы Samsung», нужно ввести в словарь шаблон «3Ne-LR» (который может принимать не только это значение, но и другие, например «5Ne-LR» и т. п.) и словокомплекс, включающий в себя слова Samsung, SyncMaster и данный шаблон.

Литература

Жигалов В. А., Об опыте разработки системы построения ЕЯ-интерфейсов к базам данных. // Труды Международного семинара Диалог'98, Казань, 1998

Нариньяни А. С., Лингвистические процессоры ЗАПСИБ (1-я и 2-я части). Препринт ВЦ СО АН СССР, N 199, 1979

 

 

[1] Требует комментария различие понятий строка и словарная статья. Словарная статья хранится в словаре, имеет атрибуты и морфологические характеристики, которая используется при отождествлении сегмента (словоформы) и данной статьи. Как правило, словарная статья объединяет некоторую часть парадигмы или всю парадигму какой-либо лексемы. Строка же не хранится в словаре и, следовательно, не имеет атрибутов и морфологических характеристик. Строка всегда представляет лишь одну словоформу некоторой лексемы (или несколько омонимичных словоформ).