ГЕНЕРАЦИЯ РЕГУЛЯРНЫХ ВЫРАЖЕНИЙ ДЛЯ АВТОМАТИЗАЦИИ ПРОВЕРКИ ТЕСТОВ ОТКРЫТОГО ХАРАКТЕРА - Студенческий научный форум

V Международная студенческая научная конференция Студенческий научный форум - 2013

ГЕНЕРАЦИЯ РЕГУЛЯРНЫХ ВЫРАЖЕНИЙ ДЛЯ АВТОМАТИЗАЦИИ ПРОВЕРКИ ТЕСТОВ ОТКРЫТОГО ХАРАКТЕРА

Мерзляков Д.А. 1
1Пермский государственный национальный исследовательский университет
 Комментарии
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF
Введение

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

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

  • поиск фрагментов текста, соответствующих шаблону;

  • проверка текста на соответствие шаблону;

  • замена текста по шаблону.

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

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

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

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

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

Для достижения указанной цели необходимо решить следующие задачи:

  • Разработка способа представления знаний о структуре определений и знаний о предметной области.

  • Разработка способа декларации связи между структурными и предметными знаниями.

  • Разработка механизма логического вывода, способного производить поиск/проверку родовидовых определений в тексте, а так же генерировать регулярные выражения для проведения аналогичной проверки.

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

Представление знаний о структуре определений О метарегулярных выражениях

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

Проиллюстрировать это разделение можно рядом примеров:

  • Квадрат – это четырехугольник, у которого все стороны и углы равны.

  • Четырехугольник – это параллелограмм, у которого все углы равны.

  • Четырехугольник – это многоугольник, у которого количество сторон равно 4.

Не смотря на то, что приведенные определения соответствуют различным понятиям, т.е. включают различные предметные знания, они имеют общую структуру:

[Определяемое] – это [определяющее], у которого [видовое отличие].

Далее, рассмотрим различные варианты определения для одной и той же пары «определяемое-определяющее»:

  • Четырехугольником называют многоугольник, количество сторон которого равно 4.

  • Многоугольник называют четырехугольником, если у него 4 стороны.

  • Многоугольник является четырехугольником, если число углов в нём равно четырем.

Предметные знания, содержащиеся в этих определениях, эквивалентны, однако каждому определению соответствует своя структура:

[Определяемое] называют [определяющее], [видовое отличие].

[Определяющее] называют [определяемое], если [видовое отличие].

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

[Определяющее] является [определяемое], если [видовое отличие].

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

  • Деревом называют граф, не содержащий циклов и являющийся связным.

  • Граф называют деревом, если он не содержит циклов и является связным.

  • Граф является деревом, если он связный и не содержит циклов.

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

Для решения этой проблемы был предложен подход на основе метарегулярных выражений.

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

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

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

Структура метарегулярных выражений

Метарегулярное выражение несет в себе знания о структуре определения. Простые примеры нескольких метарегулярных выражений:

  • – это , у которого .

  • , у которого , называется .

  • называется , если .

  • называется , у которого .

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

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

  • Знак препинания.

  • Литерал – любая последовательность символов, присутствующая в выражении всегда, безотносительно предметной области.

  • Метапонятие – метасимвол особого вида, на место которого могут по определенным правилам подставляться понятия из онтологии.

Для каждого элемента задается его текстовое представление (для показа пользователю) и регулярное выражение для выявления элемента в тексте (на данном этапе регулярное выражение для элементов вводится вручную).

Таким образом, выражение: « - это , у которого .», – состоит из элементов: «», «-», «это», «», «,», «у которого», «», «.», а так же элемента-пробела « », каждое из которых имеет свое регулярное выражение. В результате компоновки получаем метарегулярное выражение для выявления в тексте:

#oneOf ( #and( #понятие(), #is_a( ) ) )(?: | )?(?:-)(?: | )?(?:это)(?: | )?#oneOf( #понятие() )(?:,)(?: | )?у котор(?:ого|ой|ых)(?: | )?#all( #and( #свойство(), #and( #property( ) , #not( #property( ) ) ) ) )(?:.)

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

О конструкциях #oneOf, #all, #is_a, #a_part_of и т.д. будет сказано далее.

Декларативное описание связи метапонятий и понятий предметной области

Как говорилось ранее, на место метапонятий, входящих в состав метарегулярного выражения, могут подставляться лишь понятия предметной области, находящиеся в определенных отношениях. В контексте родовидовых определений:

«Определяющее» – это некоторое понятие предметной области.

«Определяемое» – это понятие предметной области, являющееся более конкретным, нежели «определяющее». Т.е., если использовать классическое онтологическое отношение, «Определяемое» is a «определяющее».

«Видовое отличие» – это набор свойств, которыми обладает «определяемое», но не обладает «определяющее», где свойство – это некоторое утверждение о составной части понятия. Т.е. объект обладает свойством, когда утверждение истинно и не обладает в противном случае.

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

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

#понятие() – множество всех понятий предметной области;

#свойство() – множество всех свойств предметной области ;

#and(X, Y) – пересечение множеств X и Y;

#or(X, Y) – объединение множеств X и Y;

#is_a(X) – множество понятий предметной области, являющихся более конкретными по отношению к понятию X;

#property(X) – множество свойств понятия X;

#not(X) – дополнение множества X. Если X – множество понятий, то дополнение до множества всех понятий, если же множество свойств, то до множества всех свойств.

#all(X) – конструкция, означающая, что данное метапонятие должно удовлетворять регулярным выражениям для всех элементов множества X;

#oneOf (X) – конструкция, означающая, что данное метапонятие должно удовлетворять регулярному выражению хотя бы одного элемента из множества X.

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

«Определяющее»: #oneOf( #понятие() )

Трактовка: «определяющее» должно совпадать хотя бы с одним элементом из множества всех понятий.

«Определяемое»: #oneOf ( #and( #понятие(), #is_a( ) ) )

Трактовка: «определяемое» должно совпадать хотя бы с одним элементом из множества понятий, являющихся более конкретным по отношению к метапонятию «определяющее».

«Видовое отличие»: #all( #and( #свойство(), #and( #property( ) , #not( #property( ) ) ) ) )

Трактовка: «видовое отличие» должно включать все элементы из множества свойств, являющихся свойствами определяемого, но не являющихся свойствами определяющего.

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

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

Представление знаний о предметной области

В качестве средства представления знаний использованы онтологии.

Онтология

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

  • Если понятие А является более конкретным по отношению к понятию B, то между ними устанавливается отношение “A is a B”.

  • Если понятие А является структурным элементом понятия B, то между ними устанавливается отношение “A a part of B”.

  • Если А – это свойство понятия B, то между ними устанавливается отношение “A property B”.

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

  • Свойства представляют собой утверждение о некоторых составных частях понятия.

В качестве примера можно привести соотношение понятия квадрат и четырехугольник (описание упрощено): квадрат is a четырехугольник; сторона a part of четырехугольник; угол a part of четырехугольник; равно(количество(сторона), 4) property квадрат; равно(количество(угол), 4) property квадрат;

Описание метода проверки тестов открытого характера

Алгоритм проверки правильности определений

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

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

Применяемые алгоритмы на псевдокоде можно представить следующим образом:

bool ФильтрацияТекста(string text)

{

foreach (Шаблон template in БазаЗнаний.Шаблоны)

{

//template.regexp – регулярное выражение для шаблона, получаемое

//путем соединения регулярных выражений для его элементов (для

//метапонятий на данном этапе используется выражение «(.+)»,

//что означает «любая последовательность символов».

if (template.regexp.check(text))

{

string definedStr = template.ФрагментТекстаСоответствующийМетапонятию();

Понятие defined = ПолучитьПонятиеИзОнтологииПоИмени(definedStr);

if (defined != null && defined.естьПредок)

return true;

}

}

}

bool ПроверкаКорректностиОпределения(string text, Шаблон template)

{

//template - шаблон, которому текст соответствует (выявляется

//на этапе фильтрации)

foreach (Метапонятие metaConcept in template.Метапонятия)

{

означитьМетапонятие(metaConcept);

string textForMetaconcept = template.ФрагментТекстаСоответствующийМетапонятию(metaConcept);

if ( ! metaConcept.regexp.check(textForMetaconcept))

{

return false;

}

}

return true;

}

НаборПонятий ОзначитьМетапонятие(Метапонятие metaConcept, string text)

{

НаборПонятий result;

ЭлементВыражения currentElem = metaConcept.ПервыйЭлемент;

switch (currentElem)

{

case "#oneOf":

foreach (Понятие concept in ОзначитьЭлементМетапонятия(currentElem.Аргумент))

{

if (concept.regexp.check(text))

{

result.Add(concept);

return result;

}

}

break;

case "#all":

foreach (Понятие concept in ОзначитьЭлементМетапонятия(currentElem.Аргумент))

{

if (concept.regexp.check(text))

{

result.Add(concept);

}

else

{

result.Clear();

return result;

}

}

break;

}

}

НаборПонятий ОзначитьЭлементМетапонятия(ЭлементВыражения elem)

{

switch (Элемент.Тип)

{

case "Множество":

return Элемент;

case "Метапонятие":

return ОзначитьМетапонятие(elem);

case "#свойство()":

return БазаЗнаний.Свойства; //множество всех свойств

case "#понятие()":

return БазаЗнаний.Понятия; //множество всех понятий

case "#and(X, Y)":

return ПересечениеМножеств(

ОзначитьЭлементМетапонятия(X),

ОзначитьЭлементМетапонятия(Y)

case "#or(X, Y)":

return ОбъединениеМножеств(

ОзначитьЭлементМетапонятия(X),

ОзначитьЭлементМетапонятия(Y)

case "#not(X)":

if (X.Содержит(typeof(Понятие)))

return ДополнениеДоМножестваВсехПонятий(X);

else //X содержитСвойства

return ДополнениеДоМножестваВсехСвойств(X);

case "#is_a(X)":

return X.Потомки;

case "#property()":

return X.Свойства;

}

}

Примечание: в ходе работы была выдвинута гипотеза о том, что верными являются определения с глубиной не более 3, при чем при глубине 3 можно не учитывать свойства понятия на глубине 2. Это вносит свои коррективы в работу команд #is_a и #property. Первая возвращает потомков глубины не более 3-х, а вторая – свойства лишь ближайшего вида и собственные свойства понятия. Обусловлено данное решение тем, что большое семантическое расстояние между определяемым и определяющим говорит о слабом владении экзаменуемого терминологией, что является тревожным признаком, даже если определение дано верно.

Генерация регулярных выражений

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

Наглядное представление порядка композиции можно увидеть на схеме, показанной на рис. 1.

Рисунок 1. Конструирование регулярных выражений на основе метарегулярных выражений

Рассмотрим работу алгоритма на простом примере.

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

Пример корректного определения: «Квадрат – это четырехугольник, у которого все стороны равны и все углы равны».

Таким образом, в качестве исходных структурных элементов регулярного выражения выступают:

  • «Квадрат» – понятие. Регулярное выражение: «b(квадра(т|та|ту|том|те|ты|тов|там|тами|тах))b».

  • «Четырехугольник» – понятие. Регулярное выражение: «b(четырехугольни(к|ка|ку|ком|ке|ки|ков|кам|ками|ках))b».

  • «Сторона» – понятие. Регулярное выражение: «b(сторо(на|ны|не|ну|ной|ны|н|нам|нами|нах))b».

  • «Угол» – понятие. Регулярное выражение: «b(уг(ол|ла|лу|лом|ле|лы|лов|лам|лами|лах))b».

  • «#A Равны» – атомарное утверждение. Регулярное выражение: «((#A[ ,-:;а-яА-Я0-9]+(рав(ен|на|но|ны|ня(е|ю)тся)|эквивален(тен|тна|тны|тно)))|((рав(ен|на|но|ны|ня(е|ю)тся)|эквивален(тен|тна|тны|тно))[ ,-:;а-яА-Я0-9]+#A))».

  • «Все #A» – атомарное утверждение. Регулярное выражение: «((вс(е|ех|еми)|кажд(ый|ого|ому|ым|ом|ая|ой|ую))[ ,-:;а-яА-Я0-9]+#A)».

А так же некоторые структурные шаблоны. Для примера рассмотрим один шаблон: « – это , у которого », состоящий из элементов:

  • – метапонятие. Регулярное выражение: «#oneOf ( #and( #понятие(), #is_a( ) ) )».

  • – метапонятие. Регулярное выражение: «#oneOf ( #and( #понятие(), #is_a( ) ) )».

  • – метапонятие. Регулярное выражение: «#all( #and( #свойство(), #and( #property( ) , #not( #property( ) ) ) ) )».

  • Литералы «это», «у которого».

  • Знаки припинания: «.», «,», «–».

Тогда объединением атомарных свойств «#A Равны», «Все #A», а так же понятий «Сторона» и «Угол» получим свойства «равны все стороны» и «равны все углы», составляющие видовое отличие. С учетом того, что свойства могут быть расположены в любом порядке, с учетом перестановок, получаем регулярное выражение для видового отличия.

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

Сервисно-ориентированный подход

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

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

Во-вторых, проверка знания тестируемым определений – это хоть и распространенный, но далеко не единственный тип вопросов в открытых тестах. Ответ может представлять из себя произвольный текст, содержащий как определения, так и, к примеру, формулы или схемы.

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

Плюсы данного подхода:

  • Масштабируемость системы. Простота подключения новых модулей для расширения функционала или повышения эффективности работы системы.

  • Переиспользуемость модулей. Поскольку модули имеют специфицированный интерфейс,

  • Независимость модулей. Отдельные компоненты системы могут разрабатываться отдельными командами без всякой необходимости синхронизации между ними при условии сохранения преемственности интерфейса. При этом компоненты могут быть усовершенствованы без реорганизации/перенастройки системы.

Минусы:

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

  • При предоставлении доступа к сервису через сеть – дополнительные расходы на содержание сервера.

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

Генерация регулярных выражений на основе введенных пользователем образцов

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

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

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

Рисунок 2. Иллюстрация взаимодействия преподавателя с системой при работе в режиме генерации определений на основе пользовательского ввода.

В этом случае алгоритм работы системы будет выглядеть следующим образом (см. рис. 2):

  1. Получить список корректных определений от пользователя.

  2. Выявить определяемое и определяющее, и сопоставить их с предметной базой знаний.

  3. Если обнаружено соответствие, то

    1. Сгенерировать регулярное выражение для определений на основе знаний из предметной онтологии и перейти к пункту 4.

  4. Иначе:

    1. Сгенерировать заготовку для регулярного выражения, используя в качестве определяемого и определяющего понятия, обнаруженные в шаге 2, а в качестве видового отличия – общие части текста, введенного пользователем на соответствующей позиции.

При этом, к примеру, на основе определения «Квадрат – это четырехугольник, у которого все стороны равны», пользователь может, за счет использования структурных метазнаний для организации перестановок, получить регулярное выражение, способное проверять определения другой структуры, к примеру:

  • Четырехугольник называется квадратом, если у него все стороны равны.

  • Квадратом называется четырехугольник, у которого равны все стороны.

  • Четырехугольник, у которого все стороны равны, называется квадратом.

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

Заключение

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

Поставленная цель была достигнута, и все сопутствующие задачи решены.

Жизнеспособность выбранного подхода нашла подтверждение на практике.

Библиографический список
  1. Хахалин Г.К. Предметная онтология для понимания текстов геометрических задач // [Электронный ресурс] − [2008] – Режим доступа: http://www.dialog-21.ru/dialog2008/materials/html/Khakhalin.htm.

  2. Шумский Л. Д., Шапкин П.А. Преобразование данных в формате RDF на основе веб-онтологий // “Аппликативные вычислительные системы: Труды” под ред. В. Э. Вольфенгагена – [2010].

  3. Словарь русского языка для ispell. [Электронный ресурс.] – Режим доступа: http://scon155.phys.msu.su/~swan/orthography.html

  4. С.И. Чуприна, М.Г. Козырев. Роль онтологий в определении степени соответствия текстов учебно-методического характера заявленной тематике // Вестник пермского университета, выпуск 3(3) – [2010].

  5. С.И. Чуприна, Н.С. Стаценко. Обзор программных средств автоматизации труда преподавателя // Вестник пермского университета, выпуск 2(2) – [2010].

  6. Шаров Д.А. Автоматизация контроля знаний с применением синонимических рядов в автоматизированных системах управления образовательного назначения // диссертация – [2004]

  7. Фриддл Д. Регулярные выражения. 3-е издание // Символ Плюс, Санкт-Петербург – [2008].

Научный руководитель: Кандидат физико-математических наук, зав. кафедрой МОВС ПГНИУ, С.И.Чуприна

Просмотров работы: 2439