УДК 81.139, 004.041, 004.272.44
ОБЪЕКТНО-АТРИБУТНЫЙ ПОДХОД ДЛЯ СЕМАНТИЧЕСКОГО АНАЛИЗА
ЕСТЕСТВЕННОГО ЯЗЫКА1,2
Салибекян Сергей Михайлович, доцент, Московский институт электроники и математики Национального исследовательского университета «Высшая школа экономики», Москва,
ssalibekyan@hse .ru
Халькина Светлана Борисовна, студент, Московский институт электроники и математики Национального исследовательского университета «Высшая школа экономики», Москва,
Тиновицкий Кирилл Дмитриевич, студент, Московский институт электроники и математики Национального исследовательского университета «Высшая школа экономики», Москва,
В статье рассматривается применение объектно-атрибутного (ОА) подхода для семантического (смыслового) анализа естественного языка (ЕЯ). Проблематика семантического анализа становится актуальной все больше и больше: объем информации в мире растет экспоненциальными темпами и применяемый в настоящее время поиск по ключевым фразам уже не может дать пертитентных (соответствующих замыслу пользователя) результатов; мировая глобализация требует все больших объемов автоматического перевода с иностранных языков, а применяемые сейчас статические алгоритмы не обеспечивают должного качества перевода; все более актуальным становится автоматическое реферирование текстов и т.д. За 50-летнюю историю компьютерной лингвистики было предложено множество методик семантического анализа текста: генеративные грамматики, теория «Смысл <-> текст» Игоря Мельчука, концепция семантического Web. Однако до сих пор не разработано методики, описывающей семантический анализ ЕЯ на всех стадиях анализа, обеспечивающей единый подход буквально на всех все уровнях организации вычислительной системы и всех стадиях анализа языка. Предлагаемый нами подход, помимо других достоинств, лишен этого недостатка.
ОА-подход [1] объединяет в себе буквально все стадии анализа ЕЯ и уровни вычислительной системы - формат данных, методика построения семантической сети и поиск информации в ней, правила преобразования исходного текста в семантическую сеть и язык программирования для описания алгоритма преобразования и т.д. Благодаря тому, что все уровни вычислительной системы работают по единым принципам, значительно повышается эффективность системы в целом. ОА-подход относится к классу dataflow (вычислительный процесс с управлением потоком данных) и обладает массой положительных качеств: объектный принцип, способность синтеза и модификации сложно структурированных данных непосредственно во время вычислительного процесса, удобство организации параллельных и распределенных вычислений и т.д., - которые позволяют эффективно реализовывать системы семантического анализа ЕЯ.
Как известно, применение объектно-ориентированной парадигмы (ООП) для распознания ЕЯ не дало ожидаемого эффекта. Так, ОО-парадигма не нашла широкого применения даже в области баз данных, чего же говорить о создании баз знаний (серьезные надежды на то, что ООП потеснит реляционную парадигму баз данных, улетучились еще в середине 1990-х годов) [2]. Причиной тому послужили громоздкость и негибкость ООП [3]: класс, как структура данных, создается заранее и не изменяется во время вычислительного процесса, таким образом, вычислительная система способна распознавать только те объекты, которые были заранее заложены в нее ее создателем; дополнение же базы знаний новой
1 Статья рекомендована к опубликованию в журнале "Информационные технологии и вычислительные системы"
2 Исследование осуществлено в рамках Программы фундаментальных исследований НИУ ВШЭ в 2014 году
80
информацией влечет за собой трудоемкий процесс рефакторинга (изменения внутренней структуры) программы. Получается, что с помощью ООП весьма затруднительно создавать системы искусственного интеллекта и системы семантического анализа ЕЯ в том числе, в задачу которых входит осмысливание новых, еще неизвестных компьютеру объектов, смысловых связей и фактов. Поэтому для реализации семантического анализа ЕЯ необходим другой подход. И наше исследование как раз и посвящено применению альтернативного ООП объектно-атрибутного (ОА) подхода к организации вычислительного процесса. Подход этот реализует объектный принцип [4], т.к. с его помощью можно описывать объекты, их поведение и их взаимодействие, обеспечивая таким образом абстракцию данных и программы. Однако, в отличие от ООП, ОА-подход дает возможность легкого синтеза и модификации информационных конструкций непосредственно во время вычислительного процесса по заложенным в вычислительную систему правилам (алгоритму). Еще одним преимуществом ОА-подхода можно считать разработанную для него теоретическую базу, описанную в [5].
Итак, опишем разработанную нами методику семантического анализа ЕЯ. Основу системы анализа составляет семантико-морфологический словарь, в который помещаются описания лексем. Описание одной лексемы представляет собой ОА-список [6] всех возможных ее толкований - как известно, лексемы ЕЯ обладают свойством полисемии (многозначности). Каждое толкование лексемы представляет собой совокупность по крайней мере двух связанных между собой информационных капсул (ИК): капсула с описанием морфологических свойств толкования лексемы (падеж, род, число и т.п.) и капсула с семантическими свойствами. При анализе текста происходит поиск лексем в этом словаре, и из найденных описаний формируется ОА-список толкований лексем исходного текста.
Далее происходит преобразование этого списка в семантическую сеть (или в нашей терминологии семантический ОА-граф), которая, по сути, будет представлять онтологическую базу знаний, сформированную исходя из информации, заложенной в анализируемом тексте. Такую семантическую сеть можно будет использовать для поиска необходимой информации, автоматического перевода, автоматического реферирования и т.п.
Преобразование осуществляется в несколько этапов (проходов) от простого к сложному. На каждом проходе происходит «склейка» второстепенных лексем в словосочетании (синтагме) с лексемой главной. Так, при анализе русского языка на первом проходе осуществляется склейка наречий степени с качественными наречиями и глаголами. Например, для словосочетания «очень зеленый» в капсулу с семантическим описанием слова «зеленый» добавится информационная пара (ИП) с атрибутом «степень» и нагрузкой, в которой будет записан код, определяющий степень «зелености» (для определения степени, например, можно воспользоваться лингвистической переменной [7]). Описание же слова «очень» удаляется из списка лексем исходного текста. Вторым проходом при анализе русского языка является склейка прилагательных с существительными. Например, в синтагме «очень зеленый стул» на первом проходе происходит склейка слов «очень» и «зеленый» (слово «очень» удаляется из списка и «повисает» на слове «зеленый») - в результате в списке исходных лексем остается словосочетание «зеленый стул», которое на втором проходе преобразуется так: к описанию слова «стул» добавляется атрибут «цвет» со значением «зеленый» и степенью «очень», а описание слова «зеленый» удаляется из исходного списка лексем. В результате, получается следующий семантический ОА-граф: {Слово=«стул» атрибут={Цвет=Зеленый Степень=Очень}}. Следует отметить, что при склейке к главному слову «прилипает» только ИК с семантическим описанием второстепенной лексемы, ИК с описанием морфологических свойств удаляется за ненадобностью, т.к. в дальнейшем не понадобится для семантического анализа. В итоге в ОА-граф, описывающий смысл текста, попадают только ИК с описанием семантики.
Далее следуют проходы для анализа синтаксических конструкций с союзами, и заключительный проход - склейка существительных и глаголов. Для анализа смысловых связей между предложениями в ОА-системе применяется так называемый тематический
81
словарь, представляющий собой ОА-список, куда помещаются описания тех объектов, упоминания о которых встречались в тексте ранее. Например, при анализе первого предложения из фрагмента текста «В комнате стоял стул. Стул был зеленым.» описание объекта «стул» попадет в тематический словарь; при анализе же второго предложения для слова «стул» будет найден объект, который уже упоминался в тексте и к нему будет добавлено свойство «зеленый». Схема синтеза семантического графа из текста на ЕЯ приведена на рис. 1.
Рис. 1 - Схема построения ОА-графа из списка лексем исходного текста
Алгоритм преобразования текста в семантический граф задается с помощью правил преобразования (ОА-грамматика), основой которых стали формальные грамматики Хомского. ОА-грамматика в отличие от своего прототипа оперирует не с цепочкой символов, а с цепочкой (списком) капсул с описанием лексем (список исходных лексем) и служит для формирования семантического ОА-графа. Формально ОА-грамматику можно описать как четверку OAG= {A,L,P,G}, где A - алфавит атрибутов; L - алфавит нагрузок ИП (в этот алфавит входят не только числа и строки, но и ссылки на ИК; G - ОА-граф (список описаний лексем исходного языка); P - правила преобразования ОА-графа. Правило преобразования списка лексем состоят из двух частей (левая и правая), разделенных знаком «,». Слева помещается последовательность лексем из списка исходных лексем, справа - ОА-граф, на который заменяется последовательность этих лексем. ОА-граф описывается с помощью следующих обозначений:
- a = l - обозначение ИП (IP) (ae A, leL, где A - множество атрибутов, L - множество нагрузок ИП);
- Name{...} - ИК (IC); между знаками «{» и «}» записываются ИП, входящие в ИК); ИК представляет собой цепочку ИП; Name - имя ИК (или ссылка на ИК);
- {.a1= ICName{Ip1 ,Ip2...} .} - ИК, в которую входит ИП с указателем на другую ИК в нагрузке; имя ИК может и не указываться;
- * - конкатенация ИК (запись IC1*IC2 обозначение показывает, что капсула IC2 должна быть сцеплена с капсулой IC1);
82
- | - вариант (перечисление смысловых альтернатив);
- ( ) - группировка правил вариантов (знак «|» имеет более низкий приоритет, чем «*»), т.е. правила, заключенные в круглые скобки, имеют больший приоритет, например, выражение IC (IC2 | IC3) эквивалентно IC*IC2 | IC*IC3;
- :: - знак, показывающий, что ИК исключается из списка лексем.
Например, для обработки предлога «in» в английском языке применяются правила (цифрами обозначены 1-й и 2-й проходы анализа):
1. in NOUN , temp{Location ={Subj={NOUN*{Location=temp}} Location=in };
2. NOUN1 in*{ Location=temp} , NOUN1*{ Location=temp*{Obj=NOUN1}}; где Location - атрибут места расположения чего-либо, Obj - объект, Subj - субъект.
В результате применения вышеприведенных правил порождается фрагмент ОА-графа, состоящий из описаний двух объектов, связанных между собой пространственной связью «Находится в». На основе подобных правил строится ОА-программа, осуществляющая преобразования списка исходных лексем в семантический ОА-граф.
Теоретической основой семантического ОА-графа является теория семантических падежей (валентностей) Ч. Филмора [8], в которой вводится перечень возможных типов связей между объектами, описываемыми в тексте. Так, Филлмор выделяет 9 ролей (связей), а Ю.Д.Апресян - 25. Например: объект, субъект, инструмент. Так, для предложения «Мальчик ударил большую змею палкой» будет синтезирован следующий ОА-граф (жирным выделены атрибуты ИП, которые одновременно обозначают семантические роли/валентности):
{ Объект = мальчик
Субъект = { Объект = змея Свойство = { РамерОтносительный = большой }
}
Действие = ударить
Инструмент = палка
}
В настоящее время нами ведется работы по составлению перечня семантических ролей, т.к. ролей, выделенных Филлмором, Апресяном и другими лингвистами, не хватает для описания семантики текста. И уже выделено порядка сотни семантических ролей (валентностей).
Отдельно необходимо сказать о способе работы с полисемией (многозначностью) лексем, которая обеспечивается с помощью многоуровневого ОА-списка. На рис. 2 проиллюстрирована обработка двух лексем, имеющих по два толкования. Допустим, согласно правилам преобразования списка лексем, необходимо произвести склейку 2-го и 3го толкований лексем. Тогда происходит так называемое расфоркивание списка толкований лексем (от англ. Fork - развилка), в результате которого образуется список из четырех альтернативных толкований фрагмента текста, содержащих все возможные комбинации толкований этих двух лексем. На ветви, соответствующей склеиваемым толкованиям, осуществляется модификация списка лексем, согласно применяемому правилу преобразования. Альтернативные ветви толкований фрагментов текста могут не только генерироваться в результате расфоркивания, но и удаляться из списка, если в процессе дальнейшего анализа обнаруживается синтаксическое или семантическое несогласование лексем в ней. Таким образом, преобразование списка толкований исходных лексем в семантический ОА-граф представляет собой процесс генерации и уничтожения альтернативных ветвей толкований фрагментов текста. Семантическое согласование заключается в сравнении семантических атрибутов. Например, после союза «в» («in») должно обязательно находиться слово с семантическим атрибутом «вместилище» («container»), после союза «на» («Under») обязательно должна находится лексема с семантическим атрибутом «поверхность» («surface») и т.д.
Получившийся семантический ОА-граф, состоящий из вершин трех типов - объекты (задаются существительными), связи между объектами (глаголы или союзы) и атрибуты/свойства (прилагательные), - может быть использован, например, для
83
семантического поиска. Для этого введенный пользователем запрос на ЕЯ также преобразуется в ОА-граф и далее происходит определение, является ли ОА-граф запроса подграфом ОА-графа текста; если да, то пользователю выдается сообщение об успешном поиске.
Для совпадения графов необходимо, чтобы ИП из капсул из вершин графа-запроса полностью совпали с ИП из капсул в вершинах графа-текста. Для ускорения поиска подграфа была разработана методика спектра атрибутов. По этой методике происходит подсчет всех атрибутов, встречающихся в ОА-графе, и далее поиск подграфа начинается с тех вершин, в которых обнаружено наименьшее количество совпадений в обоих ОА-графах. В ОА-графе используются двусторонние связи между узлами для того, чтобы можно было произвести обход графа начиная с любой его вершины. Таким образом, удастся значительно снизить число переборов во время поиска (рис. 3).
В настоящее время разработанные принципы анализа ЕЯ реализованы на практике -нами созданы экспериментальные базы знаний для анализа русского и английского языков, включающие в себя порядка двух сотен слов и в районе ста правил преобразования списка исходных лексем, что позволило доказать работоспособность предложенной методики семантического анализа ЕЯ.
В заключении следует сказать, что разработанная методика объединяет все уровни вычислительной системы. Дело в том, что вычислительная нагрузка по семантическому анализу ЕЯ ложится на функциональные устройства (ФУ). ФУ могут быть реализованы как программно, так и аппаратно, т.е. объектный принцип может быть реализован уже на уровне «железа», чего в настоящее время невозможно для ООП. Формат данных для всех этапов анализа ЕЯ совпадает - все данные и их структура представлены в виде ИП, ИК и ОА-графов. Благодаря этому отпадает необходимость в конвертации данных при переходе с одного уровня анализа ЕЯ на другой, и также сводится к минимуму семантический разрыв между языком программирования высокого уровня (для программирования ОА-системы применяется специализированный язык) и аппаратной частью компьютера. Работать в единой парадигме смогут буквально все специалисты, занятые в создании систем семантического анализа ЕЯ: аппаратчики, программисты, лингвисты, математики.
Также следует отметить, что формат представления программы в ОА-системе такой же, что и для представления данных (программа представляет собой последовательность ИП, которые передаются для ФУ) - и программу можно при необходимости встраивать в ОА-
84
граф, наделяя таким образом его поведением (в рамках проводимой работы для программного кода использовался отдельный ОА-граф).
В дальнейших планах работ - расширение семантико-морфологического словаря и увеличение числа правил обработки списка лексем и критериев семантического согласования лексем в экспериментальной базе данных. В результате этой работы появится возможность обработки ОА-системой адаптированных текстов, что позволит провести имитационное моделирование ОА-системы с целью определения ее характеристик: сложность алгоритма обработки ЕЯ, требуемый объем памяти, быстродействие вычислительной системы.
Литература
1. Салибекян С.М., Панфилов П.Б. Объектно-атрибутный подход к построению интеллектуальных систем // Нейрокомпьютеры: разработки и применение. 2011, №11 - с. 917.
2. Дейт, К. Дж. Введение в системы баз данных, 8-е издание.: Пер. с англ. — М.: Издательский дом "Вильяме", 2005
3. Gabriel, R. Objects Have Failed: Notes for a Debate. (retrieved 17 May 2009). http://www.dreamsongs.com/Files/ObiectsHaveFailed.pdf
4. Салибекян С.М., Панфилов П.Б. ОА-архитектура - новый подход к созданию объектных систем // Объектные системы - 2011: материалы III Международной научно-практической конференции (Ростов-на-Дону 10-12 мая 2011 г.) / Под общ. ред. П.П. Олейника. - Ростов-на-Дону, 2011. - С. 73-79 URL: http://obiectsvstems.ru/files/Obiect Systems 2011 Proceedings.pdf
5. Салибекян С.М., Панфилов П.Б. Формализация dataflow-модели вычислительного процесса. //
Объектные системы - 2013: материал V Международной научно-практической конференции (Ростов-на-Дону, 10-12 мая 2013 г.) / Под общ. ред. П.П. Олейника. - Ростов-на-Дону: ШИ ЮРГТУ (НПИ), 2013. - C. 87-93 URL:
http://obiectsvstems.ru/files/2012/Obiect Systems 2013 Proceedings.pdf
6. Салибекян С.М., Панфилов П.Б. Анализ языка с помощью вычислительной системы
объектно-атрибутной архитектуры. // Объектные системы - 2012: материал VI
Международной научно-практической конференции (Ростов-на-Дону, 10-12 мая 2012 г.) / Под общ. ред. П.П. Олейника. - Ростов-на-Дону: ШИ ЮРГТУ (НПИ), 2012. - C. 31-37 URL: http://obiectsvstems.ru/files/2012/Obiect Systems 2012 Proceedings.pdf
7. Л. Заде. Понятие о лингвистической переменной и его применение к принятию решений. -М.: Мир, 1976.
85
8. Филлмор Ч. Дело о падеже // Новое в.зарубежной лингвистике. М.: Прогресс, 1981. Вып.Х. С. 369-495.
УДК 04.004
ТЕСТОВАЯ МОДЕЛЬ ДЛЯ ОБУЧЕНИЯ ПРОЕКТИРОВАНИЮ ОБЪЕКТНООРИЕНТИРОВАННЫХ БАЗ ДАННЫХ
Олейник Павел Петрович, к.т.н, системный архитектор программного обеспечения,
ОАО "Астон", доцент, ШИ (ф) ЮРГПУ (НПИ) им. М.И. Платова, [email protected]
Обучение студентов на высоком уровне и подбор простых и всеобъемлющих примеров - основная задача любого преподавателя ВУЗа. Ключевой проблемой в данном случае является нехватка времени, отводимого на практические занятия, что связано с наличием множества функциональных возможностей в современных языках программирования, средах разработки, систем управления базами данных. В статье представлена простая тестовая модель, используемая автором в течение нескольких лет при обучении студентов проектированию объектно-ориентированных баз данных (ООБД) при изучении соответствующей дисциплины. Представленная диаграмма классов может быть использована при обучении студентов на курсах, связанных с изучением объектноориентированной парадигмы.
Рис. 1 - Концептуальная (слева) и логическая (диаграмма классов, справа) модели тестовой
предметной области
В качестве предметной области использована информационная система для отдела кадров. Эта предметная область понятна каждому специалисту и довольно подробно описана в различных источниках, в том числе и работе, посвященной языку моделирования UML [1]. Т.к. реализовать структуру БД необходимо в среде ООСУБД, то финальной стадией проектирования является построение диаграммы классов, для которой были выделены следующие критерии оценивания (КО), требующие наличия:
1. Глубокой иерархии наследования;
2. Абстрактных и реализованных классов;
3. Сложных (n-арных) ассоциаций;
4. Связей с атрибутами;
5. Перечислений;
6. Рекурсивных связей.
Рассмотрим необходимость введения каждого критерия. Опыт преподавания показал, что выделить базовый класс и унаследовать от него производный может практически каждый студент. Однако построение правильной глубокой иерархии для многих является
86