Система тестирования знаний на естественном языке на основе семантической сети обучающей системы

СИСТЕМНЫЙ АНАЛИЗ И ОБУЧАЮЩИЕ СИСТЕМЫ

УДК 004.853

С. Э. Веремчук, Н. И. Гурин

Белорусский государственный технологический университет

СИСТЕМА ТЕСТИРОВАНИЯ ЗНАНИЙ НА ЕСТЕСТВЕННОМ ЯЗЫКЕ НА ОСНОВЕ СЕМАНТИЧЕСКОЙ СЕТИ ОБУЧАЮЩЕЙ СИСТЕМЫ

Статья посвящена описанию алгоритмов функционирования и разработки на их основе системы тестирования знаний на естественном языке для компьютерной обучающей системы. Разработанная система тестирования основана на использовании базы знаний обучающей системы, функционирующей как семантическая сеть. Система разработана в среде Unity на основе созданных на языке C# классов и методов, взаимодействующих между собой. Система может работать как самостоятельное приложение в Windows, Android и в браузере на основе WebGL, а может быть внедренной в другое приложение, поддерживаемое данными платформами. При тестировании вопросы задаются в процессе диалога посредством вывода вопроса в текстовом виде, тестируемый также отвечает текстом или голосом. Система тестирования предоставляет возможность выбирать одну или несколько тем по учебному материалу для тестирования обучаемого. База знаний системы тестирования формируется из внешней SQLite базы данных и основывается на базе знаний обучающей системы. Система может оценивать ответ тестируемого как правильный, частично правильный или неправильный, начисляя определенное количество баллов, при этом оцениваются и ответы, приведенные в виде развернутых предложений.

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

S. E. Veremchuk, N. I. Gurin

Belarusian State Technological University

KNOWLEDGE TESTING SYSTEM BASED ON SEMANTIC NETWORK

OF LEARNING SYSTEM

The article is devoted to the description of the functioning algorithms and the development on their basis of a system for testing knowledge in natural language for a computer learning system. The developed testing system is based on the use of the knowledge base of the training system, which functions as a semantic network. The system is developed in the Unity environment based on classes created in C# and interacting with each other. The system can work as a standalone application in Windows, Android and in a browser based on WebGL, or be embedded in another application supported by these platforms. When testing, questions are asked in the process of dialogue by outputting a question in text form or by voice, the person being tested also responds with text. The testing system provides the ability to select one or several topics on educational material for testing the student. The knowledge base of the testing system is formed from an external SQLite database and is based on the knowledge base of the training system. The system can evaluate the answer of the person being tested as correct, partially correct or incorrect, by charging a certain number of points, and the answers given in the form of detailed sentences are also evaluated.

Key words: computer training system, testing system, semantic network, knowledge base.

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

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

полностью автоматизирующие процесс обучения [1], заменяя реального преподавателя виртуальным как в режиме диалога с обучаемым, так и в режиме тестирования приобретаемых знаний. В таких обучающих системах для организации диалога с ней на естественном языке создается база знаний по данной предметной области, которая содержит все ключевые понятия-объекты и их смысловые связи в учебном материале, представленные в виде семантической сети [2, 3]. Разработанная система тестирования функционирует как самостоятельный модуль для такой обучающей системы и опирается на ее базу знаний. Это позволяет проводить тестирование на естественном языке и автоматизировать оценку результатов тестирования для любых ответов, в том числе и в виде развернутого предложения. Поскольку семантические отношения между учебными объектами в базе знаний позволяют провести анализ результатов тестирования не только по точному совпадению ответа с соответствующей записью в базе знаний, но и по совпадению их смыслового содержания. Система тестирования использует базу знаний обучающей системы как для генерации вопросов проводимого теста, так и для анализа полученных в ходе тестирования ответов на основе семантических связей ключевых объектов. При этом система обеспечивает вывод вопросов для тестирования на естественном языке в виде текста либо голосa с последующим анализом ответа тестируемого, введенного им также в виде текста либо голоса, используя в последнем случае для диалога подключение к речевым сервисам для распознавания и синтеза речи.

Основная часть. Система тестирования функционирует на основе программного средства, разработанного на языке C# в среде Unity, и содержит 5 составляющих: Server, Test, KnowledgeBase, Question и Client, выполняющих определенные задачи.

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

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

для взятия списка вопросов клиентом (без ответов из базы данных), принятия списка ответов клиента, отправки результатов теста обратно клиенту (только его результаты) и вывода результатов на сервере (всех тестируемых).

Класс KnowledgeBase подключается к базе данных, составляет списки вопросов, учитывая тематику. Составленные вопросы отправляются в тест, который запросил их в виде списка объектов структуры Question.

Структура Question содержит следующие поля: тема, к которой относится данный вопрос, текст вопроса (вопросительное слово с подлежащим или сказуемым), основной текст предложения (подлежащее или сказуемое, к которому будет задаваться вопрос с дополнительной информацией) и проверочная строка ответа. При создании экземпляра вопроса от класса KnowledgeBase передается строковый массив, содержащий всю необходимую информацию для заполнения полей. Также в данной структуре проверяется правильность ответа на каждый вопрос и возвращается количество набранных баллов за ответ на заданный вопрос.

Класс Client содержит графическую составляющую, включающую две панели. На первой панели располагаются интерфейс для подключения к серверу, поле для ввода имени клиента и кнопка для запроса на тест от сервера. Также на первой панели присутствует текстовое поле для вывода результатов теста, однако сначала оно скрыто и отображается только после прохождения теста. Вторая панель заменяет первую во время начала прохождения теста. Она содержит текстовое поле для вывода текущего вопроса, текстовое поле для ввода ответа на текущий вопрос, кнопку для фиксирования ответа и перехода к следующему вопросу или же к выводу конечного результата, если вопрос был последним. Класс Client запрашивает у Test список вопросов для тестируемого, а затем по порядку задает их тестируемому и записывает данные на них ответы. При завершении прохождения всех вопросов ответы отправляются на обработку, затем принимаются и выводятся результаты тестирования.

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

Алгоритм функционирования системы тестирования следующий:

1) на Server задаются параметры: тема или темы для тестирования (список представленных к выбору тем загружается динамически из базы данных);

2) создается тест с заданными на Server параметрами. При создании теста запрашивается создание локальной базы знаний;

Server

Test

Задание параметров теста

Г

Отправка результатов тестирования

Knowledgebase

Question

Client

Запрос на создание списка вопросов

Возврат списка вопросов для теста без ответов

Отправка вопросов клиенту

Отправка результатов тестирования

Формирование базы знаний

Отправка базы знаний

Отправка списка вопросов без ответов

Проверка ответов клиента

Отправка результатов тестирования

Создание

списка вопросов

Отправка ответов клиента

Проверка ответов клиента

Запись ответов клиента

Рис. 1. Диаграмма последовательности взаимодействия классов системы тестирования

3) по исходным параметрам модуль на основе класса Knowledgebase выбирает из базы данных определенное количество записей на заданную тему;

4) в классах Server и Client выводится результат прохождения теста.

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

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

2) вопросы с несколькими вариантами правильных ответов, когда может быть засчитан частично правильный ответ;

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

4) вопросы, содержащие изображение. Следует отметить, что изображение не будет являться ответом на вопрос, а будет использоваться в вопросе.

Формирование записей в базы данных системы тестирования, изображенных на рис. 2, происходит по трем столбцам:

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

2) связь (Bond). Во втором столбце содержится основная информация, которая содержит в себе подлежащее или сказуемое, к которому будет задаваться вопрос и текст вопроса, в случае использования изображения для вопроса, оно будет храниться также в этом столбце;

3) ответ (Answer). Последний столбец содержит отформатированный правильный ответ, также являющийся ключевым понятием, к которому будет задаваться вопрос при тестировании. Ответ должен быть сформирован по следующим правилам:

а) в квадратных скобках указываются те части слов (в основном окончания), которые можно не учитывать при проверке ответа;

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

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

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

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

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

Подготовка к тесту. Чтобы сформировать предложение для ознакомления с учебным материалом при подготовке к тесту достаточно вывести его из базы данных системы тестирования (рис. 2) по схеме: строка из столбца Bond, последнее слово из столбца Question и строка из столбца Answer без квадратных скобок. Применив данное правило ко второй строке рис. 2, получим вывод ознакомительного предложения:

Световые волны, электромагнитные колебания которых распространяются во всех направлениях, называются обычными (естественными).

Формирование вопроса. Вопросы для тестирования формируются на основе базы данных системы тестирования (рис. 2) следующим образом: выводится строка из столбца Question, затем строка из столбца Bond и в конце добавляется знак вопроса. Например, после формирования вопроса для строки 2 на рис. 2 получаем:

Как называются световые волны, электромагнитные колебания которых распространяются во всех направлениях?

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

Question Bond Answer

Как называется световые волны, электромагнитные колебания которых распространяются во всех направлениях обычн[ыми]

Какие выделяются виды поляризации света [: ]линейн[ая], кругов[ая], эллиптическая]

Чему равна разность хода при наблюдении максимума интенсивности при интерференции цел[ому] числ[у] длин[] волн[]

Что наблюдается при разности хода, равной нечетному числу полуволн миним[ум]

Где наблюдается интерференционная картина, локализованная вблизи отражающей поверхности [на] тонк[их] пленк[ах]

Какие наблюдаются полосы при освещении пластинки переменной толщины параллельным пучком света равн[ой] толщ[ины]

Какой закон выражает данную зависимость Resources\img1.png малюс[а]

Рис. 2. Пример записей в базе данных

Рассмотрим формирование сверочных строк на примере ответов, хранящихся в базе знаний системы тестирования (см. третью и вторую строки на рис. 2):

[: ]линейн[ая], кругов[ая], эллиптическ[ая] обычн[ыми] (естествен[ными]) Формирование сверочной строки для проверки ответа клиента осуществляется в два этапа.

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

После первого этапа получаем: линейн, кругов, эллиптическ обычн

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

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

обычн |естествен

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

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

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

1) клиент, ответив на все вопросы, завершает тест, после чего его ответы отправляются на проверку на сервер;

2) на сервере присланные ответы сопоставляются со сверочными строками;

3) каждое слово, хранящееся в сверочной строке, ищется в качестве подстроки в ответе клиента;

4) за каждое совпадение с подстрокой начисляется 1 балл;

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

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

Рассмотрим пример проверки ответа. Итак, клиент видит на экране вопрос:

Какой бывает поляризация света?

К моменту вывода вопроса на экран уже сформирована следующая проверочная строка:

линейн, кругов, эллиптическ

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

Поляризация бывает линейной и эллиптической

Таким образом, в своем ответе про круговую поляризацию тестируемый не вспомнил.

Дальнейшая обработка ответа пройдет следующие этапы:

1) происходит поиск подстроки «линейн», а так как такая подстрока присутствует в ответе тестируемого, то начисляем 1 балл;

2) далее идет запятая, которая говорит о том, что данный вопрос нужно оценивать как вопрос второго типа (перечисление);

3) происходит поиск подстроки «кругов». Подстрока не находится и за данную часть ответа тестируемого начисляется 0 баллов;

4) происходит поиск подстроки «эллипти-ческ», так как данная подстрока содержится в ответе, то начисляется еще 1 балл;

5) далее проверочная строка заканчивается, и так как в проверочной строке было три элемента без разделителей и между ними стояли запятые, то набранное количество баллов (2) делим на три. Значит, этот ответ верен всего на 66%;

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

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

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

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

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

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

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

Литература

1. Гурин Н. И., Герман О. В. Компьютерные обучающие системы в издательском деле. В 2 ч. Ч. 2. Минск: БГТУ, 2015. 192 с.

2. Гурин Н. И., Герман О. В. Интеллектуальный анализатор запросов к базе знаний мультимедийного электронного учебника // Труды БГТУ. 2010. № 6: Физ.-мат. науки и информатика. С.167-170.

3. Гурин Н. И., Жук Я. А. Генератор семантической сети информационной системы в таблицу реляционной базы данных // Труды БГТУ. 2015. № 6: Физ.-мат. науки и информатика. С. 181-185.

References

1. Gurin N. I., German O. V. Komp'yuternyye obuchayushchiye sistemy v izdatel'skom dele. V 2 chas-tyakh. Chast' 2 [Computer tutoring systems in publishing. In 2 parts. Part 2]. Minsk, BGTU Publ., 2015. 192 p.

2. Gurin N. I., German O. V. Intelligent analyzer of requests to the knowledge base of multimedia electronic tutorial. Trudy BGTU [Proceedings of BSTU], 2010, no. 6: Physics and Mathematics. Informatics, pp. 167-170 (In Russian).

3. Gurin N. I., Zhuk Ya. A. The information system semantic network generator to a relational database table generator. Trudy BGTU [Proceedings of BSTU], 2015, no. 6: Physics and Mathematics. Informatics, pp. 181-185 (In Russian).

Информация об авторах

Веремчук Сергей Эдуардович - магистрант кафедры информационных систем и технологий. Белорусский государственный технологический университет (220006, г. Минск, ул. Свердлова, 13а, Республика Беларусь). E-mail: seregaverem4uk@gmail.com

Гурин Николай Иванович - кандидат физико-математических наук, доцент кафедры информационных систем и технологий. Белорусский государственный технологический университет (220006, г. Минск, ул. Свердлова, 13а, Республика Беларусь). E-mail: ngourine@mail.ru

Information about the authors

Veremchuk Sergey Eduardovich - Master's degree student, the Department of Information Systems and Technologies. Belarusian State Technological University (13a, Sverdlova str., 220006, Minsk, Republic of Belarus). E-mail: seregaverem4uk@gmail.com

Gurin Nikolay Ivanovich - PhD (Physics and Mathematics), Assistant Professor, the Department of Information Systems and Technologies. Belarusian State Technological University (13a, Sverdlova str., 220006, Minsk, Republic of Belarus). E-mail: ngourine@mail.ru

Поступила 30.03.2018