Добавил:
natribu.org Все что нашел в интернете скидываю сюда Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Точно Не проект 2 / Не books / Источник_1

.pdf
Скачиваний:
10
Добавлен:
01.02.2024
Размер:
20.67 Mб
Скачать

510

Глава 9

 

 

ответ будет “Берлин”. Этот же ответ будет получен, если пользователь введет запрос в иной форме: “Назовите столицу Германии?”. Второе правило активизируется, если в запросе пользователя после слова “столиц&” следует слово “стран&”. Например: “Список столиц всех стран?”. В этом случае пользователю сообщается весь список стран и их столиц. ЕЯ-интерфейсы БД, построенные на основе метода сопоставления с образцом, могут приводить к ошибочным ответам, так как не учитывают семантических отношений между элементами запросов.

Более гибкими являются ЕЯ-интерфейсы, реализующие синтаксический разбор входных запросов к БД. Строящееся при этом дерево грамматического разбора преобразуется в выражение на языке запроса БД. Например, в БД LUNAR, содержащей сведения о результатах химического анализа образцов лунного грунта, используется простая грамматика, подобная грамматике, изображенной на рисунке 2.5. Если система получает запрос: “Which rock contains magnesium?” (“Какая порода содержит магний?”),

то строится дерево синтаксического разбора, изображенное на рисунке 9.17. Затем дерево разбора отображается в запрос на языке БД [59]

( for_every x (is_rock x)

(contains x magnesium); (printout x )),

где х – переменная. Такое отображение выполняется с помощью следующих простых правил:

“which” for_every x ;

“rock” (is_rock x);

группа подлежащего (NP), состоящая из определителя (DET) и существительного (N), представленных словами which и rock, записывается в виде выражения for_every x (is_rock x);

“contains” contains x; “magnesium” magnesium;

группа сказуемого (VP), состоящая из глагола (V – contains) и существи-

тельного (N – magnesium), заменяется выражением (contains x magnesium); предложение S представляется в виде (NP VP; (print_out x)).

 

 

 

 

 

 

 

 

 

 

 

 

S

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

VP

 

 

 

 

 

NP

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

DET

N

 

 

N

 

 

 

 

 

 

 

 

 

 

 

 

 

which

 

 

rock

 

 

contains

magnesium

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рисунок 9.17 – Дерево синтаксического разбора в БД LUNAR

Обработка естественного языка

511

 

 

ЕЯ-интерфейс, реализующий рассмотренное преобразование дерева синтаксического разбора в конструкции языка запросов конкретной БД, оказывается узкоспециальным. Создание универсального множества правил, преобразующих дерево синтаксического разбора, в конструкции полноценного языка запросов, например SQL, проблематично.

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

Во многих случаях существующие ЕЯ-интерфейсы, обеспечивающие доступ к БД, первоначально преобразуют запрос в некоторую внутреннюю логическую форму. Такая промежуточная логическая форма отражает смысл вопроса пользователя в терминах, не зависящих от структуры БД. Затем логический запрос преобразуется в выражение языка запросов БД и обрабатывается системой управления базы данных (СУБД). На рисунке 9.18 изображена возможная структурная схема ЕЯ-интерфейса доступа к БД с промежуточным логическим представлением запроса [59].

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

граничат(Страна1,Страна2), явл_страной(Страна).

512

Глава 9

 

 

Рисунок 9.18 – ЕЯ интерфейс с промежуточным логическим представлением запроса

Семантический интерпретатор конструирует логический запрос из логических выражений лексикона. Так, вопрос: “Назовите столицы стран, которые граничат с Германией?” преобразуется в логический запрос, конструируемый из предикатов лексикона:

ответ([Столица, Страна]):- явл_страной(Страна), граничат(Страна, ‘Германия’), столица(Столица, Страна).

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

Обработка естественного языка

513

 

 

 

Предположим, что БД содержит сведения о заработной плате служащих некоторой компании. Иерархия классов предметной области изображена на рисунке 9.19. Тогда вопрос “Какова зарплата каждого клиента?” должен ос-

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

Предположив, что в словаре со словом “зарплата” связан предикат

зарплата(Зарплата,Персона), а со словом “клиент” – предикат

явл_клиентом(Персона), получим следующий логический запрос:

ответ ([Зарплата, Персона]):- явл_клиентом (Персона), зарплата (Зарплата, Персона).

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

Персоны

Клиенты Служащие

Техники Продавцы Менеджеры

Рисунок 9.19 – Иерархия классов

Если же пользователем введен запрос “Какова зарплата каждого техника?”, то он будет преобразован в следующий логический запрос:

ответ ([Зарплата, Персона]):- явл_техником(Персона), зарплата (Зарплата, Персона).

В этом случае запрос будет признан корректным, так как класс техники является подклассом класса служащие.

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

нией?

514

Глава 9

 

 

; вариант1 ответ ([Служащий]):-

явл_служащим (Служащий), явл_компанией (Компания),

явл_экспортн_лицензией (Экспорт_Лицензия), работает_в (Служащий, Компания), имеет (Компания, Лицензия).

; вариант 2 ответ ([Служащий]):-

явл_служащим (Служащий), явл_компанией (Компания),

явл_экспортн_лицензией (Экспорт_Лицензия), радотает_в (Служащий, Компания), имеет (Служащий, Экспорт_Лицензия).

Можно потребовать, чтобы аргументы предикатов явл_служащим,

явл_компанией, явл_экспортн_лицензией относились к классам: служа-

щие, компании и экспортные_лицензии. Кроме этого, можно наложить ог-

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

Так как логический запрос не содержит ссылок на объекты БД, то он не может быть непосредственно использован в процессе поиска необходимых сведений. Генератор запросов БД (рисунок 9.18) осуществляет преобразование логического запроса в запрос на языке БД. При этом используются сведения об отображениях предикатов в объекты базы данных. В случае реляционных БД устанавливается простая связь между каждым предикатом и оператором SELECT структурированного языка запросов SQL. Пусть БД содержит таблицы, изображенные на рисунке 9.20. Требуется от-

ветить на вопрос: “Назовите столицы всех стран, которые граничат с Герма-

”.

Табл_Страны

Страна

Столица

Язык

Франция

Париж

Французский

Германия

Берлин

Немецкий

Италия

Рим

Итальянский

Табл_граничат

Страна1

Страна2

Франция

Германия

Франция

Швейцария

Германия

Франция

Рисунок 9.20 – Таблицы реляционной БД

Обработка естественного языка

515

 

 

 

В результате выполнения синтаксического и семантического анализа получим:

oтвет ([Столица, Страна]): – явл_страной (Страна), граничат (Страна, ‘Германия’), столица (Столица, Страна).

Cведения об отображениях предикатов в отношения БД позволяют сформировать следующие фрагменты SQL запроса:

- для предиката явл_страной

SELECT страна

FROM Табл_страны;

-для предиката граничат

SELECT страна1, страна2

FROM Табл_граничат;

-для предиката столица

SELECT столица, страна

FROM Табл_страны.

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

SELECT Табл_страны.столица, Табл_страны.страна

FROM Табл_страны, Табл_граничат

WHERE Табл_страны.страна =Табл_граничат.страна1

AND Табл_граничат.страна2 = ’Германия’

Данный запрос поступает на вход СУБД, которая обеспечивает поиск необходимого ответа и передает его на вход генератора ЕЯ-ответов (рису-

нок 9.18 ).

Рассмотренный ЕЯ-интерфейс БД с промежуточным логическим представлением запросов характеризуется следующими достоинствами:

-благодаря выделению лингвистического интерфейса в самостоятельный модуль, настройка интерфейса на конкретную СУБД требует адаптации только генератора запросов БД;

-выделение проблемно-ориентированных знаний позволяет достаточно просто адаптировать интерфейс к различным предметным областям;

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

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

516

Глава 9

 

 

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

сует ответ на вопрос: “У каких пациентов вероятно развитие заболевания лег-

ких?”. Для ответа на данный вопрос система должна уметь на основе сведений, хранящихся в БД, делать необходимые логические выводы. Это требует введения в структурную схему, изображенную на рисунке 9.18, модуля логического вывода. Соответствующая структурная схема системы, обеспечивающей получение выводов на данных, содержащихся в БД, представлена на рисунке 9.21 [59]:

Рисунок 9.21 – ЕЯ-интерфейс БД с возможностью логических выводов

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

ответ ( [Пациент] ): – явл_пациентом (Пациент),

вероятно_заболеет (Пациент, заболевание_легких).

Здесь предикат явл_пациентом(Пациент) может быть отображен на отношение Табл_пациенты базы данных, содержащее сведения о пациентах кли-

ники, а предикат вероятно_заболеет(Пациент,заболевание_легких) не мо-

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

вероятно_заболеет(Пациент, Болезнь) если вероятность(развитие(Пациент, Болезнь)) > 0,7.

Обработка естественного языка

517

 

 

 

Правило говорит, что Пациент вероятно заболеет болезнью Болезнь, если вероятность развития этой болезни больше 0,7. Другие правила должны объяснять, как использовать сведения из БД, чтобы вычислить вероятность развития заболевания:

если имеет(Пациент, заболевание_крови) то вероятность(развитие(Пациент, заболевание_легких)) = 0,6;

если курящий (Пациент) то вероятность(развитие(Пациент, заболевание_легких)) = 0,7.

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

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

Имеет ли авиакомпания MALEV рейс до Хельсинки из Борисполя? Нет.

Было бы лучше, если бы система сформировала такой ответ:

Нет, но имеется рейс Украинских авиалиний.

Наличие модуля логического вывода позволяет глубже понимать цели пользователя и, тем самым, формировать ответы в духе сотрудничества, не ограничиваясь кратким ответом “да/нет”. Формирование таких ответов возможно, если в базе правил будет правило, утверждающее, что цель пользователя состоит в достижении конечного пункта маршрута, если запрос касается рейса. Тогда появляется возможность расширить ответ, исключив из логического запроса перевозчика. Полнее учесть цели пользователя позволяют диалоговые системы, структура которых дополняется моделью пользователя [16].

9.4. Распознавание речи

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

518

Глава 9

 

 

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

Автоматическое распознавание речи (АРР) является одним из быстрорастущих и многообещающих направлений применения технологий обработки ЕЯ. АРР применяется при автоматизации ввода текстов в ЭВМ (диктант), при формировании устных запросов к базам данным или инфор- мационно-поисковым системам, при формировании устных команд различным интеллектуальным устройствам и др.

В настоящем параграфе рассматривается применение эмпирического подхода к решению задачи АРР.

9.4.1. Основные понятия

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

1)размер словаря;

2)режим речи;

3)стиль речи;

4)предметная область;

5)дикторо-зависимость;

6)уровень акустических шумов;

7)качество входного канала.

В зависимости от размера словаря системы АРР подразделяются на три группы: с малым размером словаря (до 100 слов); средним размером словаря (от 100 слов до нескольких тысяч слов); большим размером словаря (более 10000 слов).

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

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

Обработка естественного языка

519

 

 

 

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

Многие системы АРР являются дикторо-зависимыми. Это предполагает предварительную настройку системы на особенности произношения конкретного диктора. Дикторо-независимые системы не требуют такой настройки.

По уровню окружающих акустических шумов выделяют системы, работающие при низких (<10дБ) и высоких уровнях шумов (>30дБ).

Качество входного канала характеризуется шириной полосы пропускания, стабильностью его характеристик, уровнем помех. По ширине полосы пропускания входные каналы АРР разделяют на широкополосные и узкополосные. Широкополосные каналы обеспечивают передачу речи в диапазоне частот 20 – 20000 Гц. Узкополосные каналы ограничивают полосу пропускания. Например, телефонная линия имеет ограниченную полосу пропускания от 300 до 3400 Гц.

Втаблице 9.1 приведены сравнительные характеристики некоторых дикторо-независимых систем АРР [88]. Информационная система воздушных судов обеспечивает выдачу полетной информации по запросу к базе данных. Североамериканская система деловых новостей обеспечивает распознавание сообщений дикторов, осуществляющих тщательное чтение газетных статей. Система новостей радио и телевидения выполняет распознавание речи различных стилей. Система распознавания телефонных сообщений предназначена для распознавания спонтанной речи. Из таблицы

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

Сложность решения задачи распознавания речи объясняется большой изменчивостью акустических сигналов. Эта изменчивость объясняется несколькими причинами. Во-первых, различной реализацией фонем – основных единиц звукового строя языка. В русском языке насчитывают 42 фонемы (6 гласных и 36 согласных). Изменчивость реализации фонем вызвана влиянием соседних звуков в потоке речи. Оттенки реализации фонем, обусловленные звуковым окружением, называют аллофонами. Общее число аллофонов русского языка превышает 9000 [20]. Во-вторых, положением и характеристиками акустических приёмников. В-третьих, изменениями параметров речи одного и того же диктора, которые обусловлены различным эмоциональным состоянием диктора, темпом речи. В-

Соседние файлы в папке Не books