СОВРЕМЕННЫЕ ИНСТУМЕНТАЛЬНЫЕ СРЕДСТВА В КОНТЕКСТЕ ЛИНГВИСТИЧЕСКИХ ИССЛЕДОВАНИЙ

Artificial Intelligence

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

Одной из важнейших задач искусственного интеллекта (ИИ) является упрощение взаимодействия человека с компьютером за счет создания эффективных способов общения на естественном языке. Для реализации данной задачи необходимо разработать программный комплекс, позволяющий распознавать любое текстовое сообщение естественного языка (анализ) и либо кодировать его в определенный формальный язык (перевод), либо выполнять какое-то действие согласно результату анализа принятого сообщения (диалог). Подобный программный комплекс будет состоять из довольно сложных унифицированных компонент, которые предназначены для выполнения поэтапного распознавания и обработки текста с помощью лингвистических методов, использующих одну или несколько баз данных и словарей. Важнейшими компонентами этого комплекса является продукционная компонента, необходимая для обработки продукционных правил, определяемых лингвистическими правилами, а так же словарная компонента, которая реализует работу с базами данных и словарями.
Многие прикладные лингвисты в настоящее время [1,2] работают над задачами создания систем построения различных естественно-языковых интерфейсов, которые ориентированы на классификацию текстов в структурированной определенным образом предметной области, и на поддержку запросов к базам данных. Подобные системы используют семантический анализ естественного языка, где понимание основано на содержательной информации, которая характеризует данную предметную область. Для решения данной задачи необходимо разработать и реализовать алгоритмы морфологического и синтаксического компонентов лингвистического процессора естественного языка (ЕЯ). Лингвистический процессор (ЛП) представляет собой комплекс программ, обеспечивающих анализ и синтез текста на естественном языке. Задачей такого процессора является разбор и обработка поступающей в ЛП информации в виде отдельных фраз на естественном языке (при анализе) или построение фразы ЕЯ, которая соответствует формальному описанию ее смысла (при синтезе).
Лингвистический процессор состоит, как правило, из трех компонентов: лингвистического, математически-алгоритмического, и программного. То есть для того, чтобы машина могла воспринять естественный язык, она должна распознать смысл текста, а это можно осуществить с помощью набора словарей и грамматик. Сам текст можно определить, как избыточную многоуровневую систему хранения и передачи информации [1].
Обычно в ЕЯ выделяют несколько языковых уровней: синтаксический, морфологический, семантический. И на каждом из этих уровней используются свои структуры данных, обрабатываемые и формируемые соответствующими компонентами ЛП.
Морфологический компонент ЛП представляет собой набор программ, которые выполняют морфологический анализ и синтез слов ЕЯ. Морфологические модели, которые существуют в настоящее время, различаются в основном по результатам функционирования морфологических анализаторов, по полноте покрытия лексики и по способу членения словоформ. Лексемы в базе данных могут содержать все словоформы. Такой способ представления является очень удобным и эффективным для малофлективных языков, где различные грамматические категории реализуются не благодаря вариации флексий, а определенным грамматическим способом (например, с помощью предлогов). Примером малофлективного языка является английский. Кроме того, в базе данных могут храниться основы лексем и перечни флексий, которые присоединяясь к основе, дают новую словоформу. Такой способ представления лексем подходит для флективных языков, где разные грамматические категории реализуются при помощи вариации флексий. Русский и украинский язык являются флективными.
База данных должна содержать всю информацию, требуемую для морфологического анализа и синтеза, для тех лексем, с которыми будет работать ЛП. В разрабатываемой базе данных необходимо предусмотреть возможность хранения значительного количества разнообразных существительных (мужской, женский и средний род, одушевленные и неодушевленные), прилагательных, глаголов (возвратные и невозвратные, совершенного и несовершенного вида, переходные и непереходные), предлогов, местоимений, наречий, и союзов. Помимо этого, в морфологической базе данных должны содержаться лексемы (включая омонимичные лексемы). Отдельным вопросом, который существенно осложняет выполнение задачи, является наличие в языке так называемых «псевдоформ».
Создавая синтаксический компонент, необходимо разработать синтаксическую модель определенного естественного языка. Для этого нужно определить способ представления синтаксической структуры единицы (предложения или текста), способ описания синтаксиса языка, метод анализа и синтеза на естественный язык.
Синтаксический анализатор естественного языка построить значительно сложнее, чем морфологический, вследствие отсутствия пока четких лингвистических алгоритмов, которые бы описывали какой-либо естественный язык. Грамматика естественного языка крайне неоднозначна, синтаксис разнообразен, сложен и неструктурирован (особенно в разговорной речи). Обычные для естественного языка явления, такие как эллипсис, инверсия, парцелляция и многое другое, является трудными для автоматической обработки. Поэтому до работы синтаксического анализатора некоторые сложные языковые структуры часто необходимо обрабатывать специальными процедурами. К таким процедурам относится обработка фразеологизмов, проверка знаков пунктуации, правильности расстановки скобок, и т.д. Помимо этого, автоматическое дробление текста на отдельные предложения является довольно сложной задачей и тоже проходит предварительный синтаксический анализ.
Синтаксические анализаторы отличны друг от друга типом текстов (научный текст, художественная литература), правильностью анализируемого ряда словоформ, способностью анализировать отдельное предложение (или его часть), состоящую больше чем из одного предложения, типом анализа.
Существует несколько типов формальных грамматик, которые используются для того, чтобы описать синтаксис естественного языка. Это грамматика зависимостей, контекстно-свободные грамматики, ориентированные контекстно-свободные грамматики, и сетевые грамматики. Основные типы формальных грамматик описаны в [2], [3].
Крайне важной задачей ИИ является построение семантической сети. Чаще всего для ее описания используют концептуальные графы Дж. Соува и блоковые структуры Г. Хендрикса. Блоковые структуры подробно описаны в [4].
Также семантические системы описывают в виде концептуальных графов. Вершинами концептуального графа являются объекты (понятия) предметной области, или их отношения. Ребра концептуального графа соединяют понятия-вершины-понятия и отношения-вершины-отношения между собой. Тогда ребра могут выходить из вершин-понятий и заканчиваться в отношении-вершине-отношении, или же наоборот. Для того, чтобы различать указанные типы вершин, на концептуальных графах их изображают прямоугольником и эллипсом, соответственно [5].
Одним из преимуществ выделения отношений в самостоятельные вершины концептуального графа заключается в упрощении представления парных отношений. Такое отношение представляется отношением-вершиной-отношениям с n-ребрами. Обычно каждый концептуальный граф фиксирует одно предложение. Тогда база знаний будет представляться в виде совокупности таких графов. Графы могут использовать падежные связи глаголов и демонстрировать возможности концептуальных графов для представления предложений на естественном языке.
Каждое понятие-верх-понятие концептуального графа может иметь метку типа (тип обозначает класс принадлежности вершины). На концептуальном графе метку типа вершины отделяют двоеточием от конкретного имени вершины. Можно вводить индивидные понятия-вершины-понятия с одинаковыми именами на концептуальных графах. Для различия экземпляров объектов (понятий) с такими же именами, используется специальный числовой маркер, перед которым записан символ #. Кроме числового маркера, на концептуальных графах могут применяться обобщенные маркеры, которые обозначаются знаком *. В сочетании с переменной, которая записывается после этого знака, обобщенный маркер оказывается полезным в ситуациях, когда две различные вершины графа являются одним и тем же объектом. Тогда как числовые маркеры, применяемые для выделения в семантической сети индивидных объектов, обобщенные маркеры позволяют выделять тот же обобщенный объект заданного типа.
На концептуальных графах вводятся операции, позволяющие выполнять их преобразования. Новые графы получаются с помощью четырех операций: копирование, специализации, объединения и упрощения. Операция специализации заключается в замене обобщенной вершины ее индивидным (конкретным) вариантом. При этом может быть два случая: 1) если вершина отмечена обобщенным маркером, то обобщенный маркер заменяют конкретным индивидным маркером (именным или числовым). 2) тип вершины можно заменить соответствующим подтипом, обладающим необходимыми свойствами. Операция объединения позволяет получать из двух графов один. Операция упрощения позволяет исключить на графах дубликаты отношений. При этом исключаются отношение-вершина-отношение и связанные с ней дуги. Дублирование отношений часто возникает в результате выполнения операции объединения.
Операция специализации позволяет сопоставить две вершины концептуального графа и, если сопоставление успешное, выполнять объединение. Совместное использование операций специализации и объединения обеспечивает реализацию механизма наследования. Например, заменив обобщенный маркер индивидным, мы распространяем свойства типа на конкретный индивидный объект. Если в ходе выполнения операции ограничения происходит замена типа на его подтип, то имеет место наследование «подкласс-класс-подкласс».
Рассмотренные выше простейшие операции не гарантируют получения правильных утверждений на основе преобразованных графов. Конкретизация вершин-понятий, выполняемая в ходе операций специализации и объединения, не всегда соответствует действительности. Например, если в ходе выполнения операции объединения соединяются два графа, агенты которых обозначены тем самым понятием, то это вовсе не означает, что не может произойти так, что эти понятия соответствуют двум различным индивидным объектам.
Концептуальные графы могут содержать вершины, являющиеся предложениями. Такие вершины изображаются в виде прямоугольного блока, содержащего подграф, соответствует предложению.
Концептуальный граф позволяет естественным образом выражать конъюнкцию. Сложнее с другими логическими операциями: дизъюнкцией, логическим отрицанием, кванторами.
Для представления возражения на концептуальных графах, применяется унарный логический оператор «не». Оператор применяют к предложению. Утверждение, которое фиксируется предложением, считается в этом случае ошибочным.
Используя отрицание и конъюнкцию, можно представить на концептуальных графах дизъюнкцию. Однако для упрощения концептуальных схем дизъюнкцию представляют в виде специального бинарного отношения «или», аргументами которого являются вершины-предложения.
Существует возможность взаимного перехода от описаний предметной области языком исчисления предикатов в концептуальные графы, и наоборот. Выбор тех или иных средств определяется типом решаемых задач и предпочтениями разработчиков систем искусственного интеллекта.
Одним из простых средств вывода на семантических сетях есть поиск по пересечению. Другое мощное средство вывода - сравнение с образцом. В этом случае происходит сравнение отдельных фрагментов сети и запрос к базе данных представляется в виде отдельного подграфа, строящегося по таким же правилам, как и семантическая сеть. С помощью сравнения подграфа запроса с фрагментами сети происходит поиск ответа на запрос. Для этого на подграф накладывается запрос на соответствующий фрагмент сети. Положительным станет такое наложение, в результате которого фрагмент сети будет идентичным подграфу запроса. Для этого допускается использование в запросе переменных.
В общем случае в подграфе запроса могут быть заданы объекты, атрибуты, имена отношений, не представленные в базе знаний явно. Это требует выполнения предварительных преобразований фрагментов семантических сетей, которые сопоставляются. В результате таких преобразований могут быть получены новые связи. Указанные преобразования выполняются на основе простых базовых операций.
Методы вывода на семантических сетях, использующих идею пересечения или сопоставления фрагментов сетей, имеют существенный недостаток. Он связан с комбинаторным ростом числа сопоставлений или пересечений в сетях достаточно большой размерности.
В ряде систем, основанных на семантических сетях, используются специализированные правила вывода - методы дедуктивного вывода на семантических сетях, основанные на понятиях раскраски графов и операторах преобразования сетей [7].
Первые попытки интеллектуальной обработки текстов на естественном языке были предприняты в 60х—70х годах. С этой целью было создано много экспериментальных программ, которые способны «общаться» с пользователем на естественном языке. Для этого использовались концепции грамотного и структурного программирования. Грамотное программирование (ГП, Literate Programming), иногда ошибочно называемое литературным программированием, представляет собой методологию программирования и документирования. Это словосочетание иногда ошибочно переводят как «литературное программирование». Этот термин и концепцию в 1981 году выдвинул Дональд Кнут. Грубо говоря, ГП - это язык программирования, написанный на «псевдокоде» - «человеческом языке». Текст программы на таком языке понятен и легко воспринимается программистами, в то же время сам код труден, а под одной фразой-«оператором» скрывается множество других вложенных абстракций или программный код на непосредственно машинном языке. Система грамотного программирования, которую Кнут предложил как альтернативу «структурному программированию» в 1970-х годах, несмотря на доказанную эффективность, мало распространена сегодня из-за непонимания: многие думают, что ГП — это всего лишь система документирования либо форматирования стандартных комментариев [7].
В целом, широкого распространения программы, использующие лингвистический процессор пока не получили. Чаще всего причиной являлось невысокое качество распознавания фраз, жесткие требования к синтаксису «естественного языка», большие временные и ресурсные затраты, необходимые для качественного функционирования. Почти во всех системах компьютерной обработки текста используется ограниченный естественный язык, так как пока не создано полной и строгой формальной модели ни для какого естественного языка.
Представляется целесообразным формировать модели крупных фрагментов ЕЯ (статьи, книги и др.) в виде двух связанных таблиц реляционной базы данных быстроходных СУБД типа ORACLE. Строки первой таблицы содержат полное описание вершин (узлов) семантической сети в виде объекта и его характеристик. Например, в качестве объекта могут выступать слова или предложения, а характеристиками являются их различные признаки и дополнительная информация, используемая различными программами для семантического анализа. В качестве опорных объектов (узлов) выступают слова, используемые в заголовке или аннотации конкретного фрагмента ЕЯ. Эта таблица по своей структуре подобна словарю, имеющему гибкую возможность произвольной детализации хранимых объектов.
Вторая таблица описывает связи узлов первой таблицы в виде базовых смысловых фрагментов, лингвистических правил и предназначена для решения задач анализа, перевода или диалога с помощью обучаемой базы знаний.
Такой подход реализован автором при создании программы автоматической генерации реферативной информации различных текстов и сообщений энергетического характера на русском, украинском и английском языках. Предполагается, что результаты разработки будут также использоваться в создании нового поколения современных диалоговых систем персональных компьютеров.
В заключение необходимо отметить, что естественные языковые средства общения компьютера и человека продолжают развиваться и являются одним из самых перспективных способов, который позволит создать сложные информационные системы для общения человека и машины на естественном языке.
СПИСОК ЛИТЕРАТУРЫ
1. Волкова И.А. " Лингвистический процессор естественного языка. Морфологический и синтаксический компоненты. Задание практикума для студентов 3-го курса ЧФ МГУ (Методическое пособие)". Издательский отдел факультета вычислительной математики и кибернетики МГУ им. М.В.Ломоносова, 2002. -39 с.
2. Волкова И.А., Руденко Т.В. Формальные грамматики и языки. Элементы теории трансляции. — М., Изд-во МГУ, 1999.
3. Ахо А., Сети Р., Ульман Дж. Компиляторы — М., С-П, Киев, Вильямс, 2001.
4. Hendrix G.G. Encoding Knowledge in Partitioned Networks // Associative Networks: Representations and Use of Knowledge by Computers. – New York: Academic Press, 1979.
5. Интернет-ресурс:http://knhelp.wordpress.com/2012/04/19/%D0%BB5-%D1%81%D0%B5%D0%BC%D0%B0%...
6. Интернет-ресурс: http://ru.wikipedia.org/wiki/%D0%93%D1%80%D0%B0%D0%BC%D0%BE%D1%82%D0%BD%...
Интернет-ресурс: http://en.wikipedia.org/wiki/Literate_programming