Инструментальная объектная среда для моделирования, отладки и экспериментов с лингвистическими алгоритмами

ры вершин, которые проходят через данную вершину. Вычисления производятся по формуле:

Cb(nj)= Е-j<k

gjk

где gjk- число кратчайших путей

от j до К; gjk(ni) - число кратчайших путей от j до К, проходящих через п1.

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

Средняя длина пути рассчитывается как среднее арифметическое расстояний между центральной вершиной и остальными вершинами в графе: N

X L

A(G,ni)=

Средняя длина цикла рассчитывается как среднее арифметическое длин всех циклов в графе. При этом целесообразно рассматривать только циклы длиной > 3.

Коэффициент кластеризации СС(п) измеряет плотность подграфа, состоящего из вершин, находящихся на расстоянии единицы от центрального актора. Другими словами, это мера вероятности того, что «если А знает В, а В знает С, то А знает С» для фиксированной вершины В. Это эквивалентно процентному отношению замкнутых треугольников в окрестности центрального актора. Для вершин в полном подграфе (клике) коэффициент кластеризации будет равен 1. Для вершины в центре звезды коэффициент кластеризации примет нулевое значение.

Для вычислений будем использовать формулу Е

плотности графа: CC(n)=

, где N и E - число

^-1)

вершин и ребер в подграфе соответственно.

Степень - это число ребер, инцидентных центральному актору. Для ориентированных графов введем в рассмотрение понятия полустепеней захода (п^ и исхода й- (п^ вершины п на основе поня-

тий образа и прообраза вершины при соответствии:

(п1)=Г-1(Х]) , й- =[Г(х^ .

Плотность графа - отношение числа существующих ребер к возможным ребрам в графе.

Плотность для неориентированного графа вычисляется по формуле:

E

N

Расчет для ориентированного графа производится по формуле: D(G)=-E(G)-.

2N

Заметим, что в мультиграфах плотность может принимать значение больше единицы.

Обхват графа - это длина кратчайшего цикла (>3) в графе.

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

D(G)=maxj (maxj (L(ni ,nj )).

Другой мерой размера графа является радиус. С позиции радиуса вершина является центральной, если из нее можно добраться в любую другую вершину за минимальное число шагов, в сравнении с остальными вершинами в графе: R(G)=mini(maXj(L(ni,nj)).

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

Список литературы

1. Глобальный граф. // Поиск. - № 49(967). -2007.

2. Wasserman S., and Faust K. Social Network Analysis: Methods and Applications. - Cambridge University Press,1994.

3. Nair P.S. and Sarasamma S.T. Data Mining Through Fuzzy Social Network Analysis // North American Fuzzy Information Processing Society, 2007.

4. Берштейн Л.С., Боженюк А.В. Нечеткие графы и гиперграфы. - М.: Научный мир, 2005.

5. Holder L.B. and Cook D.J. Mining Graph Data. - Wiley,

2007.

ИНСТРУМЕНТАЛЬНАЯ ОБЪЕКТНАЯ СРЕДА ДЛЯ МОДЕЛИРОВАНИЯ,

ОТЛАДКИ И ЭКСПЕРИМЕНТОВ С ЛИНГВИСТИЧЕСКИМИ АЛГОРИТМАМИ

А.М. Баталина, М.Е. Епифанов

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

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

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

Часто для достижения эффективности обработки большого количества текстов на естественном языке разработчики имплементируют некоторый готовый вариант системы правил анализа как часть программного кода. В этом случае переход к новому варианту организации правил требует существенного изменения программы. Этот подход ориентирован на скорую реализацию, а не на эксперименты с целью усовершенствования системы правил. Одним из примеров такого рода системы является модуль сегментации, выполненный в 1999-2003 гг. научной группой отделения интеллектуальных систем (в гуманитарной сфере) Института лингвистики РГГУ (Т.Ю. Кобзарева, Д.Г. Лахути, И.М. Ножов) и основанный на итеративном применении набора правил поверхностно-синтаксического анализа Т.Ю. Кобзаревой [2]. Эта реализация замышлялась и выполнялась как экспериментальная, она показала возможность выделения сегментации в отдельный модуль, который должен применяться до стадий внутрисегментного и межсегментного анализа. Жесткая имплемента-ция конкретной версии лингвистических правил как части программы существенно затруднила использование этого модуля для проверки последующих усовершенствований самой системы правил.

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

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

за, в том числе представления различных пробных состояний разрабатываемой системы лингвистического анализа. Эти задачи призвана решать инструментальная среда для экспериментов с лингвистическими алгоритмами [4], реализуемая в Институте лингвистики РГГУ. В работе показывается применение объектной инструментальной среды для отладки системы алгоритмов поверхностно-синтаксического анализа (ПСА), разрабатываемых Т.Ю. Кобзаревой. Запись алгоритмов ПСА в рамках описываемой инструментальной среды производится на специальном входном языке, пополнение которого несложно для разработчика.

Объектное представление лингвистических алгоритмов и процесс их вычисления

Описываемая в работе инструментальная среда базируется на системе объектного моделирования ПСА [4]. Для моделирования лингвистических алгоритмов в данной модели имеются следующие объекты:

• алгоритм - объект верхнего уровня, содержащий информацию о характеристиках моделируемого алгоритма; основные данные этого объекта - иерархическая сеть его узлов, по которой осуществляется проход алгоритма на конкретном примере;

• узел алгоритма - объект, представляющий узел лингвистического алгоритма и содержащий ссылку на объект-правило и ссылки на «да»/«нет» узлы, к которым происходит переход в случае выполнения/невыполнения условий правила;

• правило - объект, содержащий информацию о присваиваниях переменным алгоритма, проверяемых в правиле условий, о действиях в случае выполнения условий, о действиях в случае невыполнения условий;

• объекты-присваивания, содержащие информацию о различного вида контролируемых присваиваниях значений используемым в алгоритмах переменным; а также объекты, служащие непосредственно для вычисления алгоритма на конкретном примере:

• скоуп (scope) альтернативы - объект, содержащий сведения об анализируемом предложении - исходные и уже полученные как некоторый вариант в результате анализа к данному моменту, а также представляющий соответствующее этому варианту состояние вычислительной среды применения алгоритма к предложению;

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

Вычисление алгоритма на конкретном примере происходит, начиная с самого верхнего узла ал-

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

Такое представление лингвистического алгоритма было выработано как результат исследования всей совокупности разработанных к настоящему времени алгоритмов ПСА и предшествующей данной работе попытки их реализации [1].

Функциональность среды,

обеспечивающая эффективную отладку лингвистических алгоритмов

Подсистема отладки описываемой инструментальной среды реализована аналогично режиму отладки (debug) в инструментальных средах разработки программного обеспечения. Как и в последних, основной сценарий отладки здесь реализован как пошаговое выполнение алгоритмов.

Основные возможности режима отладки описываемой инструментальной среды:

• установка прерывания (на входе/выходе из узлов алгоритма, после каждого элемента правила),

• автоматическое выполнение части алгоритма,

• пошаговое выполнение алгоритма,

• просмотр контекста выполнения (значений переменных, содержания узла и связанного с узлом правила, текущего состояния представления анализируемого предложения),

• пробное вычисление выражений элементов правил,

• сохранение промежуточных состояний модели анализируемого предложения,

• трассировка выполнения алгоритма.

Помимо пошаговой отладки для массовой

проверки адекватности изменений, вносимых в систему алгоритмов, был реализован механизм пакетного тестирования - возможность автоматически применять составленные ранее тесты к объекту-результату вычисления алгоритма на некотором примере (то есть к объекту, представляющему применение алгоритма к примеру, в котором все скоупы альтернатив находятся в конечном состоянии). Такие тесты могут автоматически генерироваться по подобному объекту после успешного выполнения алгоритма на этом примере и позднее использоваться для проверки коррект-

ности изменений, внесенных как в систему алгоритмов, так и в сам их интерпретатор.

Алгоритмы ПСА, промоделированные средствами рассматриваемой инструментальной среды

Задачей системы ПСА Т.Ю. Кобзаревой является построение полного графа синтагматических связей сегментов и слов внутри сегментов для русского предложения (8), где сегменты («окончательные (приведенные) сегменты» [5]) - эксплицитно заданные в тексте части 8: простые главные предложения, придаточные и любые обособляемые обороты: деепричастные обороты, согласованные определения, вводные обороты и т.д.

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

• предсинтаксис: постморфология (морфо-синтаксис), снятие омонимии частей речи;

• предсегментация - построение необходимых для сегментации проективных отрезков атрибутивных именных, предложных групп, сложного сказуемого и т.д.;

• сегментация - построение сегментов;

• внутрисегментный анализ (ВА) - построение связей слов в сегментах;

• межсегментный анализ - построение связей сегментов.

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

Средствами описываемой инструментальной среды были промоделированы и отлажены (или отлаживаются на данный момент) блоки алгоритмов ПСА.

Блоки предсинтаксиса и предсегментации.

В настоящее время средствами описываемой инструментальной среды отчасти реализованы необходимые для сегментационного анализа и внутрисегментного анализа модули предсинтаксиса:

- стандартные универсальные подпрограммы проверки согласования,

- алгоритмы постморфологии, корректирующие и дополняющие результаты морфологического анализа,

- наиболее актуальные алгоритмы снятия омонимии частей речи,

- часть алгоритмов модуля предсегментации:

• построение атрибутивных именных групп и предложных групп,

• построение конструкций с именами собственными,

• построение конструкций с числами,

• построение сложных сказуемых,

• построение синтагм со слугами - обособленными приложениями.

Блок экспресс-сегментации и блок полной сегментации. Реализуемый вариант сегментаци-онного анализа (СА) [2] рассчитан на сегментацию любых грамматически правильных неэллиптичных предложений литературного письменного языка, не являющихся записью или имитацией устной речи. Он представляет собой блок алгоритмов, работающих в заданном порядке. В результате применения СА к предложению-примеру предложение будет поделено на зоны анализа (сегменты). Внутри них будет производиться ВА с учетом проективности уже построенных подчинительных и сочинительных связей.

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

Экспресс-СА включает в себя определение границ простых-главных предложений, причастных, деепричастных и других обособленных оборотов и придаточных предложений на базе анализа сочинения и предикативной структуры предложения, включая анализ неморфологического предиката. В ходе экспресс-СА границам сегментов приписываются свойства «быть границей простого-главного/обособленного оборота/придаточного такого-то типа». Эти границы учитываются при осуществлении ВА и межсегментного анализа. Работа экспресс-СА уже промоделирована в объектной среде для экспериментов с алгоритмами ПСА, отлажена и используется в системе.

В объектной среде для экспериментов с алгоритмами ПСА в данный момент ведется моделирование и отладка алгоритмов полного СА, дополненного алгоритмами анализа тире, двоеточия и точки с запятой.

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

для отладки алгоритмов полного СА на предложениях, где можно обойтись экспресс-СА, или для того, чтобы обойти полный СА, если мы заведомо знаем, что достаточен экспресс-СА (не все случаи корректного применения экспресс-СА автоматически распознаются по предложению).

Блок ВА. К началу работы ВА в ходе работы блоков предсинтаксиса и предсегментации уже должны быть построены некоторые внутрисегментные связи.

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

Эти алгоритмы промоделированы средствами описываемой инструментальной среды и в основном отлажены.

Разработанная инструментальная среда, опробованная на совокупности алгоритмов ПСА Т.Ю. Кобзаревой, обеспечивает наглядное представление лингвистических алгоритмов. Возможности режима пошаговой отладки аналогичны подобному режиму отладки в инструментальных средах разработки программного обеспечения, что позволяет использовать аналогичную функциональность при отладке лингвистических алгоритмов.

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

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

Список литературы

1. Ножов И.М. Процессор синтаксической сегментации русского предложения.//НТИ. Сер. 2. - 2003. - № 11. - С. 26-37.

2. Кобзарева Т.Ю. Иерархия задач поверхностно-синтаксического анализа русского предложения // НТИ. Сер.2. - 2007. № 1. - С. 23-35.

3. Апресян Ю.Д., Богуславский И.М., Иомдин Л.Л. и др. Лингвистическое обеспечение системы ЭТАП-2. - М.: Наука, 1989. - С. 25-26.

4. Баталина А.М., Епифанов М.Е., Кобзарева Т.Ю., Куш-нарева Е.В., Лахути Д.Г. Экспериментальная реализация сег-ментационного анализа русского предложения. // Тр. Между-нар. конф.: Диалог'2007. - М., 2007. - С. 29-34.

5. Кулагина О.С. Исследования по машинному переводу. -М.: Наука, 1979.