Сокирко А.В.
Программная реализация русского общесемантического
словаря
Аннотация
В статье кратко сформулированы основные положения, которые были использованы для создания программной оболочки русского общесемантического словаря. Кроме этого, в статье приведены статистические данные, полученные с помощью новой оболочки.
Общие слова
Русский общесемантический словарь (далее словарь РОСС) занимает центральное место в системе лингвистических процессоров, разрабатываемой в институте США и Канады. Словарь содержит семантическое и синтаксическое описание слов, традиционно относимых к ядру русского языка, которое, тем самым, можно понимать как пересечение лексиконов всех предметных областей. Поскольку словарь используется для автоматического анализа текстов, информация в нем должна быть представлена формально, а ввиду того, что словарь описывает только лишь ядро языка, его структура должна быть доступной для других частных (предметно-ориентированных) баз данных. Структура словаря или схема словаря - это некоторая система списков констант, правил и форматов, определяющая, какими единицами и какими способами можно описывать словарные входы. В таком случае словарь представим как множество пар вида:
<словарный вход, словарная статья>, где “словарный вход” - некий уникальный ключ, а словарная статья - выражение, удовлеторяющее схеме словаря и несущее основную информацию о словарном входе.
Схема словаря всегда может быть модифицирована, причем операции над схемой, естественно, повлияют на словарные статьи, поэтому допустимости некоторых операций зависят от тех или иных особенностей состава словарных статей.
Важно отметить, что человеческое или программное обращение к словарю возможно только через схему словаря, а напрямую невозможно.
Программы или базы данных могут использовать только схему или часть схемы словаря, например, для построения своих собственных схем. В другом случае, программы могут обращаться к самим словарным статьям, таким образом неявно задействуя часть схемы словаря, а именно ту, что была использована в словарных статьях. Считая, что схема словаря состоит сплошь из списков чего-либо (констант, правил и т.д.), можно назвать первый вид программного доступа - вертикальным, имея в виду, что здесь словарь отдает обращающейся программе списки целиком, полностью. Второй способ можно назвать горизонтальным, так как для получения словарной статьи нам необходимы только части списков, так сказать, проекция словарной статьи на схему словаря.
Cловарь РОСС вертикально связан с базой данных “Словосочетания”, так как последняя база данных использует перечень семантических характеристик и перечень лексических функций, которые определены в словаре РОСС. Словарь РОСС горизонтально связан с базой данных “География” и семантическим процессором, так последние получают только словарные статьи от словаря РОСС, а не перечни, входящие в схему.
Вертикальная связь всегда постоянна, здесь часть схемы является как бы разделенным ресурсом, который совместно используют словарь и внешняя программа. При вертикальной связи можно разрешить или запретить внешней программе изменять разделенный ресурс. Горизонтальная связь обычно не протяженна во времени, и здесь внешняя программа не может менять схему словаря.
Теперь перейдем к описанию схемы словаря РОСС.
Схема словаря - это некоторый набор списков, определящих элементарные единицы и правила построения словарных статей. В словаре РОСС списки делятся на три группы:
1. Список словарных полей - это набор слов специального языка, которые используются для выделения и обозначения информации, записанной в одной словарной статье. Проще говоря, информация в словарной статье записана как бы по пунктам, каждый их которых описывает слово с какой-то одной стороны. Словарные поля - это названия этих пунктов, а содержимое пункта мы будем называть значением словарного поля.
2. Домены - это такие списки, в которых содержатся элементарные единицы, из которых строится значение поля. Любая словарная статья состоит только из названий полей и элементов доменов. Любые сведения, которые могут содержаться в словарной статье, должны быть выражены элементами доменов или комбинациями элементов, эти последние можно называть выражениями.
3. Форматы - это такие списки, которые определяют правила построения сложных выражений, состоящих из элементов доменов. Для любого формата и любой цепочки элементов домена можно сказать, удовлетворяет ли данная цепочка данному формату или нет. Для каждого формата F назовем форматным множеством FormatSet (F) - множество всех цепочек, которые удовлетворяют F. Всевозможные цепочки, которые состоят только из цепочек, принадлежащих FormatSet (F), назовем мультиформатным множеством MultiFormatSet (F). Эти определения легко переносятся с одного формата на множества (списки) форматов.
Как было сказано, для каждого словарного поля Х определен набор форматов С, и в словаре любое значения этого поля должно входить в MultiFormatSet (С) .
Для списков и элементов каждой из трех групп определены некоторые операции, к перечислению которых мы сейчас приступим.
В список словарных полей можно добавить новое поле. Из него можно удалить поле, при условии, что поле не входит в словарные статьи словаря или баз данных, вертикально связанных со словарем. Полю можно приписать набор форматов, т.е. список форматов (см. ниже). Поле можно переименовать.
В списки форматов можно также добавлять элементы и удалять из них элементы. Каждый формат имеет название, который, естественно, можно менять. Иногда на набор форматов накладывается условие однозначности в том смысле, что для любого выражения Х не найдется двух форматов из этого набора, которым Х удовлетворяет одновременно. При работе с однозначными наборами форматов не возникает неопределенности в интрепретации любого выражения Х.
Кроме этого, есть возможность менять сам формат, если, конечно, при этом не возникает потери информации, записанной в этом формате, то есть тогда, когда мультиформатное множество старого формата входит в мультиформатное множество нового формата. Однако, если формат входит в набор, на который наложено условие однозначности, то при изменении формата мультиформатное множество может увеличиться, а значит , может нарушиться условие однозначности - за этим нужно следить.
Операций над доменами больше, поскольку доменов в словаре очень много. В словарь можно добавить домен, дав ему определенное название. Из словаря можно удалить домен, если он не используется в словаре. Домену можно приписать список констант (элементарных единиц, из которых строится значение поля). Для домена можно определить меру свободы в динамической модификации констант доменов, по этому признаку домены бывают свободными и константными. Состав свободных доменов могут изменять любые внешние программы, а константных - нет. При желании домену можно дать формат, в котором нужно записывать константы домена. Принята следующая классификация доменов:
1. Базовые домены. Здесь собраны все основные домены, константы которого принадлежат языку описания естественного языка. Констант в базовых доменах мало, формат домена не определен. Изменение состава базового домена - очень ответственная задача. Примером базового домена может служить домен падежей, куда включены шесть констант для обозначения падежей русского языка.
2. Домены-разделители. В каждый домен-разделитель входит по одной константе (знаки препинания, спец-символы и т.д.). Разделители используются для наглядного представления выражений.
3. Текстовые домены. Сюда включены домены словоформ русского языка, словоформ английского языка и т.д. Для каждого домена определен формат, который ограничивает состав домена (например, нельзя поместить английскую словоформу в домен словосочетаний русского языка). Некоторые из этих доменов свободны.
4. Домены-объединения. Эти домены построены в результате объединения некоторых других, прежде определенных доменов.
5. Форматные константные домены. Для этих доменов обязательно определен формат.
Перечислив основные объекты схемы словаря РОСС, перейдем к описанию самого словаря.
Словарные входы
В словаре РОСС словарным входом является пара:
<лемма русского языка, номер значения леммы>, где номер значения - число от 1 до 10.
В текущем наполнении словаря РОСС лемм мало , у которых много значений, более того, можно сказать, что размеры классов лемм с одинаковым числом значений уменьшаются экспонентно. Ниже приведены статистические данные, подтверждающие это[1] :
Число значений леммы: |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
Процент лемм: |
81 % |
13 % |
3 % |
0.8 % |
0.2 % |
0.03 % |
0.03 % |
Словарные статьи
Словарный вход соотносится с одной словарной статьей, которая предсказывает синтаксическое и семантическое поведение слова в тексте. Словарная статья содержит следующую информацию:
1. Описание собственной семантики слова, выраженное формулой, в качестве атомов которой используются элементы доменов семантических характеристик и смысловых отношений.
2. Описание грамматической роли леммы в предложении.
3. Описание валентной структуры слова, выраженное на языке смысловых отношений.
4. Семантические ограничения на выражения актантов слова в тексте, записанные на языке семантических характеристик.
5. Грамматические ограничения на выражения актантов слова в тексте.
Мы не будем описывать внутреннее устройство словарной статьи, так как оно достаточно подробно описано в статье настоящего выпуска. Приведем статистическое описание словарного состава словаря РОСС:
Таблица распределения словарных статей по частям речи
Часть речи |
Существит. |
Глагол |
Прилагат. |
Причастие |
Процент статей |
68 % |
19 % |
12 % |
1 % |
Таблица распределения словарных статей по числу валентностей
Число валентностей |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
Процент статей |
21 % |
40 % |
25 % |
2 % |
3% |
0.1 % |
0.1 % |
Таблица распределения некоторых семантических характеристик
Семант. характеристика |
ДЕЙСТВ |
ИНТЕЛ |
КАУЗ |
НОСИНФ |
ФИН |
ДОЛЖ |
Процент статей |
16 % |
3 % |
23 % |
3 % |
4 % |
5 % |
Таблица распределения некоторых смысловых отношений
СО |
ПРИНАД |
ИДЕНТ |
АГЕНТ |
АДР |
ЗНАЧ |
ОГРН |
ПАЦИЕН |
СУБ |
ОБ |
% статей |
12 % |
9 % |
14 % |
7 % |
8 % |
10 % |
9% |
25% |
25 % |
Теперь перечислим все операции,
которые определены на словарных статьях. Словарную статью можно представлять
как множество пар <словарное поле, словарное значение>. Значит, на
статьях можно определить операции объединения, пересечения. При непосредственной проверке оказалось, что в
словаре нет статей, которые полностью включаются в другие статьи. Для словарной статьи можно создать проекцию
на определенные словарные поля (т.н. “срез словаря”). Проекция
статьи Х на набор полей С - это статья,
полученная из Х выбрасыванием всех
полей, не входящих в набор С.
Кроме операций на словарных статьях, можно определить отношения, которые более основательно эксплуатируют значения словарных полей, в частности следующие отношения:
1. CanBeGrammActant (X, Y) - устанавливается, когда Х удовлетворяет грамматическим ограничениям некоторого из актантов Y.
2. CanBeSemActant (X, Y) - устанавливается, когда Х удовлетворяет семантическим ограничениям некоторого из актантов Y.
Эти отношения используются семантическим анализом.
Программная оболочка
Программа-оболочка для словаря написана на Delphi 2.0 под операционную
среду
Windows NT. Программа активно
использует стандартные объекты
реляционных баз данных, однако, не может быть названа реляционной базой
данных ввиду следующих отклонений, возникших в результате оптимизации программы
по скорости и размеру:
1. Некоторые атрибуты некоторых отношений (читай “таблиц”) не атомарны.
2.
Схемы некоторых отношений включают в себя
две ссылки на одну таблицу.
3.
Во время работы программы часть таблиц преобразуется в специальные структуры в оперативной
памяти, что необходимо для ускорения работы.
Несмотря на эти отклонения программа, активно использует в своей работе язык SQL.
Программа прошла тестирование и сейчас функционирует в сетевом режиме (два терминала).
Литература
1. Н.Н.Леонтьева. "Политекст":
информационный анализ политических текстов. - НТИ, сер.2, N4, с.5-18. 1995.
2. Yudina T. IS Russia: An Artificial
Intelligence - Based Document Retrieval System in
Oracle 7// Select. - 1995.-2, No 1.
3.
Д. Меейр. Теория
реляционная баз данных. Москва-Мир.
1987 год
4.
A.
Сокирко.
Программная реализация русского общесемантического словаря.- дипломная работа,
РГГУ, 1997 год.
[1] Все статистические данные получены новой программной оболочкой словаря, специально разработанной по гранту РГНФ.