СИСТЕМНЫЙ АНАЛИЗ И ОБУЧАЮЩИЕ СИСТЕМЫ
УДК 004.853
Я. А. Жук, Н. И. Гурин
Белорусский государственный технологический университет
РЕАЛИЗАЦИЯ ДИАЛОГА С КОМПЬЮТЕРНОЙ ОБУЧАЮЩЕЙ СИСТЕМОЙ НА ЯЗЫКЕ JAVASCRIPT С ПОМОЩЬЮ ВЕБ-СЕРВИСОВ
Статья посвящена созданию модуля диалога с компьютерной обучающей системой на основе веб-технологий. Модуль размещается на веб-странице путем добавления в HTML-код ссылок на код JavaScript и стили CSS. Работа модуля диалога основана на использовании семантической сети, записанной в виде списка дуг в двумерный текстовый массив, и созданных на языке JavaScript функций. Поскольку окно диалога размещается на веб-страницах, в базе знаний допускается применение различных HTML-тегов, в том числе добавляющих на страницу изображения, анимации и видеозаписи. При поиске ответа вызывается функция, наполняющая в диалоговом модуле блок истории вопросом и ответом. Для текстовых ответов выполняется озвучивание при помощи веб-сервиса Yandex SpeechKit синтеза речи. Для получения ответа используется функция, выполняющая анализ вопроса и поиск ответа в семантической сети обучающей системы. В ходе анализа вопроса выполняется поиск сказуемого по псевдоокончаниям, занесенным в отдельный массив. Поиск выполняется в трех циклах обработки базы знаний, каждый следующий выполняет поиск при отсутствии результата от предыдущего, используя менее строгие проверки.
Ключевые слова: обработка естественного языка, семантическая сеть, вопросно-ответная система.
Ya. A. Zhuk, N. I. Gurin
Belarusian State Technological University
IMPLEMENTATION OF DIALOGUE WITH THE COMPUTER TRAINING SYSTEM IN JAVASCRIPT USING WEB SERVICES
The article describes the creation of a dialogue module for a computer learning system based on web technologies. The module is placed on the page by adding links to JavaScript code and CSS styles to the HTML code. The work of the module is based on a semantic network, recorded as a list of arcs in a two-dimensional array, and three functions in JavaScript. Deployment of the answers on HTML pages allows using a variety of HTML tags in the knowledge base, including adding images, animations and videos to the page. Immediately after pressing the answer search button, the first function is called. This function fills the history block of the dialog box with a question and answer. For textual responses text is transformed to speech using the speech synthesis web service. The answer is returned by the second function that performs an analysis of the question and finds the answer to the question in the semantic network. The answer search is performed in three cycles; each following performs a search in the absence of a result from the previous one, and uses less stringent checks when searching. During the analysis of the question, the search for the predicate is performed using the third function, which uses the pseudo-endings array.
Key words: natural language processing, semantic network, question-answer system.
Введение. Существующие компьютерные обучающие системы (КОС) часто основаны на веб-технологиях. С целью создания универсальных дополнительных модулей для таких систем целесообразно использовать преимущественно базовые функции языка JavaScript, а не дополнительных библиотек. Одним из широко распро-
страненных недостатков существующих КОС, используемых в дистанционном образовании, является предоставление большей части информации в текстовом либо графическом виде. Такой подход не учитывает особенности личности сту-дентов-аудиалов, склонных к восприятию информации на слух [1]. В качестве решения данной
проблемы предлагается использовать сервисы распознавания и синтеза речи, а также предоставить возможность речевого диалога с КОС. Выбор синтезатора и распознавателя речи из программного пакета Yandex SpeechKit обусловлен бесплатностью для некоммерческих проектов и наличием подробной русскоязычной документации.
Кроме того, предлагаемый метод может быть использован для любой информационной или справочной системы, поскольку обеспечение в ней речевого компьютерного диалога с пользователем способно автоматизировать либо вообще заменить работу операторов так называемых call-центров сервисного обслуживания.
Основная часть. Разработанный диалоговый модуль представлен на страницах КОС в виде блока, изначально расположенного за краем экрана и выдвигаемого поверх веб-страницы по щелчку. В состав диалогового модуля входят текстовое поле для ввода вопроса, кнопка подключения сервиса распознавания вопроса в речевом варианте, кнопка запуска поиска ответа и прокручиваемая по вертикали область для вывода истории вопросов и ответов. Корректное расположение и отображение блока диалогового модуля и его составных компонентов обеспечено при помощи стилей CSS. Выдвижение и скрытие модуля выполнено отдельной функцией на языке JavaScript. Интерфейс диалогового модуля показан на рис. 1.
w
История:
что является точным -
методом
экспериментального
определения свойств
веществ
Измерения ЭДС
концентрационных
гальванических элементов
являются очень удобным,
надёжным и точным
методом
экспериментального
определения различных
свойств веществ и
растворов электролитов.
с -
[ Введите вопрос »)
_Спросить_I
--
Рис. 1. Интерфейс диалогового модуля
При динамическом добавлении диалогового модуля на страницы выполняется привязка веб-сервиса распознавания речи Yandex SpeechKit JavaScript Web API к полю ввода вопроса. Код привязки функции голосового ввода к текстовому полю приведен на рис. 2.
var textline^= new уа.speechkit.Textline(
Рис. 2. Подключение распознавания речи
При активизации режима поиска ответа на введенный вопрос вызывается функция ask, отвечающая за размещение вопроса и ответа в соответствующей области диалогового модуля.
Для получения ответа функция ask вызывает функцию getAnswer, выполняющую поиск ответа в базе знаний (БЗ) информационной системы. Структура БЗ представляет собой список дуг семантической сети, записанный в форме двумерного массива. Каждая строка массива представляет собой простое или сложноподчиненное предложение, разбитое на 3 ячейки. В первую ячейку записывается подлежащее с относящимися к нему дополнительными членами, стоящие в начале предложения в соответствии с требованиями научного функционального стиля, к которому относятся учебники [2]. Далее под подлежащим будет пониматься именно такое содержание первой ячейки. Во вторую ячейку записывается сказуемое, стоящее в середине предложения. В третьей ячейке размещаются вспомогательные члены предложения, расположенные после сказуемого, в т. ч. подчиненные части сложноподчиненных предложений [3]. Пример записи сложноподчиненного предложения показан на рис. 3.
"раздел химической науки, в котором "+ "рассматриваются системы и межфазные границы " + "при протекании через них электрического тока, " +
"на электродах и в ионных проводниках."].
Рис. 3. Запись в базе знаний
Поскольку ответы размещаются на HTML-странице КОС, в ячейках БЗ кроме простого текста применяются различные HTML-теги для форматирования текста, вставки изображений, анимационных роликов и видеозаписей. Пример записи, содержащей анимационный ролик в формате SWF приведен на рис. 4.
[ "первооткрывателем мира микробов", "считается", "Антони ван Левенгук "+
"(Antony van Leeuwenhoek, 1632-1723), "+ "который жил в Голландии и занимался, "+ "в основном, пошивом одежды: <Ъг>"+ "<embed src='la.swf'/>"],
Рис. 4. Запись с анимацией в базе знаний
Поиск ответа состоит из анализа вопроса и трех проходов по дугам семантической сети. Ожидается вопрос со строго определенной структурой: вопросное слово, сказуемое и подлежащее. Учитывая такую структуру, анализ состоит в разбиении введенной строки на массив слов и нахождении сказуемого при помощи
функции getEnding. Слова, стоящие за сказуемым, считаются подлежащим. Проходы по дугам БЗ выполняют сравнение подлежащего и сказуемого из вопроса с соответствующими ячейками. Упрощенный алгоритм анализа вопроса и поиска ответа, демонстрирующий работу только одного прохода, представлен на рис. 5.
Цикл по массиву слов
Первый проход выполняет поиск записи, в которой сказуемое и подлежащее полностью совпадают с аналогичными частями вопроса. Такой проход позволяет в КОС по географии в качестве ответа на вопрос «Что такое океан?» вместо описания всех океанов вывести конкретное определение. Во втором цикле выполняется поиск соответствий при помощи регулярных выражений, позволяющих выбрать сказуемое, стоящее в другой форме, а также подлежащее с пропущенными словами. С целью учета синонимичности сказуемых третий цикл выполняет поиск только с помощью регулярного выражения, составленного на основе слов подлежащего из вопроса. Так, на вопрос к КОС по электрохимии «От чего зависит
стандартный электродный потенциал?» будет дан ответ: «Стандартный электродный потенциал Е° - табличная величина, зависящая только от природы электрода и от температуры», в котором в роли сказуемого выступает символ тире. После получения результата от функции getAnswer в функции ask на основании типа последнего тега ответа делается вывод о необходимости озвучивания, которое выполняется для текстовых ответов при помощи веб-сервиса синтеза речи Yandex SpeechKit Cloud API. Если же в качестве ответа из БЗ был извлечен уже озвученный видеоматериал, озвучивание полученного ответа не выполняется. Блок-схема функции ask представлена на рис. 6.
Рис. 6. Блок-схема алгоритма добавления в историю вопросов и ответов
Рис. 7. Блок-схема алгоритма распознавания принадлежности слова к сказуемым
Функция getEnding, позволяющая определить, является ли слово сказуемым, выполняет сравнение последних символов слова с набором псевдоокончаний глаголов, кратких прилагательных и причастий, которые хранятся в отдельном двумерном массиве. Именно перечисленные части речи чаще других выступают в качестве сказуемых в текстах научного функционального стиля. При нахождении совпадающего псевдоокончания функция возвращает его номер в массиве. Во втором столбце массива хранятся наборы допустимых псевдоокончаний, используемых в других формах слова: единственное и множественное число у глаголов, различные род и число у кратких прилагательных и причастий. Описанный метод не является совершенным, так как некоторые слова обладают псевдоокончаниями перечисленных частей речи, но при этом принадлежат другим частям речи. Например, слова «бегут» и «атрибут» оба заканчиваются на «ут», но первое является глаголом, а второе - существительным. Чтобы учесть этот факт функция getEnding проверяет переданные в нее слова на наличие
в массиве таких слов-исключений и в случае нахождения их в массиве возвращает «-1» вместо номера псевдоокончания, что является признаком того, что слово не принадлежит к искомым частям речи. Отметим, что практическое применение предложенного метода организации речевого диалога с КОС на основе использования псевдоокончаний показало достаточно высокую эффективность при составлении списка слов-исключений, используемых в содержании КОС. Блок-схема определения принадлежности слова к сказуемым показана на рис. 7.
Полученные от функции getEnding наборы допустимых псевдоокончаний используются при формировании регулярного выражения для поиска сказуемого во втором проходе по БЗ при поиске ответа в функции getAnswer. Также в массив кроме наборов допустимых псевдоокончаний внесены другие слова, которые могут стоять в вопросе перед подлежащим и соответствующие им сказуемые, используемые в БЗ в записях, подходящих в качестве ответов. Например, для корректной обработки вопросов, начинающихся на «что такое» в массив вносится слово «такое»,
а во второй столбец вносится знак «-», используемый в качестве сказуемого в определении, которое будет ответом на вопрос такой структуры. Фрагмент массива приведен на рис. 8.
var endings =
[["ет", "(ет|ут|ют)"],
["ут", "(ет|ут|ют)"], ["ют", "(ет|ут|ют)"],
["ется", "(ет|ут|ют)ся"] ["утся", "(ет|ут|ют)ся"] ["ются", "(ет|ут|ют)ся"]
Рис. 8. Псевдоокончания глаголов 1-го спряжения
Заключение. Описанный подход позволяет улучшить функциональность КОС, основанных на использовании веб-технологий, путем интеграции в них модуля диалога, в том числе речевого, особенно при дистанционном обучении.
Разработанный программный модуль требует для применения в КОС лишь простейших инструментов веб-разработки и подготовки текстового массива списка дуг семантической сети БЗ КОС. Кроме того, предоставляемый модулем функционал может быть полезен не только в КОС, но и в других информационных системах, где требуется консультация пользователей.
Литература
1. Денишова Д. А. Репрезентативная система, каналы восприятия и синестезия в рамках вопроса о восприятии человека // Гуманитарный научный вестник. 2017. № 5. С. 8-16.
2. Стилистический энциклопедический словарь русского языка / под ред. М. Н. Кожиной. М.: Флинта: Наука, 2011. 696 с.
3. Гурин Н. И., Жук Я. А. Генератор семантической сети информационной системы в таблицу реляционной базы данных // Труды БГТУ. 2015. № 6: Физ.-мат. науки и информатика. С. 181-185.
References
1. Denishova D. A. Representational system, channels of perception and synesthesia within the framework of the question of human perception. Gumanitarnyy nauchnyy vestnik [Humanities scientific journal], 2017, no. 5, pp. 8-16 (In Russian).
2. Stilisticheskiy entsiklopedicheskiy slovar' russkogo yazyka [Stylistic encyclopedic dictionary of Russian language]. Moscow, Flinta Publ., Nauka Publ., 2011. 696 p.
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: ngourine@mail.ru
Жук Ярослав Александрович - аспирант кафедры информационных систем и технологий. Белорусский государственный технологический университет (220006, г. Минск, ул. Свердлова, 13а, Республика Беларусь). E-mail: zhuk@belstu.by
Information about the authors
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
Zhuk Yaroslav Aleksandrovich - PhD student, the Department of Information Systems and Technologies. Belarusian State Technological University (13a, Sverdlova str., 220006, Minsk, Republic of Belarus). E-mail: zhuk@belstu.by
Поступила 15.05.2018