МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования «КУБАНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ» (ФГБОУ ВПО «КубГУ») Кафедра вычислительных технологий АКСИОМАТИЗАЦИЯ НОРМАТИВНЫХ ОТНОШЕНИЙ НА ОСНОВЕ ДЕОНТИЧЕСКОЙ ЛОГИКИ: МЕТОДЫ И АЛГОРИТМЫ. Пекшева Марина Владимировна Краснодар 2014 СОДЕРЖАНИЕ ВВЕДЕНИЕ .................................................................................................................. 4 1 Теоретические сведения ....................................................................................... 6 1.1 Нормативные системы и документы ............................................................... 6 2 1.2 Обзор неклассических логик ......................................................................... 9 1.3 Деонтическая логика .................................................................................... 13 1.4 Разбор текстов, написанных на естественном языке ................................ 15 1.4.1 Общая теория и этапы............................................................................ 15 1.4.2 Анализ отдельных слов ......................................................................... 17 1.4.3 Синтаксический анализ ......................................................................... 18 1.4.4 Семантический анализ ........................................................................... 19 Постановка задачи и существующие решения ................................................ 23 2.1 Постановка задачи ........................................................................................ 23 2.2 Существующие алгоритмы морфологического разбора текста .............. 24 2.2.1 Метод «четкой» морфологии проведения морфологического анализа ................................................................................................................. 25 2.2.2 Метод «нечеткой» морфологии проведения морфологического анализа ................................................................................................................. 26 2.2.3 Вероятностный способ проведения морфологического анализа ...... 29 2.3 Существующие алгоритмы синтаксического анализа текста .................. 29 2.4 Существующие реализации систем обработки текстов на естественном языке ........................................................................................................................ 32 3 2.4.1 Система автоматической обработки текста «Aot.ru» ......................... 32 2.4.2 Система «ПОЛИТЕКСТ» ...................................................................... 38 Описание разработанных методов и алгоритмов ............................................ 42 2 3.1 Алгоритм формализации нормативных документов ................................ 42 3.2 Алгоритмы обработки формул деонтической логики программными средствами .............................................................................................................. 45 3.2.1 Алгоритм сохранения формулы деонтической логики в БД ............. 47 3.2.2 Алгоритм извлечения формулы деонтической логики из БД ........... 49 ЗАКЛЮЧЕНИЕ ......................................................................................................... 52 СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ ............................................... 53 3 ВВЕДЕНИЕ Нормативные документы являются особым видом документов [1], к которым относятся законы, постановления, распоряжения и т.д. С одной стороны, они являются текстами на естественном языке (русском, английском и т.д.) со всеми неоднозначностями, присущими естественному языку. С другой стороны, назначение этих текстов – применение к конкретной ситуации в предметной области и вывод о том, соответствует ли данная ситуация Закону. Обычно таким выводом в повседневной жизни занимаются все субъекты, осуществляющие какую-либо деятельность. Однако при возникновении спорных, неоднозначных ситуаций Закон должен толковать верховный суд, т.е. объяснять, как нужно поступать в подобных спорных ситуациях. Формализация закона (или любого нормативного акта) нужна для того, чтобы средствами математической логики выявлять в нем возможные противоречия, неполноту, противоречия с другими законами [2]. Это способствовало бы улучшению, как законодательной работы, так и правоприменительной деятельности. На данный момент существует довольно большое количество работ по автоматизации извлечения из неструктурированного текста какой-либо информации и формализованного представления этой информации. Однако о существовании работ по программному преобразованию нормативных текстов, заданных на русском языке, в деонтические формулы неизвестно. Вероятно, мало таких работ и в зарубежных источниках [3]. Однако практическая ценность подобных разработок очевидна. Автоматизированная обработка нормативных актов позволит выявить «дыры» и противоречия в законодательстве. Она может быть использована на предприятиях и в учреждениях при подготовке локальных актов для предупреждения противоречий с законом и с ранее принятыми локальными 4 актами, что позволит избежать массы проблем при работе с нормативными документами. Целью данной работы является аксиоматизация нормативных документов на основе деонтической логики, т.е. представление текстов законов в формализованном виде или, другими словами, в виде формул деонтической логики. Для этого необходимо изучить основы прикладных логик, в частности деонтической логики; провести анализ существующих методов и алгоритмов разбора текста, написанного на естественном языке; осуществить поиск и анализ найденных систем – «готовых решений», т.е. систем, выполняющих разбор текста, написанного на естественном языке; разработать алгоритм, позволяющий строить формализованное представление нормативных документов, а также разработать методы и алгоритмы, обеспечивающие сохранения результатов формализации нормативных документов в некоторой базе данных. Первая глава диссертационной работы содержит в себе описание тех теоретических сведений, которые необходимо было изучить для решения поставленной в данной работе проблемы. Во второй главе содержится постановка решаемой в рамках диссертационной работы задачи, а также описание существующих на данный момент решений в области автоматического анализа текста, написанного на русском языке. Третья глава содержит в себе описание методов и алгоритмов, разработанных в рамках данной работы. 5 1 Теоретические сведения 1.1 Нормативные системы и документы В любой благополучно развивающейся и достигающей своих целей предметной области можно обнаружить множество норм, или как говорят, нормативную базу. Это множество норм служит для регулирования процессов в данной предметной области. Как и перед любым регулятором, перед множеством норм стоят три ответственные задачи [4]: Обеспечить устойчивость позитивных процессов, происходящих в предметной области; Способствовать усилению позитивных процессов, т.е. более полному или точному достижению целей предметной области; Минимизировать влияние негативных процессов (помех). При этом множества позитивных и негативных процессов определяются непосредственно разработчиком нормативной базы. Поскольку множество норм – это некоторая абстракция, то воздействовать на процессы они могут только через исполнительные механизмы. Известно, что проектирование информационной системы начинается с анализа предметной области, так и при построении нормативной базы проектировщик начинает анализ с документов, имеющихся в этой области. Таким образом, формализация предметной области для организационных систем может быть сведена к формализации нормативных документов, протекающей в три этапа: выделение субъектов и объектов (множеств) и их описание, т.е. задание структуры; 6 выяснение отношений между субъектами и объектами и их задание в форме утверждений-предикатов. Например, P1(X, Y) =«X имеет право A в отношении Y»; задание норм путем объединения полученных на предыдущем этапе предикатов с помощью кванторов и других операций. Таким образом, может быть формализовано все законодательство, закон за законом. Однако, при построении множества норм проектировщик сталкивается с такой проблемой, как неполнота норм, что приводит к неполной управляемости соответствующих процессов в предметных областях [4]. Стоит отметить, что на предметную область, помимо норм, влияют также следующие факторы: влияние на предметную область извне, т.е. из других предметных областей. При этом характер влияния может быть совершено разнообразным: конкурентное, тормозящее влияние или, наоборот, влияние сотрудничества; влияние субъектов внутри предметной области, имеющих цели, с несовпадающими целями предметной области; развитие процессов в предметной области непредусмотренным нормативной системой образом; нечеткость (неприменимость) отдельных норм. Это приводит к тому, что у норм появляется своя динамика. Она должна состоять из медленно текущих процессов, по сравнению с основными процессами в области [4].В противном случае говорят о нестабильности законодательства, нормы становятся не стабильными и начинают выступать в качестве уже не ограничений, учитываемых работниками предметной области (т.н. акторами), а механизма оперативного управления. А это, в свою очередь, лишает акторов самостоятельности в принятии решений. 7 Нормативная система организационной предметной области имеет свою структуру; нормы также обладают топологической характеристикой. Норма всегда имеет область действия, и в ряде случаев данной областью является географическая область. Однако чаще всего имеется ввиду некая абстрактная «территория» образования, промышленности, сельского хозяйства. Чаще всего нормы подразделяются на глобальные и локальные. Глобальная норма рассматривает всю организационную предметную область в качестве области действия. При этом все акторы и объекты должны подчиняться этой норме при любых условиях. Локальная норма – действует на некоторой части предметной области; в ее описание должно входить указание на область действия. При этом локальные нормы не должны противоречить глобальным, а также не должны противоречить друг другу, если их области действия пересекаются. Системы норм применяются в информационных системах для отбора той информации, которую будет обрабатывать в последующем система. Всего по этому признаку выделяют три вида систем: примитивные («жадные») информационные системы, поглощающие всю информацию без разбора; интеллектуальные системы с фильтрами – пропускают входную информацию через фильтр ограничений предметной области; нормативные информационные системы – системы, в которые заложена логика нормативных документов, регулирующих отношения в предметной области. Важную роль при формализации норм играет понятие неопределенного круга лиц (предметов). Под ним понимаются те лица (предметы), которые не могут быть заранее определены в качестве конкретной стороны отношения в информационной системе и предметной области [4]. Для неопределенного круга предметов не определен не только состав круга, но и количество 8 предметов. Очевидно, что утверждение о принадлежности лица такому множеству невозможно проверить, а, следовательно, нельзя сформулировать высказывание, использующее кванторы всеобщности и существования. Поэтому для описания системы норм используется один из видов модальной логики. В частности, деонтическая логика, в которой выражения носят нормативный характер: запрещающий, разрешающий, обязывающий, и не ориентируются на определенное множество предметов, поэтому некорректности не возникает. 1.2 Обзор неклассических логик Классическая логика - это раздел современной (математической, символической) логики, включающей в себя классическую логику высказываний и классическую логику предикатов [5]. Ее особенностью является то, что она опирается на принцип двузначности, в соответствие с которым всякое высказывание является либо истинным, либо ложным. Неклассическая логика - это совокупность логических теорий, представляющих собой дополнение и дальнейшее развитие идей, лежащих в основе современной логики [6]. В неклассическую логику входят модальная логика, многозначная логика, неклассические теории логического исследования и др. Каждая из этих логик включает, как правило, соответствующие логику высказываний и логику предикатов. Последнюю из них называют функциональной или квантарной логикой. Логика предикатов - это основной раздел современной (математической, символической) логики, в котором описываются выводы, учитывающие внутреннюю структуру высказываний. 9 Рассмотрим виды неклассических логик. Их можно классифицировать следующим образом [7]: 1. Логики с неклассическим пониманием следования. Релевантная логика (логика, целью которой в первую очередь является выделить и систематизировать только уместные (релевантные) принципы логики, исключив парадоксы импликации, свойственные импликации материальной классической логики, строгой импликации и др. импликациям); Паранепротиворечивая логика (логика, не позволяющая выводить из противоречия произвольное предложение); Немонотонные логики (такие логические исчисления, в которых появление новой информации (добавление посылок) может изменить истинность заключения); Динамическая логика (логика, в которой формулы исследуются на истинность не только на заданных значениях переменных, но и на тех значениях, которые получаются в результате работы заданных программ); 2. Логики, отменяющие закон исключённого третьего. Интуиционистская логика (система философских и математических идей и методов, связанных с пониманием математики как совокупности «интуитивно убедительных» умственных построений); Конструктивная логика (изучает рассуждения о конструктивных объектах и конструкциях); Логика квантовой механики (раздел логики, необходимый для рассуждения о предложениях, которые учитывают принципы квантовой теории); 3. Логики, меняющие таблицы истинности. 10 Многозначная логика (совокупность логических систем, опирающихся на принцип многозначности); Двузначная логика (логика, опирающаяся на двузначности (бивалентности) принцип); Трёхзначная логика; 4. Логики, расширяющие состав высказывания. Логика вопросов (формальные средства описания отношения “вопрос — ответ”); Логика оценок (изучает логическую структуру и логические связи оценочных высказываний); Логика норм (исследует логическую структуру и логические связи нормативных высказываний); 5. Модальная логика. Алетические модальности (это выражаемая с помощью операторов «необходимо», «случайно», «возможно», «невозможно» информация о логической либо фактической обоснованности суждения); Деонтические модальности (это выраженная в суждении информация, побуждающая людей к определенным поступкам); Эпистемологические модальности (это выраженная в суждении информация обосновании и степени его достоверности); Временные модальности (использует такие операторы как всегда, никогда, одновременно, раньше, позже); 6. Не дедуктивные логические теории. Индуктивная логика (раздел логики, в котором изучается индукция); Вероятностная логика (логика, в которой каждому высказыванию присваивается значение из непрерывной шкалы значений от 0 до 1, 11 так, что ноль соответствует невозможному событию, а единица практически достоверному); Логика решений (логика, в которой, подчиняясь некоторому набору правил и в зависимости от вида входных сигналов, формируются выходные сигналы); Логика нечётких понятий (логика нечётких множеств, нечёткая логика - базируются на понятии нечеткого множества); 7. Другие неклассические логики. Категориальная логика (изучает свойства и отношения между утвердительными и отрицательными высказываниями обо всех, некоторых, или ни одном из членов некоего класса, или категории); Комбинаторная логика - это логика, которая заменяет переменные функциями с целью прояснить такие интуитивные операции с переменными, как подстановка; Кондициональная логика (условная логика). Её предмет — истинность условных предложений (в частности, сослагательного наклонения). Как видно из классификации неклассические логики разнообразны. Между неклассическими разделами логики существуют сложные и многообразные связи. Так, интуиционистская и модальная логики могут быть истолкованы как определенного рода многозначные логики (а именно: как бесконечнозначные логики). В рамках модальной логики может быть определено понятие логического следования, в свою очередь в терминах неклассических импликаций - определены модальные понятия и т. д [5]. 12 1.3 Деонтическая логика Деонтическая логика - раздел современной неклассической логики, в котором исследуются возможности применения средств символической логики к анализу морального, правового, политического, экономического и подобных им, нормативных, типов суждений [8]. Деонтическую логику называют [9] также логикой норм или нормативной логикой. Деонтические логики подразделяются на абсолютные (монадические) и относительные (диадические) логики. В абсолютной логике перед высказыванием p может быть поставлен любой из префиксов «обязательно», «запрещено», «разрешено». В относительной деонтической логике к этой конструкции добавляется еще и условие, например, «обязательно p при условии C», где p и C – высказывания [10]. При этом ни один из видов деонтической логики не учитывает субъекта, который обязан или может выполнить определенное действие. Отсюда – известные парадоксы деонтической логики. В традиционной схеме деонтической логики имеется пять возможных префиксных дополнений к высказыванию p [10]: обязательно p (OB p); разрешено p (PE p); запрещено p (IM p); необязательно p (GR p); необязательно (факультативно) p; (OP p). Все утверждения классической деонтической логики могут быть выражены через дополнение OB следующим образом: PEp =df ¬OB¬p (1) IMp =dfOB¬p (2) GRp =df¬OBp (3) 13 OPp =df (¬OBp) ˄ (¬OB¬p) (4) Заметим, что в стандартной деонтической логике (SDL) используется оператор O вместоOB; записывается как Op и читается как «обязательно p». Через этот основной оператор могут быть определены дополнительные операторы [9]: Pp = ¬O¬p (5) Fp = O¬p (6) Wp = ¬Op (7) Здесь формула 5 задает высказывание «разрешено p», 6 - «запрещено p», 7 - «необязательно p» или «отказ от требования, права выполнить действие p». Также следует понимать, что высказывание p – это высказывание о действии, возможном или невозможном, а выражение Op уже не имеет такого характера, поэтому повторное применение оператора O, т.е. запись OOp, не имеет никакого смысла, хотя синтаксически возможна. Система аксиом стандартной деонтической логики, включающая аксиомы и правила вывода АПИ [11, 12], и следующие три аксиомы [13, 14], строится на основе оператора O: DA1: Op→¬O¬p (8) DA2: O(p˄q) →Op˄Oq (9) DA3: O(p ˅¬p) (10) DR: p ↔ q выводимо → Op↔ Oq выводимо. (11) Здесь формула 8 задает аксиому DA1:«необязательно p» или «отказ от требования, права выполнить действие p», формула 9 – аксиому DA2:обязательны одновременно тогда и только тогда, когда обязательны 14 поодиночке, 10 – аксиому DA3:обязательно выполнить или не выполнить действие, 11 – правила вывода DR: Если p ↔ q выводимо, то и Op ↔ Oq выводимо. Иными словами, если p и q логически эквивалентны, то Op и Oq логически эквивалентны. Семантика стандартной деонтической логики строится на понятии возможных миров (или идеальных миров). Предполагается, что существует некоторое подмножество множества возможных миров, такое, что для некоторого предложения p предложение Op (означающее, что p обязательно) имеет место (выполнимо) тогда и только тогда, когда p выполнимо во всех этих мирах [15]. 1.4 Разбор текстов, написанных на естественном языке 1.4.1 Общая теория и этапы Задача разбора текстов, написанных на естественном языке, является одной из самых сложных задач нынешнего времени, существующих в рамках направления искусственного интеллекта. Это одно из перспективных направлений, которым занимаются ученые многих стран мира, но до сих пор удовлетворительного решения данной задачи найти так и не удалось. В частности данной проблемой занимается компьютерная лингвистика. Компьютерная лингвистика — раздел науки, изучающий применение математических моделей для описания лингвистических закономерностей [16]; часто используется при создании систем искусственного интеллекта. Данное научное направление занимается, главным образом, изучением методов применения вычислительной техники в лингвистических исследованиях, а также изучает вопросы осмысления текстов, написанных на естественном языке. Таким образом, компьютерная лингвистика, с одной стороны, изучает 15 применение известных математических методов для выявления закономерностей (статистическая обработка), а с другой стороны использует найденные закономерности для создания математических моделей и разработки программ, основанных на полученных моделях, для решения лингвистических задач. Общая схема обработки текстов, представленная на рисунке 1, инвариантна по отношению к выбору естественного языка [16]. Другими словами, независимо от языка, на котором написан текст, его анализ всегда проходит одни и те же этапы. Первые два этапа: разбиение текста на отдельные предложения и слова, можно считать одинаковыми для большинства естественных языков, поскольку специфичные для выбранного языка черты могут проявиться только в двух случаях: при обработке сокращений слов и при обработке знаков препинания. В частности проблемой является определение того, какие из знаков препинания являются концом предложения, а какие нет. Рисунок 1 - Общая схема обработки текста В свою очередь стадии определения характеристик отдельных слов и синтаксического анализа довольно сильно зависят от используемого естественного языка. Стадия семантического анализа (последняя стадия) также мало зависит от естественного языка, но это проявляется только в общих подходах к проведению анализа. 16 Семантический анализ основывается на результатах работы предыдущих фаз обработки текста, которые всегда специфичны для конкретного языка. Следовательно, способы представления их результатов тоже могут сильно варьироваться, оказывая большое влияние на реализацию методов семантического анализа [16]. Если семантический анализ производится на разных стадиях, то его результаты могут быть многозначны, т.е. для выходных параметров может быть указано не одно, а сразу несколько возможных значений (несколько способов трактовки одного и того же слова). В этом случае последующие стадии должны выбирать наиболее вероятные значения результатов ранних стадий анализа и уже на их основе проводить дальнейший анализ. После разделения текста на отдельные слова и предложения, оставшиеся стадии можно охарактеризовать следующим образом. К стадии анализа отдельных слов (первая стадия) можно отнести морфологический анализ, т.е. определение морфологических характеристик каждого слова - часть речи, падеж, склонение, спряжение и т.д., и морфемный анализ, т.е. разбор слова на составляющие (приставка, корень, суффикс и окончание). Вторая стадия — это синтаксический анализ; третья — семантический анализ и его всевозможные задачи (поиск фрагментов, формализация, реферирование и т.д.).Рассмотрим более детально каждую из стадий анализа текста. 1.4.2 Анализ отдельных слов К этой стадии обработки относятся морфологический и морфемный анализы слов. Входным параметром является текстовое представление исходного слова, а целью и результатом морфологического анализа является определение морфологических характеристик слова и его основная словоформа. Известно, что перечень всех морфологических характеристик слов 17 и допустимых значений каждой из них сильно зависит от естественного языка, на котором написан текст, хотя в то же время ряд характеристик (например, часть речи) присутствуют во многих языках. При морфологическом анализе слова следует понимать, что его результаты далеко неоднозначны, что можно проследить на множестве примеров. 1.4.3 Синтаксический анализ После того как произведен анализ каждого слова, начинается синтаксический анализ (анализ отдельных предложений), позволяющий определить взаимосвязи между отдельными словами и частями предложения. Результатом такого анализа является граф, узлами которого выступают слова предложения, представленный на рисунке 2; при этом, если два слова связаны каким-либо образом, то соответствующие им вершины графа связаны дугой с определенной окраской [16]. Возможные окраски дуг имеют прямую зависимость от языка, на котором написано предложение, а также от выбранного способа представления синтаксической структуры предложения. Рисунок 2 - Синтаксический разбор предложения При синтаксическом анализе предложений, написанных на русском языке, в качестве окрасок дуг можно использовать вопросы, задаваемые от одного слова к другому. В вершинах графа слова пишутся в своей основной словоформе, а не в том виде, в котором они встречаются в предложении. 18 Некоторым словам (например, предлогам) вообще не соответствует ни одна из вершин графа, но эти слова влияют на вопросы, задаваемые от одного слова к другому. Возможны и другие способы представления зависимостей между словами в предложении, например, разбор предложения по частям и выделение подлежащего, сказуемого и т.д. На основе системы этих зависимостей могут быть разработаны иные способы представления синтаксической структуры предложения [17]. 1.4.4 Семантический анализ Семантический анализ текста базируется на результатах синтаксического анализа, получая на входе уже не набор слов, разбитых на предложения, а набор деревьев, отражающих синтаксическую структуру каждого предложения. Поскольку методы синтаксического анализа на данный момент еще не являются совершенными и мало изучены, то решения целого ряда задач семантической обработки текста базируются на результатах анализа отдельных слов, и вместо синтаксической структуры предложения, анализируются наборы стоящих рядом слов [16]. Поскольку большинство методов семантического анализа все равно работают со смыслом слов, то должна существовать некоторая общая для всех методов анализа база, позволяющая выявлять семантические отношения между словами. Такой основой является тезаурус языка. На математическом уровне он представляет собой ориентированный граф, узлами которого являются слова в их основной словоформе. В нем дуги задают отношения между словами и могут иметь ряд следующих окрасок. Синонимия. Слова, связанные дугой с такой окраской, являются синонимами. 19 Антонимия. Слова, связанные дугой с такой окраской, являются антонимами. Гипонимия. Дуги с такой окраской отражают ситуацию, когда одно слово является частным случаем другого (например, слова "мебель" и "стол"). Дуги направлены от общего слова к более частному. Гиперонимия. Отношение, обратное к гипонимии. Экванимия. Дугами с такой окраской связаны слова, являющиеся гипонимами одного и того же слова. Амонимия. Слова, связанные таким отношением, имеют одинаковое написание и произношение, но имеют различный смысл. Паронимия. Данный тип дуги связывает слова, которые часто путают. Конверсивы. Слова, связанные такой окраской, имеют "обратный смысл"(например, "купил" и "продал"). Таким образом, тезаурус задает набор бинарных отношений на множестве слов естественного языка. В настоящий момент наиболее полный тезаурус создан только для английского языка [18]. Что касается русского языка, то для него работа по созданию тезауруса все еще ведется, хотя уже имеются коммерческие продукты, включающие в себя тезаурус подмножества русского языка [19],а также отдельные словари синонимов [20] и антонимов [21] для подмножества русского языка. Рассмотрим актуальные задачи семантического анализа и их существующие решения в качестве методологии решения типовых задач семантического анализа. Наиболее важная задача — это извлечение информации из текстов и представление ее в виде формальной системы знаний (в частности, в виде семантической сети). Выполнен ряд экспериментальных разработок в данном направлении, ориентированных на конкретные предметные области, однако коммерческих программных продуктов нет. Рассмотрим эту задачу подробнее. 20 Имеется семантическая сеть [22], состоящая из узлов и связей, в которой каждому из узлов соответствуют некоторые атомарные данные, а каждой дуге — некоторая окраска. Если семантическая сеть построена на основе анализа некоего текста и является формализованным представлением содержащихся в нем знаний, то каждому ее элементу соответствует определенный фрагмент исходного текста. Узлам, отражающим одинаковые по смыслу данные (скажем, вес, возраст, дата рождения), соответствуют аналогичные по синтаксическому строению фрагменты исходного текста. Значит, можно ввести шаблоны, описывающие синтаксическую структуру части исходного текста и создаваемые элементы семантической сети. При описании синтаксической структуры указываются не только связи слов в предложении, но и условия, накладываемые на каждое из слов. Эти условия могут проверять как морфологические или семантические (на основе тезауруса) характеристики слова, так и смысловые пометки этого слова, поставленные при поиске других шаблонов. Если какая-то часть текста удовлетворяет всем указанным в шаблоне условиям, то происходит ее формализация. Извлечение информации из текстов — это основа для «раскопки» текста, а также для создания систем загрузки текстов в хранилища данных [23]. Подобные системы существуют и предназначены для интеграции и очистки данных, помещаемых в хранилища, но они не предоставляют никаких средств ввода данных, содержащихся в текстовом виде. Наряду с извлечением информации существует и обратная задача генерации правильно построенных текстов [24]. Исходными данными для таких систем является четко формализованные знания. На первый взгляд, эта задача может показаться странной, ведь в большинстве случаев формализованные знания можно представлять в виде бланков, имеющих четкую, заранее определенную систему полей. Но это не всегда так. Если предметная область имеет сложную и разветвленную структуру, то большинство полей бланка часто оказываются пустыми, сильно затрудняя 21 восприятие информации. Для конечного пользователя было бы гораздо проще и удобнее иметь дело не с такими бланками, а с неформализованным, но корректно построенным, текстовым описанием тех же самых данных. С целью поиска решения двух указанных задач интересно рассмотреть методы обработки текстовой информации, разработанные Шенком [18]. Они образуют психолингвистический подход к анализу текстовой информации и основываются на двух идеях. Во-первых, для анализа одного предложения не обязательно рассматривать всего слова: смысл предложения можно определить по «ключевым» словам и наличию связей между ними. Вторая идея заключается в представлении результатов анализа текста в виде концептуальной сети, способной формально описать смысл, содержащийся в исходном тексте и являющейся семантической сетью с предопределенным набором типов узлов и дуг. 22 2 Постановка задачи и существующие решения 2.1 Постановка задачи На сегодняшний день в нашей стране существует довольно много нормативных документов. Ведь помимо кодексов и законов РФ существуют различные нормативные документы предприятий: уставы, локальные акты, постановления. Не секрет, что в большинстве нормативных документов существуют «дыры», сами документы могут противоречить друг другу. Для решения данной проблемы было решено разработать систему, которая позволила бы выявлять неточности и противоречия в системе нормативных документов. Для этого разрабатываемая система должна уметь формализовывать тексты нормативных документов, ставя в соответствие им набор формул деонтической логики. В качестве метода формализации деонтичесая логика была выбрана не случайно, поскольку именно данная прикладная логика обладает таким набором предикатов как «Обязательно», «Разрешено», «Запрещено» и др., т.е. именно теми предикатами, которые чаще всего используются для составления текстов нормативных документов. В дальнейшем набор полученных формул можно будет использовать для поиска противоречий в нормативных документах. Для этого необходимо будет реализовать систему логического вывода для деонтической логики. В рамках данной диссертационной работы требуется разработать методы и алгоритмы, позволяющие сопоставлять текстам нормативных документов соответствующий набор формул деонтической логики. Задачу будем решать в несколько этапов. Сперва, для того чтобы формализовать некоторый текст на естественном языке, требуется провести его 23 анализ, результатом которого будет служить синтаксическое или семантическое дерево разбора для каждого предложения из исходного текста. Однако получить дерево разбора еще не достаточно, требуется реализовать алгоритм, который по имеющемуся дереву синтаксического/семантического разбора будет строить формулы деонтической логики. Полученные формулы и будут представлять собой предложения из обрабатываемого нормативного документа. Помимо получения формул деонтической логики по нормативным документам, также необходимо хотя бы минимально реализовать инструментарий, позволяющий производить их обработку программными средствами. Например, сохранять их представление из ОП в БД и восстанавливать представление формулы, сохраненной в БД. Для реализации поставленных задач требуется изучить методы анализа текстов на естественном языке, а также ознакомится с уже реализованными системами обработки текстов. Возможно, для реализации системы удастся воспользоваться уже имеющимися синтаксическими или семантическими анализаторами текстов. 2.2 Существующие алгоритмы морфологического разбора текста Ранее были рассмотрены этапы разбора текста, написанного на естественном языке. Рассмотрим теперь конкретные предложения для их реализации. Существует три основных подхода к проведению морфологического анализа: 1) «Четкая» морфология; для русского языка он основан на словаре Зализняка [25]. 24 2) Основывается на некоторой системе правил, по заданному слову определяющих противоположность его морфологические первому подходу его характеристики; называют в «нечеткой» морфологией [19]. 3) Вероятностный подход, основан на сочетаемости слов с конкретными морфологическими характеристиками [26]; он широко применяется при обработке языков со строго фиксированным порядком слов в предложении и практически неприменим при обработке текстов на русском языке. Рассмотрим все три способа морфологического анализа подробнее. 2.2.1 Метод «четкой» морфологии проведения морфологического анализа В данном методе активно используется словарь Зализняка. Этот словарь содержит основные словоформы слов русского языка, для каждой из которых указан определенный код. Известна система правил, с помощью которой можно построить все формы данного слова, отталкиваясь от начальной словоформы и соответствующего ей кода. Помимо построения каждой словоформы, система правил автоматически ставит в соответствие ей морфологические характеристики. При проведении четкого морфологического анализа необходимо иметь словарь всех слов и всех словоформ языка. Данный словарь на входе принимает форму слова, а на выходе выдает его морфологические характеристики. Этот словарь можно построить на основе словаря Зализняка по очевидному алгоритму: перебрать все слова из словаря, для каждого из них определить все возможные их словоформы и занести их в формирующийся словарь. Общая 25 схема морфологического анализа на основе словаря Зализняка отображена на рисунке 3. Рисунок 3 - Морфологический анализ на основе словаря Зализняка При таком подходе для проведения морфологического анализа заданного слова необходимо просто найти его в словаре, где уже хранятся точные, «окончательно известные» значения всех его морфологических характеристик. Для одного и того же входного слова могут встретиться сразу несколько вариантов значений его морфологических характеристик [16]. Однако следует учитывать, что этот способ применим не всегда: слова, поступающие на вход, могут не входить в словарь всех словоформ. Такая ситуация может возникнуть из-за ошибок ввода исходного текста, из-за наличия в тексте имен собственных и т.д. В случае, когда метод не дает нужного результата, применяется метод нечеткой морфологии. 2.2.2 Метод «нечеткой» морфологии проведения морфологического анализа Для начала вспомним, что такое морфемный анализ. Целью морфемного анализа слова является разделение слова на составляющие: приставки, корни, суффиксы и окончания. В словаре морфем русского языка [26, 27] указано разделение каждого слова на отдельные части, но не указаны типы каждой из 26 них – какая из них является приставкой, какая корнем и т.д. Множество всех корней слов русского языка открыто, но множество всех возможных приставок, суффиксов и окончаний ограничено; кроме того, известен порядок частей слова: сначала идут приставки, затем корни, далее суффиксы и окончания. Поэтому на основе словаря морфем русского языка можно построить другой словарь, который будет содержать не только разбиение каждого слова на части, но и тип каждой из них. В таком случае, для проведения морфемного анализа слова необходимо обратиться к этому словарю. Общая структура морфемного анализа слова отображена на рисунке 4. Рисунок 4 - Морфемный анализ Морфемный анализ не ограничивается обращениями к словарю. В ситуации, когда слово отсутствует в словаре, возможно непосредственное проведение анализа на основе стандартного строения слов русского языка (приставка — корень — суффикс — окончание) и множества всех приставок, суффиксов и окончаний. Теперь вернемся к морфологическому анализу слова в той ситуации, когда не удалось определить характеристики слова с помощью методов четкой морфологии, но удалось расчленить его на части. Наличие тех или иных лексем может определять морфологические характеристики слова: можно построить систему правил, которая будет опираться на наличие или отсутствие какихлибо частей и выдавать одно или несколько предположений о морфологических параметрах. 27 Такой набор правил можно построить двумя способами. Первый из них основан на морфемном анализе слов, содержащихся в словаре всех словоформ, и их морфологических характеристик. Рассмотрим эту задачу более формально. Пусть известны пары значений, состоящие из морфемного строения слова и его морфологических характеристик. По сути, данные значения являются «входом» и «выходом» системы правил, которая по морфемному строению слова будет определять его морфологические характеристики. Задачу построения такой системы правил можно решить с помощью самообучающейся системы. Для ее реализации могут быть использованы деревья решений, программирование на основе индуктивной логики (ILP, InductiveLogicProgramming) или другие алгоритмы. Структура нечеткого морфологического анализа отображена на рисунке 5. Рисунок 5 - Нечеткий морфологический анализ Второй подход состоит в формировании набора правил вручную. По большому счету, для его реализации требуется написать экспертную систему диагностирующего типа. 28 2.2.3 Вероятностный способ проведения морфологического анализа Вероятностный способ проведения морфологического анализа слов состоит в следующем [18]. Известно, что одна и та же словоформа может принадлежать сразу к нескольким грамматическим классам. Поэтому для каждой словоформы необходимо определить все ее грамматические классы, а также вероятность ее принадлежности к каждому из этих классов. Данные действия выполняются на основе некоторого набора документов, где каждому слову предварительно поставлен в соответствие грамматический класс. После этого вычисляются вероятности сочетаний определенных грамматических классов для слов, стоящих рядом — для двоек, троек, четверок и т.д. На основе этих чисел может проводиться анализ слов, но для него необходимо уже не только само слово, но и стоящие рядом с ним слова. В связи с этим необходимо сделать два важных замечания. Во-первых, поскольку для вероятностного метода важно не только слово, но и еще соседние с ним слова, то он применим только для тех языков, у которых четко фиксирован порядок слов в предложении. Если же порядок слов можно изменять, то все возможные сочетания грамматических классов будут практически равновероятны. Во-вторых, если первые два способа анализа (четкая и нечеткая морфология) на входе принимают отдельные слова, то вероятностный способ, напротив, на входе принимает либо все предложение, либо несколько стоящих рядом слов. 2.3 Существующие алгоритмы синтаксического анализа текста Рассмотрим методы синтаксического анализа предложений. Их можно разделить на две группы: методы с фиксированным, заранее заданным набором правил, и самообучающиеся методы. Правила представляются не в виде 29 продукций классической логики («если ..., то ...»), а в виде грамматик, задающих синтаксис языка. Исторически, первым способом описания синтаксиса языка были формальные грамматики [22]. Они задаются в виде четырех компонентов: множество терминальных символов, множество нетерминальных символов, правила вывода и начальный символ. Формальные грамматики хорошо изучены и широко применяются при описании формальных языков, но абсолютно непригодны для описания синтаксиса естественных языков. Трансформационные грамматики [22] разрабатывались уже специально для задания синтаксических правил построения предложений, написанных на естественном языке. Такие грамматики задаются в виде ориентированного графа состояний, всем дугам которого поставлены в соответствие определенные части речи. В начале работы алгоритм синтаксического анализа находится в некотором начальном состоянии; ему соответствует некоторая вершина графа. Алгоритм просматривает предложение слева направо, анализирует встречающиеся слова и делает переходы из одного состояния в другое в соответствии с выходящими из текущей вершины дугами и очередным словом предложения. Работа алгоритма заканчивается, когда предложение просмотрено полностью, либо когда невозможно сделать переход из текущего состояния (нет выходящей дуги с необходимой пометкой). К сожалению, трансформационные грамматики не способны задавать рекурсивные синтаксические правила; кроме того, построение таких грамматик даже для небольшого подмножества языка требует больших временных и трудовых затрат. Оба описанных подхода задания правил языка заключают в себе четко заданную систему правил, согласно которым производится синтаксический анализ предложения. Помимо уже указанных недостатков они имеют еще один 30 большой минус – он не могут анализировать неправильно построенные предложения. Это привело к созданию новых методов синтаксического анализа, основанных на вероятностном подходе, а именно вероятностных грамматик и вероятностного разбора. Вероятностные грамматики расширяют формальные грамматики: каждому правилу построения предложения указана некоторая вероятность применения этого правила [29]. После того, как произведен синтаксический анализ предложения, становится известно, на основе каких правил оно было построено, и на основе сопоставленных с ними вероятностей может быть посчитана «суммарная» вероятность. Конечно, одно и то же предложение может быть разобрано несколькими способами; для каждого из них считается его «суммарная» вероятность и выбирается наиболее вероятный способ построения предложения. Этот метод позволяет анализировать неправильно построенные предложения; однако он, как и два предыдущих, включает в себя систему заранее задаваемых правил. Чтобы избежать подобных условностей был предложен метод синтаксического анализа на основе обучающихся систем. Данный подход пока что еще малоизучен и заключается в следующем. Разрабатывается множество примеров, содержащих пару — исходное предложение и результат его синтаксического анализа. Этот результат вводится человеком, занимающимся обучением системы, в ответ на каждое подаваемое на вход предложение. Затем, при подаче на вход предложения, не входящего в список примеров, система сама генерирует результат. Для реализации такой обучающейся системы используются такие методы, как нейронные сети, деревья вывода, ILP и методы поиска ближайшего соседа. Это далеко не весь спектр методов синтаксического анализа. Удовлетворительных решений данного вопроса пока еще не найдено, хотя есть 31 методы, дающие неплохие результаты, но работающие только на подмножестве языка [17]. 2.4 Существующие естественном языке реализации систем обработки текстов на Задача разбора текста стоит остро, особенно для русского языка, ведь данный язык не нормализован и не имеет определенного порядка слов в предложении. Попытки решить данную задачу производятся довольно давно. Рассмотрим две наиболее успешных реализации системы разбора текста, написанного на русском языке. 2.4.1 Система автоматической обработки текста «Aot.ru» Данная система была разработана в рамках предложения, поступившего от президента фирмы ДИАЛИНГ начать проект коммерческого русскоанглийского машинного перевода. При реализации системы разработчики делали в основном упор на анализ русского языка. В настоящее время система распространяется под лицензией LGPL, т.е. находится в свободном доступе. Основные технологии базируются на многоуровневом представлении естественного языка, которое, в свою очередь, было заимствовано у системы ФРАП (Система французско-русского автоматического перевода была разработана коллективом лаборатории машинного перевода Всесоюзного центра переводов совместно с коллективом лаборатории машинного перевода МГПИИЯ им М. Тореза. 1976-1986 ГГ.) [30] Компоненты, составляющие языковую модель, - лингвистические процессоры, которые друг за другом обрабатывают входной текст. Вход одного 32 процессора является выходом другого. Выделяются следующие компоненты[31]: Графематический анализ. Выделение слов, цифровых комплексов, формул и т.д. Морфологический анализ. Построение морфологической интерпретации слов входного текста. Синтаксический анализ. Построение дерева зависимостей всего предложения. Семантический анализ. Построение семантического графа текста. Для каждого уровня разрабатывался свой язык представления. Язык представления, комбинирования. как полагается, На состоит графематическом из констант уровне и правила константами их были графематические дескрипторы (ЛЕ – лексема, ЦК – цифровой комплекс и т.д.) На морфологическом уровне – граммемы (рд – родительный падеж, мнмножественное число). На синтаксическом – названия отношений и групп (ПОДЛ – отношение между подлежащим и сказуемым, ПГ - предложная группа). На семантическом – семантические категории и отношения [32]. С каждого уровня представления можно сделать переход к такому же представлению на другом естественном языке (трансфер), что позволяет осуществлять перевод, даже если "глубокий" (семантический) анализатор не смог обработать текст. Основой для построения уровней служат результаты работы предыдущих этапов, но, что важно, последующие анализаторы также могут улучшить представление предыдущих. Например, для какого-то предложения синтаксический анализатор не смог построить полного дерева зависимостей, спроектировать тогда, им возможно, семантический построенный семантический анализатор граф на сможет синтаксис [33].Технология обработки текста в системе «АОТ» представлена на рисунке 6. 33 Графематический анализ – это программа начального анализа естественного текста, представленного в виде цепочки ASCII символов, вырабатывающих информацию, необходимую для дальнейшей обработки Морфологическим и Синтаксическим процессорами[32]. В задачу графематического анализа входят: разделение входного текста на слова, разделители и т.д; сборка слов, написанных в разрядку; выделение устойчивых оборотов, не имеющих словоизменительных вариантов; выделение ФИО (фамилия, имя, отчество), когда имя и отчество написаны инициалами; выделение электронных адресов и имен файлов; выделение предложений из входного текста; выделение абзацев, заголовков, примечаний [32]. Рисунок 6 - Технология обработки текста в системе «АОТ» Блок постморфологического анализа состоит из нескольких довольно простых правил разрешающих омонимию по достраивающих морфологическую интерпретацию. 34 контексту и правил, В качестве русского морфологического словаря система Диалинг как основу использует грамматический словарь А.А.Зализняка. Данный словарь включает на сегодняшний момент 161 тыс. лемм. Задача фрагментационного анализа состоит в выделении в предложении синтаксических единств (фрагментов) больших или равных словосочетанию (синтаксической группе) и в установлении иерархии на множестве этих единств, не используя семантической информации и информации о модели управления. Иерархия отражает тот факт, что в предложении некоторые фрагменты синтаксически зависимы от других [32]. Целю синтаксического анализа построение синтаксических варианте одной клаузы [34]. в системе групп на В свою «АОТ» является одном морфологическом очередь группы строятся с помощью синтаксических правил. Здесь клауза – это простое предложение в составе сложного. Морфологический вариант клаузы – это набор юнитов, идущих друг за другом в данной клаузе. Юнит – это либо морфологический омоним одного слова, либо вариант подклаузы данной клаузы. Например, для фразы «Дом, который построил Джек, развалился» морфологический вариант главной клаузы всегда будет состоять из четырех юнитов: "Дом"; ", который построил Джек";",";"развалился". Поскольку в главной клаузе, совпадающей со всем предложением, есть подклауза "который построил Джек". Синтаксическая группа определяется следующими параметрами: номер первого и последнего юнита; тип группы (строковая константа со значением ПРИЛ_СУЩ и т.д.); главная подгруппа; 35 граммемы группы - это морфологические характеристики, которые должны определять поведение и сочетаемость группы во "внешнем" для нее мире. Синтаксическое правило в свою очередь получает на вход номер слова. От этого слова правило пытается построить новую группу определенного типа, соблюдая принцип проективности [33]. Семантический анализ предложения на русском строит языке. семантическую Семантическая структуру структура одного состоит из семантических узлов и семантических отношений [32]. Общую схему работы алгоритма поверхностно семантического анализа системы «АОТ» можно задать следующим образом [32]: for V Є {синтаксический вариант фрагмента} { инициализация семантических узлов (V); построение множества словарных интерпретации узлов (V); построение групп времени (V); построение узлов из словосочетаний в кавычках (V); построение узлов типа "друг друга" (V); подключение операторов типа не, только (V); for L Є {лексические варианты для фрагмента V} { построение устойчивых словосочетаний (L); построение лексических функций-параметров(L) установление отношений между локативными узлами (L); интерпретация тезаурусных должностей и организаций (L); 36 ^ построения графа гипотетических связей (L); построение множественных актантов (L); for T Є {варианты деревьев для лексического варианта L} { проверка по семантических характеристикам(T); проверка проективности(T); другие структурные оценки(Т); построение отношений по умолчанию (L); } } for (H Є {вариант приписывания фрагментам лучших деревьев} { построение межклаузных связей (H); построение анафорических связей(H) оценка (H); } } Для каждого синтаксического варианта фрагмента строится множество лучших семантических представлений, которое и является результатом работы первично семантического анализа. 37 2.4.2 Система «ПОЛИТЕКСТ» Система ПОЛИТЕКСТ ответственна за автоматическую обработку текстовых материалов предметной области «Политика» и их включение в работу информационной системы «Россия» [35, 36]. ПОЛИТЕКСТ — это наиболее сложная подсистема в составе информационной системы (ИС) «Россия», она, в свою очередь, состоит из множества самостоятельных подсистем. Предельная задача, стоящая перед системой ПОЛИТЕКСТ, — автоматическое построение базы текстовых фактов (БТФ) как разновидности Базы Знаний для политических текстов. Был разработан язык представления текстовых фактов (ТФ) как основных семантических единиц текстов описательного характера [37, 38]. Работы над проектом ПОЛИТЕКСТ велись с начала 1990-х гг. в рамках Центра информационных исследований (ЦИИ), который был учрежден в Институте США и Канады РАН (ИСКРАН) [39]. Прежде, чем реализовывать систему как действующее устройство, система была спроектирована как система установок и решений, позволяющих видеть проблему автоматического перевода текста достаточно широко. Выросшая из одного корня, работа расслоилась на два потока: лингвистическое и тематическое (информационное) направления в анализе массивов политических текстов. Предполагалось, что они будут дополнять друг друга в рамках системы «Россия», однако по ряду причин проект распался на отдельные составляющие. В таком виде проект ПОЛИТЕКСТ продолжает жить и развиваться в составе разных коллективов и систем [40]. Процесс понимания произвольных текстов на естественном языке в составе информационно-лингвистической модели проходит три стадии: 38 локальное понимание; строятся структуры и семантические интерпретации фрагментов текста (абзацев, предложений или их частей); глобальное понимание; строится единое семантическое представление (СемП) текста; относительное понимание; строится информационное представление (ИнфП), несущее информацию о тексте с точки зрения заданного извне критерия, например, в терминах той или другой БД, в терминах языка пользователя, учитывая все ограничения, которые накладывают знания и лексикон пользователя, и т, д. Каждый такой участник (компонент) процесса понимания, в пользу и в единицах которого строится информация, в составе вербальной модели выступает как «встречный текст». Каждая из стадий содержит, в свою очередь, несколько крупных этапов преобразований. Общая задача проведения преобразований на всех этапах — построение информативных единиц и структур: сначала локально информативных (в масштабе предложения и высказывания), затем глобально информативных —в масштабе самостоятельных частей текста или целого текста — и, наконец, информативных относительно другого текста, другой (воспринимающей) системы, относительно «текста» знаний и т. д [34]. Каждый уровень понимания текста имеет свою область действия и вычленяет специфические для данного уровня единицы и их структуры— графематическое, морфологическое, лексическое, синтаксическое, семантическое и информационное представления: ГрафП (потока текста) → МорфП (словоформ) → ЛексП(слов) → СинП (предложений) → СемП (высказываний) → ИнфП (текста). Это означает, что переход от низшего уровня к высшему не сводится к простому переименованию связей в пределах той же структуры, а имеет более сложный характер [34]. Первая стадия понимания предполагает сколь угодно 39 подробный анализ внутри каждого отдельного предложения. К этой стадии относится не только синтаксический анализ, но и интерпретация его результатов в терминах СемП (семантического представления). Единицы СинП—узлы и отношения (СинУ и СинО). Синтаксические узлы представлены словами естественного языка (или комплексами слов) с нерасчлененными значениями и выполняют в синтаксическом представлении функциональную роль (подлежащее, дополнение и др.). Синтаксические отношения — это собственно и есть синтаксические отношения между синтаксическими узлами, т.е. отношения вида «от сказуемого к подлежащему», «к дополнению», и др. Единицы СемП — семантические узлы и отношения (СемУ и СемО) — на первом шаге синтаксических представляют узлов и собой интерпретации, синтаксических отношений, соответственно, определенные в микроконтексте предложения; впоследствии они могут быть скорректированы. При этом уточняются границы предложений: поток предложений заменяется потоком высказываний. Последовательность семантических представлений всех подряд высказываний текста, т. е. последовательность локальных структур, взятая как целое, может считаться первичной текстовой структурой или семантическим пространством текста (СемПрост). Все следующие структуры сопоставлены уже целому тексту. Единицы ИнфП — понятия, т. е. такие семантически узлы и семантические отношения (или их комбинации), которые получили «денотативный статус» (если они были соотнесены с единицами знаний). В первой версия системы «ПОЛИТЕКСТ» строится такой «внешний денотат» (семантически узлы, совпадающие с дескриптором Тезауруса и именами рубрик Рубрикатора)[33]. Точнее его назвать «внешней дескрипцией» текста, включив в нее также и набор внешних характеристик текста (автор, заголовок, дата 40 подписания документа и др.). При этом «внутренней дескрипцией» будет считаться глобальное семантическое представление текста, в котором установлены связи референции между всеми единицами (семантическими узлами и семантическими отношениями). 41 3 Описание разработанных методов и алгоритмов В рамках данной диссертационной работы требовалось разработать методы и алгоритмы, позволяющие сопоставлять текстам нормативных документов соответствующий набор формул деонтической логики. А также разработать методы и алгоритмы, позволяющие производить обработку полученных формул деонтической логики программными средствами. Например, сохранять их представление в оперативной памяти в БД и восстанавливать представление формулы в оперативной памяти из записей базы данных. Для этого будем считать, что формулы деонтической логики представлены в оперативной памяти как некоторый набор экземпляров объектов классов, а операция преобразования набора экземпляров в записи БД и обратно производится при помощи некоторого промежуточного представления в формате XML. Рассмотрим далее подробно реализацию данных задач. 3.1 Алгоритм формализации нормативных документов Как уже было сказано в постановке задачи данный алгоритм можно разделить на несколько этапов: получение синтаксического/семантического дерева разбора и его обработка, т.е. построение формул деонтической логики. В данном случае вид дерева разбора будет зависеть от конкретной реализации процедуры анализа текста. При выполнении данной диссертационной работы было принято решение об использовании уже существующих анализаторов русскоязычного текста для получения дерева разбора. Такое решение было принято, поскольку написание анализатора текста для естественного языка является довольно трудоемкой 42 задачей и выходит за рамки данной диссертационной работы. В качестве уже существующего анализатора была выбрана описанная выше система «АОТ» (система автоматической обработки текста), которая в данный момент распространяется под лицензией LGPL, а значит, может быть легко задействована в нашей системе. В качестве результата своей работы модуль семантического анализа системы «АОТ» возвращает дерево семантического разбора. Например, для предложения «Информацию разрешено использовать и распространять» система построит дерево, отображенное на рисунке 7: Рисунок 7 - Дерево семантического разбора, построенное системой «АОТ» Данная структура вполне соответствует нашим целям. Рассмотрим алгоритм, который при постепенном обходе полученного дерева построит формализованное представление исходного текста. В нашем случае на выходе будет получена формула деонтической логики. Для реализации данного алгоритма будем использовать так называемое хранилище шаблонов, в которое будем помещать уже распознанные куски текста и формулу деонтической логики, соответствующую данному фрагменту. 43 Такой подход поможет избежать дублирования переменных, а значит, и упростить формулу при распознавании оставшейся части текста. Описание алгоритма [3]: Рекурсивно обходим всех детей основного узла дерева, причем обход каждого поддерева начинаем с листьев. 1) Для каждого элемента выполняем проверку на то, является ли он оператором деонтической логики или одним из логических операторов – в дальнейшем просто оператором, т.е. совпадает ли данное значение с одним из слов: «обязательно», «разрешено», «запрещено, «и», «или», «не» или одним из их возможных синонимов. 2) Если совпадений не обнаружено, то добавляем данную вершину к списку пройденных и переходим к проверке следующего элемента дерева. 3) Если текущий элемент дерева является оператором, то проверяем, была ли часть рассматриваемого (уже пройденного) поддерева распознана. Для этого проверяем наличие данной структуры в хранилище шаблонов. 4) Если данное поддерево мы встречаем впервые, то считаем его шаблоном. Запоминаем поддерево в хранилище шаблонов, и сопоставляем ему в формуле некоторую переменную, а текущему элементу ставим в соответствие соответствующий предикат деонтической логики или знак логической операции, который также отражается в основной формуле. С этого момента данная часть дерева считается распознанной. 5) Если часть поддерева уже была распознана, то данной части ставим в соответствие имеющийся шаблон, а оставшуюся часть, при необходимости, заменяем на некоторую переменную. Текущему элементу ставим в соответствие соответствующий предикат деонтической логики или знак логической операции, запоминаем распознанную часть дерева в хранилище шаблонов и отражаем результат в получаемой формуле. 6) Продолжаем обход дерева до тех пор, пока оно полностью не будут распознано и формула не будет сформирована. 44 7) Если обход дерева был завершен, а ни один искомый оператор нам так и не встретился или корень дерева не является оператором, то ставим пройденному участку дерева в соответствие некоторую переменную и завершаем процедуру построения формулы. Для обеспечения возможности дальнейшей программной обработки полученной формулы при работе алгоритма удобнее всего формировать не строковое представление данной формулы, а строить набор экземпляров объектов заранее определенных классов. В частности, пусть класс TFormula будет представлять собой класс, для хранения и обработки информации о некоторой формуле деонтической логики. Тогда для получения строкового представления формулы будет достаточно вызвать метод toString() данного класса. 3.2 Алгоритмы обработки формул деонтической логики программными средствами Предыдущий алгоритм позволял по тексту, написанному на естественном языке, получить формулу деонтической логики. Однако для обработки данной формулы получить ее не достаточно, необходимо также уметь сохранять ее в долговременную память (например, в базу данных), а также извлекать формулу из нее. Эта функциональность потребуется в дальнейшем при реализации алгоритмов логического вывода для деонтической логики. Для хранения формулы деонтической логики была разработана структура базы данных. Ее основные таблицы и их взаимодействие отображено на рисунке 8. Здесь таблица Formula используется для хранения основной информации о формуле деонтической логики. Предполагается, что операндами в формуле могут быть либо переменные, либо другие формулы. Для того чтобы не 45 дублировать имена переменных, была создана таблица Variable, являющаяся словарем имен переменных. Таблица Operation – это словарь используемых в формуле операторов. В данной таблице хранятся такие операторы как «обязательно», «разрешено», «или» и другие. Будем считать, что таблица Operation заранее заполнена именами требуемых операторов [3]. Рисунок 8 - Основные таблицы БД, разработанной для хранения формул Пусть у нас есть представление формулы деонтической логики в виде набора экземпляров объектов классов, описывающих данную формулу. Причем класс TFormula непосредственно является классом, содержащим в себе всю информацию о некоторой деонтической формуле. Здесь допустимо говорить о предположении, поскольку реализация набора данных классов не входила в задачи данной диссертационной работы. Для облегчения и придания гибкости операциям сохранения и извлечения формул деонтической логики в БД было решено перед произведением необходимой операции приводить деонтические формулы в некоторое промежуточное представление. В качестве такого промежуточного представления был выбран формат XML. Преимуществ у данного формата довольно много, для нашей системы главным преимуществом является то, что большинство современных СУБД имеют средства для управления данными, заданными в таком формате. 46 Промежуточное представление формулы деонтической логики имеет структуру, представленную на рисунке 9: <formula> <operation> <op1><переменная или определение подформулы></op1> <op2><переменная или определение подформулы></op2> </operation> </formula> Рисунок 9 - Промежуточное представление формулы деонтической логики в формате XML Рассмотрим алгоритмы, обеспечивающие сохранение и восстановление формул из БД. 3.2.1 Алгоритм сохранения формулы деонтической логики в БД Сохранение формулы деонтической логики в БД осуществляется в два этапа [3]: 1) По экземпляру объекта класса TFormula строится xml-представление данной формулы. 2) XML-представление загружается в БД при помощи стандартных функций. Рассмотрим алгоритм, производящий построение представления формулы по экземпляру объекта TFormula. xml-object PutToXml(TFormula formula) { 47 промежуточного Xml-object x = New xml-object(); if (formula.oper1.typeOf(TFormula)) x.append_child(‘oper1’, PutToXml (formula.oper1)); else x.append_child(‘oper1’, formula.oper1); if (formula.oper2.typeOf(TFormula)) x.append_child(‘oper2’, PutToXml (formula.oper2)); else x.append_child(‘oper2’, formula.oper2); append_child(‘operation’, formula.operation); return x; } В данном алгоритме выполняется рекурсивный просмотр формулы, заданной экземпляром объекта TFormula, с одновременным построением промежуточного представления по ней. В процессе просмотра производится проверка на то, заданы ли для формулы операнды, если да, то какие? Если это переменная, то просто добавляем ее имя в промежуточное представление, если формула – вызываем рекурсивно функцию, куда в качестве параметра передаем данную формулу [3]. Загрузка же полученного промежуточного представления в формате XML в базу данных производится при помощи стандартных функций, поэтому в дополнительном описании не нуждается. 48 3.2.2 Алгоритм извлечения формулы деонтической логики из БД Извлечение формулы деонтической логики из БД осуществляется, также как и сохранение, в два этапа [3]: 1) Извлечение данных из БД в промежуточное представление XML; 2) Построение по промежуточному представлению экземпляра объекта класса TFormula. Рассмотрим алгоритм для первого этапа получения представления формулы в ОП. xml-object CreateXmlFormula(int id) { Xml-object formula = New xml-object(); formula.create_child(“formula”); formula.create_child(“operation”, id.oper); if ( id.op1 != null) formula.create_child(“oper1”,id.op1); else formula.create_child(“oper1”, CreateXmlFormula(id.f_Id1)); if (id.op2 != null) formula.create_child(“oper2”, id.op2) else formula.create_child(“oper2”, CreateXmlFormula(id.f_Id2)); return formula; } 49 Поскольку таблица Formula хранит в себе информацию о некотором дереве, задающем формулу деонтической логики, то обход по ней требуется производить также рекурсивно, как и в предыдущем алгоритме. Алгоритм построения представления формулы в оперативной памяти по промежуточному представлению выглядит следующим образом: TFormula CreateFormula(xml-object XmlFormula){ TFormula f1 = nil; for (each elem from XmlFormula) { if (elem== “formula”) { TFormulaf1 = new TFormula() } if (elem== “operation”) { f1.operation = elem.value } if (elem.value != null){ if (elem== “op1”){ f1.oper1 = CreateVariable(elem.value)} if (elem== “op2”){ f1.oper2 = CreateVariable(elem.value);} if (elem== “form1”){ f1.oper1 = CreateFormula(elem.value); } if (elem== “form2”){ f1.oper2 = CreateFormula(elem.value); } }} return f1; } 50 В данном алгоритме рекурсивный обход производится по переданному в качестве входного параметра промежуточному представлению формулы в формате XML. В процессе обхода осуществляется проверка типа обрабатываемого в текущий момент элемента. Если это переменная, то создаем для нее экземпляр соответствующего класса и привязываем его к основной формуле; если формула – вызываем рекурсивно функцию, передавая ей в качестве входного параметра XML-элемент промежуточного представления, описывающий обрабатываемую формулу; если операция – привязываем ее к формируемому объекту формулы. Таким образом, по завершении работы рекурсивной функции, в качестве результата ее работы будет получен экземпляр объекта TFormula, т.е. представление данной формулы в оперативной памяти [3]. Описанные выше алгоритмы обеспечивают функциональность, позволяющую легко оперировать с формулами деонтической логики на программном уровне. 51 ЗАКЛЮЧЕНИЕ В рамках данной диссертационной работы были рассмотрены и разработаны методы и алгоритмы, позволяющие получать формализованное представление нормативных документов в виде формул деонтической логики; разработаны методы и алгоритмы, обеспечивающие сохранения результатов формализации нормативных документов в некоторой базе данных. Были изучены различные прикладные логики, в частности деонтическая логика; проведен анализ существующих методов и алгоритмов разбора текста, написанного на естественном языке; проанализированы системы, осуществляющие автоматическую обработку текста, написанного на русском языке, в частности система «АОТ», распространяемая под лицензией LGPL. Разработанные алгоритмы позволяют представлять тексты нормативных документов в виде формул деонтической логики, а также в последствие обрабатывать их программными средствами. В дальнейшем планируется усовершенствовать алгоритм построения формализованного представления текстов нормативных документов в виде формул деонтической логики, реализовать алгоритм логического вывода формул деонтической логики с целью поиска противоречий в нормативных документах. 52 СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 1. Миков А.И. Представление онтологий нормативных документов с использованием прикладных логик.// Известия ЮФУ. Технические науки, 2014 (в печати). 2. Миков А.И. Нормативные мультиагентные системы.// Известия ЮФУ. Технические науки, 2014 (в печати). 3. Пекшева М.В. Аксиомаизация нормативных документов на основе деонтической логики.// Информатизация и связь, 2014 (в печати). 4. Миков А.И. Информационные процессы и нормативные системы в IT.// URSS, Москва, 2012, с.254. 5. Неклассическая логик. [Электронный ресурс], URL:dic.academic.ru. 6. Ивин А.А., Никифоров А.Л. Словарь по логике.// Гуманитарный издательский центр Владос, Москва, 1998, с.384. 7. Неклассическая логика. [Электронный ресурс], [Электронный ресурс], URL:mathmetod.wikispaces.com. 8. Деонтическая логика. URL:epistemology_of_science.academic.ru. 9. Горский Д.П., Ивин А.А., Никифоров А.Л. Краткий словарь по логике.// Просвещение, Москва, 1991, с.208. 10.Миков А.И. Формализация целей и ограничений ИТС средствами деонтической логики.// АНО «Институт компьютинга», г. Пермь, с.47. 11.Клини С. Математическая логика.// Издательство Мир, Москва, 1973, с.480. 12.Колмогоров А.Н., Драгалин А.Г. Введение в математическую логику.// Издательство Московского университета, Москва, 1982, с.240. 13.Hansson S.O. Semantics for more plausible deontic logics.// JournalAppliedLogic, 2, 2004. 14.Ryu Y.U., Lee R.M. Defeasible deontic reasoning and its application to normative systems.//DecisionSupportSystems, vol. 14, No. 1, 1995, pp. 59–73. 53 15.Сидоренко Е.А.Логика. Парадоксы. Возможные миры. Размышления о мышлении в девяти очерках.//Едиториал УРСС, Москва, 2002, с.312. 16.Константин С. Обработка текстов на естественном языке. [Электронный ресурс], Открытые системы, 2003, №12, URL: www.osp.ru. 17.Грязнухина Т.А., Дарчук Н.П., Критская В.И. Синтаксический анализ научного текста на ЭВМ.// Научная мысль, Киев, 1999, c.272. 18.Горбачевич К.С. Русский синонимический словарь.// ИЛИ РАН,СанктПетербург, 1996, с.512. 19.Ермаков А.Е. Извлечение знаний из текста и их обработка: состояние и перспективы.// Информационные технологии, 2009, № 7, с.50-55. 20.Меркурьева Н.М. Словарь антонимов русского языка: Сложные слова. Около 1800 антонимических пар.// Газета "Правда", Москва, 1999, с.480. 21.Игумнов Е. Основные концепции и подходы при создании контекстнопоисковых систем на основе реляционных баз данных. [Электронный ресурс], Центр Информационных Технологий, 2009. URL:citforum.ru. 22.Хант Э. Искусственный интеллект.// Мир, Москва, 1978, с.558. 23.U. Nahm, R. Mooney. Mining soft-matching rules from textual data.// Seattle, WA, August, 2001, pp. 979-984. 24.D. Jurafsky, James H. Martin. Speech and Language Processing: An introduction to natural language processing, computational linguistics, and speech recognition.// Prentice-Hall, 2000, pp.975. 25.Зализняк А.А. Грамматический словарь русского языка. Словоизменение.// Русский язык, Москва, 3-е изд., 1987, с.880. 26.Stolcke A. SRILM - The SRI Language Modeling Toolkit.// International Conference on Spoken Language Processing, 202, vol. 2, pp. 901-904. 27.Тихонов А.Н. Морфемно-орфографический словарь: Русская морфемика.// Школа-Пресс,Москва, 1996, с.704. 28.Кузнецова А.И., Ефремова Т.Ф. Словарь морфем русского языка.// Русский язык,Москва, 1986, с.1136. 54 29.C. Manning, H. Schutze. Foundations of Statistical Language processing.// The MIT Press, 1999, pp.620. 30.Сокирко А. Семантические словари в автоматической обработке текста (по материалам системы ДИАЛИНГ). // Кандидатская диссертация, МГПИИЯ, Москва, 2000. 31.Sokirko A. A short description of Dialing Project. [Electronic resource], technical documentation, 2001, URL: www.aot.ru/docs/sokirko/sokirkocandid-eng.html. 32.Автоматическая обработка текста. [Электронный ресурс], URL: aot.ru. 33.Ножов И. Морфологическая и синтаксическая обработка текста (модели и программы).// Кандидатская диссертация, Москва, 2003. 34.Леонтьев Н.Н. «ПОЛИТЕКСТ»: информационный анализ политических текстов».// Информационные системы, 1995, Сер. 2, N 4, с.20-24. 35.Yudina T. IS Russia: An Artificial Intelligence-Based Document Retrieval System in Oracle 7.// Select, №1, 1995, vol.2, №2, pp.12-18. 36.Журавлев С.В., Юдина Т.Н. Информационная система «РОССИЯ».// Прикладная информатика, 2010, том 3, № 27, с.44-53. 37.Леонтьева Н.Н. Построение базы текстовых фактов.// НТИ, 1990, Сер. 2, № 7, с.2-11. 38.Leontyeva N.N. Textual Facts as Units of Coherent Text Semantic Analysis.// International Workshop on the Meaning-Text Theory, GMD 671, 1992, pp.9198. 39.Политекст – это система. [Электронный ресурс], URL: www.lingold.ru. 40.Гладкий А.В. Синтаксические структуры естественного языка в автоматизированных системах общения.// Наука, Москва, 1985, с.144. 55