Сборник 2001

Разработка системы понимания устной речи в диалоге

К проблеме понимания

Д.В. Разумихин

 

 

 

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

 

Такое рассмотрение понятия “понимание восходит к античной традиции.

У Аристотеля слова – это знаки понятий (душевных впечатлений). А вся аристотелевская логика – это учение о языковых формах суждения. В её основе лежит представление о соответствии логических и грамматических категорий.

В новое время представление о жёстком, логическом характере языка более жёстко формулируется у Гартли, у него язык уже рассматривается как один из видов алгебры:

“Поскольку слова могут быть сравнены с буквами, употребляемыми в алгебре, сам язык можно назвать одним из видов алгебры, и наоборот, алгебра есть не что иное, как язык, который особым образом приспособлен к объяснению величин всех родов…”.

Представление о языке как алгебраическом исчислении мы находим также у Луи Ельмслева.

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

Была предложена следующая классификация терминов науки:

- теоретические

- нетеоретические, в свою очередь делятся на:

-        примитивные термины

-        точные термины

Теоретическим терминам не даются определения, их смысл задаётся теорией, которая связывает их с хорошо определёнными нетеоретическими терминами.

Примитивные термины – те, которые понимаются непосредственно в процессе анализа эксперимента.

Точные термины определяются заданием необходимых и достаточных условий и исходя из примитивных терминов.

Теория описывается фразами, которые состоят из аксиом и теорем. Фразы могут содержать теоретические и нетеоретические термины (смешанные фразы).  Если же фраза состоит только из нетеоретических терминов, она подлежит проверке и служит для подтверждения теории.

 

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

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

 

Итак, что же такое смысл в данной линии развития мысли?

Смысл слова – некоторое понятие. Во многих естественных языках широко распространена лексическая омонимия и полисемия. Разрешение полисемии и полисемии и представляется одной из основных трудностей на пути получения смысла слова. Это делается за счёт контекста, в качестве которого выступает высказывание, предложение.

Смысл предложения – некоторая пропозиция – логическая или логико-семантическая структура. Её анализ в существенной степени основывается на грамматическом анализе предложения: морфологическом и синтаксическом.

 

В попытке моделировать понимание речи в диалоге мы пытаемся отойти от этого понимания смысла.

Важно осознать тот факт, что механизмы понимания письменного текста, опирающиеся на логическую структуру правильно построенного предложения, могут сильно отличаться (и по-видимому, отличаются, о чём говорят данные экспериментов по восприятию в затруднённых условиях) от механизмов понимания устной разговорной речи.

Устная диалоговая речь отличается от монологической, заранее подготовленной речи, по крайней мере в следующих аспектах:

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

- наличие внеязыкового контекста,

- возможность обратной речевой связи, коррекция неправильного понимания.

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

По-видимому, такое понимание контекста может объяснить явление антиципации при восприятии устной диалоговой речи.

Витгенштейн в “Логико-философском трактате” писал: “Смысл мира должен лежать вне его”. Можно сказать, что смысл текста, порождаемого говорящим, для системы распознавания разговорной (диалоговой) речи должен лежать вне самого текста а именно в окружающей ситуации.

 

В целом понимание устной речи представляется нам так:

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

Представляется, что в речи имеются ключевые слова, достаточные для понимания интенции говорящего. Т.е. такие слова, которые выступают в качестве конкретизаторов.

 

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

1) вводится речевой (акустический) сигнал – высказывание портье или клиента,

2) сигнал сегментируется на слова, опираясь на паузы между словами (данная система работает с пословным произнесением фразы),

3) каждый сигнал, соответствующий словоупотреблению распознаётся системой распознавания слов, которая распознаёт исходя из словаря “ключевых” для данной ситуации слов,

4) получается матрица вероятностей, столбцы которой, скажем, представляют словоупотребления в произнесённой фразе, а строки – слова из словаря распознавания; эта матрица передаётся семантическому модулю.

 

Реализация семантического модуля

То, что называется семантическим модулем, состоит на самом деле из двух частей: прагматического уровня и семантического уровня. Они выделены достаточно условно. Наше понимание “смысла” в большей степени относится к прагматическому уровню.

Базовой единицей прагматического уровня является микроситуация, а семантического каноническая фраза. Микроситуация это внутреннее состояние системы, которое более или менее соответствует некоторой ситуации диалога, т.е. их выделение связано с тем, как человек расчленяет действительность.Каноническая фраза представляет собой семантический инвариант некоторого множества высказываний. Их достаточно большое, но ограниченное число (примерно по 100 для портье и клиента). Часто микроситуация полностью определяется всего одной канонической фразой. Именно в этом смысле выделение прагматики и семантики условно.

Прагматика

Прагматическая модель представляет собой сценарий диалога в ситуации “гостиница”. Вся ситуация разделена на три подситуации: “поселение”, “проживание”, “отъезд”. Ряд канонических фраз является специфичным для подситуации (например, “Для меня должен быть забронирован люкс” для поселения, или “Я выезжаю” - для отъезда), другие – общие для всех. В каждой подситуации есть фразы-вопросы, или запросы, на которые собеседник (если он вежливый человек, а система во многом рассчитывает на такой стереотип поведения) должен ответить тем или иным образом. Для таких микроситуаций накладывается ограничение на возможные канонические фразы – ответы собеседника.

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

Семантика

Собственно семантический модуль призван по полученной матрице вероятностей отобрать канонические фразы (в идеале одну – правильную) и ранжировать их по убыванию вероятностей.

Процесс распознавания слов и проход через семантику реализуется в несколько циклов. Идея нескольких циклов заключается в следующем: на первом этапе распознается большое количество слов, распределения вероятностей получаются очень “пологие” (с высокой энтропией), соответственно семантический модуль формирует много гипотез. Затем часть этих гипотез отбрасывается. Для проверки оставшихся гипотез формируются списки слов (для каждого словоупотребления они в общем случае различны) и подаются на модули целословного распознавания. Цикл повторяется несколько раз (3-4).

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

-                        остались гипотезы только по поводу одной канонической фразы

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

Модель ограничений в семантическом модуле

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

Одним из основных понятий рассматриваемой модели является понятие семантической гипотезы. Гипотеза – это просто последовательность слов, соответствующая какой-либо канонической фразе.

Множество всех гипотез – всех возможных цепочек слов – и есть множество ограничений.

Основная часть работы семантического модуля заключается в выборе нужных ограничений из некоторого большого статического массива.

 

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

“Мне нужен одноместный люкс”:

{

((нужно & одноместный)  % -4 2  &  (одноместный & люкс) % -4 2);

(одноместный & люкс) % -4 2

< 2 10 >

}.

“&” - “и” - одновременное присутствия двух слов в цепочке (если стоит между двумя словами)

одновременного выполнения двух условий (в противном случае),

“;” - “разделительное или”,

“%” - максимальное количество слов, которые могут стоять между теми словами, которые заключены в скобки

Последние два числа в треугольных скобках – это ограничения на длину данной канонической фразы (минимальное и максимальное кол-во слов).

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

 

Я хотел бы поменять  мой номер на номер с ванной”:

{

   ((((хотел_бы & поменять) % -4 2  &  (поменять & номер) % -4 2)  &  (номер & +1 номер) % -3 1)  &  ( +1 номер & ванна) % 0 2) ;

   (((поменять & номер) % -4 2  &  (номер & +1 номер) % -3 1)  &  ( +1 номер & ванна) % 0 2) ;

   (((хотел_бы & поменять) % -4 2  &  (поменять & номер) % -4 2)  &  (номер & ванна) % 0 2) ;

   ((поменять & номер) % -4 2  &  (номер & ванна) % 0 2)

   < 3 10 >

}.

“+” - нужен для различения разных словоупотреблений одного и того же слова, число, которое идет сразу за ним, означает номер словоупотребления (нумерация идет с нуля, нуль по умолчанию не устанавливается). Так при произнесении высказывания, соответствующего данной фразе, в некоторых вариантах могут быть два разных словоупотребления слова “номер”.

Записи для разных канонических фраз заключены в фигурные скобки. Однострочные комментарии записываются после двойной косой черты.

Еще один пример (фрагмент) для иллюстрации фраз с количественными числительными:

// 96. Заказ номер...

{

   кол_числ_1_9 ;

   кол_числ_11_19 ;

   кол_числ_10_90 ;

   (кол_числ_10_90 & кол_числ_1_9) % 0 1 ;

   кол_числ_100_900 ;

   (кол_числ_100_900 & кол_числ_1_9) % 0 1 ;

   (кол_числ_100_900 & кол_числ_10_90) % 0 1 ;

   (кол_числ_100_900 & кол_числ_11_19) % 0 1 ;

   ((кол_числ_100_900 & кол_числ_10_90) % 0 1  &  (кол_числ_10_90 & кол_числ_1_9) % 0 1) ;

.............................................

}

Делать отдельную каноническую фразу на каждое возможное числительное совершенно расточительно, поэтому числительные являются единственным “модификатором” некоторых канонических фраз. Они разбиты на четыре класса:

от “один” до “девять” - кол_числ_1_9,

от “одиннадцать” до “девятнадцать” – кол_числ_11_19,

десятки – кол_числ_10_90,

сотни – кол_числ_100_900.

 

Программа grammar транслирует эти текстовые файлы в машинные структуры данных.

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

Фрагмент таблицы ограничений для фразы “Мне нужен одноместный люкс”

{92,80,-1,-1,-1,-1,-1,-1,-1,-1},

{80,92,-1,-1,-1,-1,-1,-1,-1,-1},

{108,92,80,-1,-1,-1,-1,-1,-1,-1},

{108,80,92,-1,-1,-1,-1,-1,-1,-1},

{92,108,80,-1,-1,-1,-1,-1,-1,-1},

{80,108,92,-1,-1,-1,-1,-1,-1,-1},

{92,80,108,-1,-1,-1,-1,-1,-1,-1},

{80,92,108,-1,-1,-1,-1,-1,-1,-1},

{92,-1,80,-1,-1,-1,-1,-1,-1,-1},

{-1,92,80,-1,-1,-1,-1,-1,-1,-1},

{80,-1,92,-1,-1,-1,-1,-1,-1,-1},

{-1,80,92,-1,-1,-1,-1,-1,-1,-1},

{108,92,-1,80,-1,-1,-1,-1,-1,-1},

{108,-1,92,80,-1,-1,-1,-1,-1,-1},

................................................

{108,-1,-1,92,-1,-1,80,-1,-1,-1},

{-1,108,-1,92,-1,-1,80,-1,-1,-1},

{-1,108,-1,-1,92,-1,80,-1,-1,-1},

................................................

{-1,-1,-1,-1,-1,-1,80,-1,-1,92},

{-1,-1,-1,-1,-1,-1,-1,80,-1,92},

{-1,-1,-1,-1,-1,-1,-1,-1,80,92},

В ней числа – это номера слов в словаре:

80 – люкс,

92 – одноместный,

108 – нужно.

-1 соответствует любому слову, которого нет в словаре распознавания.

 

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

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

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

После того как рассмотрены все нужные канонические фразы, гипотезы сортируются по убыванию вероятностей.

Затем происходит отбрасывание “малосущественных” гипотез. Вероятности полученных гипотез нормируются на единицу (пересчитываются, чтобы сумма была равна 1). Считается энтропия:

 
 
 
 

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

По полученным гипотезам определяются значимые ключевые слова: отбираются из каждой позиции каждой гипотезы.

Особую сложность представляет работа со словами, которых нет в словаре распознавания (условно назовём их “мусором”). В матрице вероятностей слов предусмотрено место. Однако в системах подобного рода (в которых неуместен переспрос типа: “Повторите, пожалуйста второе слово”) поставить порог отказа очень сложно, а в реальных высказываниях такие слова встречаются довольно часто.

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

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

 

Библиография

  1. Витгенштейн Л. Философские работы. М., Гнозис, 1994.
  2. Лингвистический процессор для сложных информационных систем. М., Наука, 1992.
  3. Налимов В.В. Вероятностная модель языка. О соотношении естественных и искусственных языков. М., Наука, 1979.