Обработка англоязычных текстов на основе семантического словаря

2005 ВЕСТНИК САНКТ-ПЕТЕРБУРГСКОГО УНИВЕРСИТЕТА Сер. 10 Вып. 3

ИНФОРМАТИКА

УДК 519.767 А. Ю. Кутарба

ОБРАБОТКА АНГЛОЯЗЫЧНЫХ ТЕКСТОВ НА ОСНОВЕ СЕМАНТИЧЕСКОГО СЛОВАРЯ

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

2. Семантический словарь. Главная задача обработки текстов на естественных языках - моделирование значения единицы языка [2]. Под единицей языка подразумевается слово, предложение или текст. Для решения данной задачи необходимо мощное средство (формализм), легко работающее с естественным языком, не запутывая и без того сложную его организацию.

Выделим основные требования к такому формализму. Он должен: содержать толкования единиц языка - семантический словарь; обладать динамичностью и гибкостью; ограничивать размножение формализаций единиц языка; уметь выбирать адекватный ситуации смысл единицы языка.

Построение семантического словаря составляет большую часть работы. Он содержит описание слов естественного языка. В семантическом словаре каждому из слов языка сопоставлены одна или несколько лексем. Каждая из лексем снабжена собственными обозначением и толкованием. Толкование лексемы определяет ее допустимое множество сущностей (ее значений) в зависимости от состава, вида и значения ее аргументов. Каждое такое описание включает морфологические характеристики, семантический класс, список слов и конструкций, присоединяемых этим словом, и описание семантики слова с помощью семантических функций [1, 2].

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

Например, слово коса в зависимости от контекста приобретает различный смысл. В словаре присутствуют несколько его описаний:

© А. Ю. Кутарба, 2005

КОСА $1213113

КОСА $122416(гО:Б> БЕРЕГ$122416,г1: \?од,22: !Где)

КОСА $1241/121(г1: ЧЕЛОВЕК$ 1241я" !Род\!У)

Первая альтернатива (класс $1213113) определяет слово как орудие труда, вторая (класс; $122416) - как часть берегового ландшафта, третья ($1241/121)- как украшение любой девушки.

Существуют два подхода к описанию классов. В первом случае класс определяется набором семантических признаков. При таком подходе класс может даже не указываться явно. Этот подход является более гибким и универсальным, но и значительно более сложным. Для более-менее полного словаря языка (100-150 тысяч слов) задание для каждого слова точного набора семантических признаков становится слишком трудоемкой задачей [2]. В нашей работе выбран другой подход, наиболее простой и эффективный: класс задается номером, отражающим его место в иерархии с одиночным наследованием. Описание таких классов собрано в специальном классификаторе. При построении классификации мы руководствовались тремя основными правилами [1, 3].

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

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

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

Описание таких классов собрано в специальном классификаторе. Класс задается

номером в упорядоченном списке [1]. Например,

$1227 Ф0 Природа Космос 26

$12271 Ф0 Природа Космос Планеты 56

$12272 Ф0 Природа Космос Земля 19

$122721 Ф0 Природа Космос Земля Части.света 73

$1227211 Ф0 Природа Космос Земля Части_света Континенты 15

$1227211000 Ф0 Природа Космос Земля Части_света Континенты Название 64

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

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

КОШЕЧКА Ny,~K0IHKA$124224117(Karese(

КОШКА$124224117(1 Род))) {жЗо 1217} КИСКА $124224117(!Род) {жЗо 168> КОТИК N'/,~K0T$ 124224117 (Karese(

К0Т$124224117(1 Род))) {мЗо 96>

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

2.1. Поисковые системы. Поиск - это простейший способ доступа к текстовым данным. На сегодняшний день классическая, поисковая машина умеет искать по запросу из нескольких слов все документы, в которые данные слова входят, и предъявить их пользователю. К сожалению, результат не всегда оказывается релевантным запросу [4]. Поэтому воспользуемся гибким механизмом для организации поиска знаний в текстах на естественном языке на основе семантического словаря.

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

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

I will contemplate your proposal. My son is fixed to be a cosmonaut. The small oasis is planted with palms. He planted himself in the wild forests. Her cake won the plaudits of her guests. We had planned an ascent of the mountain together. He spoke with complete abandon. They are quite decided about it. // Я обдумаю ваше предложение. Мой сын решил стать космонавтом. Этот небольшой оазис засажен пальмами. Он поселился в глухих лесах. Гостям очень понравился ее пирог. Мы собирались вместе подняться на гору. Он говорил, забыв обо всем. Они очень решительно настроены по этому поводу.

После получения вектора классов каждого предложения сформируем запрос, ответы на который неявно содержатся в тексте - intention (намерения, класс $131340). Описанный выше алгоритм позволит получить следующую выборку:

I will contemplate your proposal. My son is fixed to be a cosmonaut. We had planned an ascent of the mountain together. They are quite decided about it.// Я обдумаю ваше предложение. Мой сын решил стать космонавтом. Мы собирались вместе подняться на гору. Они очень решительно настроены по этому поводу.

Легко видеть, что ни одно из этих предложений не содержит непосредственно слова запроса, однако все они описывают намерения какого-либо субъекта(-ов). В каждом из них присутствует слово (в нашем примере одно), класс которого совпал с классом слова-запроса. В этот класс ($131340) включены слова, по которым произошло совпадение: to contemplate (обдумывать, рассматривать), to fix (собираться, намереваться), to plan (планировать), to decide (решать, настраиваться). Выборка полностью адекватна запросу.

2.2. Вопросно-ответная система. Усложним задачу поиска. Кроме прямого поиска по тексту, хотелось бы, чтобы система отвечала на так называемые фактографические вопросы, например, Где находится Диснейленд? Это особенно актуально для электронных энциклопедий, служб технической поддержки, систем помощи и сетевых библиотек. Для того чтобы система могла отвечать на подобные вопросы, и поисковый запрос, и сами текстовые данные должны обрабатываться более тонким образом [4].

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

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

В качестве примера возьмем базу знаний, в которой будет содержаться ответ на наш вопрос: Когда Азербайджан заработал на экспорте мазута 10 520 467,67 долларов? Заранее поместим в базу знаний факт: В 1999 году Азербайджан от экспорта мазута получил 10 520 467,67 долларов. После обработки каждому слову сопоставлены семантические конструкции с информацией о морфологических характеристиках, присоединяемых аргументах и номерах классов. В данном запросе присутствует слово <когда>, образующее семантико-грамматический тип <когда>. Семантико-грамматический тип отражает смысловую роль, которую играет слово или конструкция в предложении, но учитывает также и грамматические характеристики слова. Фактически он является комбинацией класса и предложно-падежной формы [1, 5].

Обрабатывая предложение базы знаний, мы получаем такой же семантико-грамматический тип (выделен ниже):

В 1999 году Азербайджан от экспорта мазута получил 10 520 467,67 долларов.

Получил Х0006008 П0ЛУЧИТЬ$15310

Perf_Caus({Z0[Когда:Г0Д$1605]>, Uzor(Z1[Ото:0Т$15],Z2),

ГОДУ

1999

Азербайджан от

экспорта

мазута долларов

10 520 467,67 Баку

IncepHab(Z3,Loc(Z4[Вин:АЗЕРБАЙДЖАН1231000]

[Род:ДОЛЛАР$12141][Вин:Д0ЛЛАР$12141],Z5)))

Х0006001: В$1605~@Когда

Rl>Temp

Х0006003: Г0Д$1605~@0НЪ$17©Пред

Х0006002: ЧИСЛ0$12/03 1999

Х0006004: АЗЕРБАЙДЖАН$ 1231000~ @ОНЪ$17 @Вин

S1>НаЪ

Х0006005: 0Т$15~@0то

Rl>Caus

Х0006006 : ЭКСП0РТ$1528/1~@0НЪ$17@Род

S0>PerfCaus(Zl[Род:МАЗУТ$121122],

1псерЬос(ЭКСП0РТ$1528/1(ZI[Род:

МАЗУТ$121122],Z2,Z3),Z4))

Х0006007: МАЗУТ$121122~@0НЪ$17@Род

Х0006010 : ДОЛЛАР$12141"'0НИ$ 17

Pofl({Z0[XÖ006009]},

Z1[Род:БАКУ$12314000],Z2,Z3)

Х0006009: ЧИСЛ0$12/03 10520467,67

Х0006011: БАКУ$12314000~@0НЪ$17@Род

S1>Hab

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

В 1999 году Азербайджан заработал на экспорте мазута 10 520 467,67 долларов.

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

2.3. Рубрикаторы. В мире информационных технологий оглавления используются очень широко. В первую очередь это каталоги - т. е. рубрикаторы или классификаторы, организующие множества документов в деревья или целые заросли рубрик. Средства классификации требуются везде, где имеются набор рубрик и большой входной поток документов, которые нужно быстро распределить по имеющимся рубрикам. Наиболее простые системы классификации, в частности системы фильтрации электронной почты (Microsoft Outlook), позволяют задать для каждой рубрики набор ключевых слов, которые дают возможность определить место документа. Для языков с высокой изменчивостью слов - русского, немецкого и др.этот способ работает плохо. Все его модификации до сих пор приводят лишь к получению более аккуратного разбора по рубрикам, не обеспечивая точность классификации по сравнению с человеческой оценкой [4].

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

Рассмотрим механизм рубрикации на примере текста, состоящего из набора предложений (в обобщенном варианте набор документов). Каждое предложение (в обобщенном варианте - каждый текст) имеет набор номеров классов. Он является средством определения степени близости двух предложений (текстов), которая обусловливается количеством совпадающих классов. Например, два предложения (текста) имеют 15 совпадающих классов. Чем больше совпадает классов, тем ближе они по смыслу. Рубрикация строится следующим образом. Между каждой парой предложений (текстов) определяем степень близости. Получаем таблицу из чисел-степеней. Выбираем из нее максимально совпадающие и получаем нижний уровень иерархии рубрикатора. Затем устанавливаем степень близости сгруппированных текстов до тех пор, пока не получим все возможные варианты в виде древовидной структуры. Каждая группа этой структуры представляет собой предложения (тексты), относящиеся к одной тематике. Таким образом, научившись определять степень семантической близости, можем реализовать задачу рубрикации с высокой степенью точности. Поясним действие алгоритма на русском примере. Пусть необходимо структурировать текст:

Кошка села на диван.

Собака села на диван.

Кошка села на крыльцо.

Собака села на крыльцо.

Сравнивая пары предложений, выясняем, что наибольшая степень близости у пар предложений (1)-(2) и (3)-(4). Совпадение в их векторах классов происходит по двум пунктам, в остальных парах - по одному. На основе полученной таблицы степеней близости, в которой всего два разных значения, мы строим иерархию. В ее основании будет два узла: в первом - те, кто сидят на диване, во втором - на крыльце. Далее и первый, и второй узлы получат разветвление кошка и собака. Варьируя направление рубрикации, можем изменять получаемую иерархию.

3. Заключение. Использование семантического анализатора ставит любую систему на его основе на уровень выше среди аналогичных. Однако особенности работы анализатора порождают обратно-пропорциональную зависимость: быстродействие -размеры обрабатываемого текста. Анализатор способен обрабатывать текст со скоростью 1,3 Кб в секунду (на компьютере с тактовой частотой 2600 МГц). При столь низком быстродействии и большом количестве информации, которую поставляет анализатор, возникает вопрос о целесообразности его использования для решения реальных задач (поиск в Internet, рубрицирование электронных библиотек и т. д.). И даже увеличение быстродействия анализатора на два порядка не позволяет однозначно ответить на поставленный вопрос без конкретизации задачи. Поэтому выбор необходимых средств определяется самой задачей и степенью качества ее решения. Простые решения не всегда способны обеспечить требуемое качество, но при решении прикладных задач они обладают неоспоримым преимуществом, суть которого заключается в простоте их реализации и в быстрой и эффективной обработке огромных массивов текстовой информации. Семантический анализатор способен извлечь из текста всю информацию, необходимую для сколь угодно точного решения любой из названных выше задач. Но точность решения должна быть соразмерна с затратами на его получение [5].

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

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

Summary

Kutarba A. Y. Semantic processing of English texts.

The result of the work is the English semantic dictionary and the systems using it for work with great volumes of information. Search, rubricating result and dialogue in a natural language with a high degree of accuracy is organized with the help of the systems.

Литература

1. Тузов В. А. Компьютерная семантика русского языка. СПб.: Изд-во С.-Петерб. ун-та, 2004. 400 с.

2. Тузов В. А. Компьютерная лингвистика: опыт построения компьютерных словарей. СПб.: Изд-во С.-Петерб. ун-та, 2002. 250 с.

3. Тузов В. А. Математическая модель языка. JL: Изд-во Ленингр. ун-та, 1984. 176 с.

4. Hand D. JMannila Н.} Smyth P. Principles of data mining. Atlanta: The MIT Press, 2001. 235 p.

5. Тузов В. A.j Лезин Г. В. Семантический анализ текста на русском языке: функциональная модель предложения // Экономико-математические исследования: математические модели и информационные технологии / Под ред. В. А. Тузова. СПб.: Эконом.-матем. ин-т РАН. 2003. Вып. 3. С. 45-57.

Статья поступила в редакцию 13 октября 2005 г.