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

Описание процесса реализации виртуального собеседника для деловой игры с помощью лексико-синтаксических шаблонов с использованием языка LSPL. Разработка сервиса администрирования. Публикация системы на хостинге Microsoft Azure и опытное тестирование.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 15.09.2018
Размер файла 2,5 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

<texts>

<text>

<goal name="QComp">

<match startPos="0" endPos="19">

<fragment>Сколько компьютеров</fragment>

<result>-</result>

</match>

<match startPos="0" endPos="24">

<fragment>Сколько компьютеров есть</fragment>

<result>-</result>

</match>

<match startPos="0" endPos="26">

<fragment>Сколько компьютеров есть в</fragment>

<result>-</result>

</match>

<match startPos="0" endPos="32">

<fragment>Сколько компьютеров есть в вашей</fragment>

<result>-</result>

</match>

<match startPos="0" endPos="38">

<fragment>Сколько компьютеров есть в вашей фирме</fragment>

<result>-</result>

</match>

</goal>

<goal name="InternetSpeed">

</goal>

<goal name="AreUsable">

</goal>

И т.д.

</text>

</texts>

Как видно из кода файла, было найдено несколько соответствий с шаблоном «QComp». Поскольку в этом шаблоне есть возможность вставлять слова между частями шаблона, то было количество соответствий было увеличено. После завершения работы утилиты содержимое выходного файла обрабатывается системой, где проверяется, какие из поданных шаблонов были встречены в тексте. Результирующим шаблоном считается тот, фрагмент которого, встреченный в тексте, имеет максимальную длину. За обработку выходного файла отвечает класс QuestionsAnswerer.

Разберем, как работает этот класс. У него есть всего одна публичная функция, которая вызывается из внешнего кода. В нее передается текст выходного файла. Сначала функция проверяет, находится ли в коде файла подстрока «match»: эта подстрока находится в файле только в том случае, если было найдено соответствие между лексико-синтаксическими шаблонами и текстом на вход для утилиты. Если подстрока не была найдена, то функция ничего не вернет и это будет обрабатываться во внешнем коде, в ином случае выбирается то соответствие, в котором разница стартовой и конечной позиции максимальна, после чего возвращается название шаблона этого соответствия.

3.6 Разработка веб-приложения

После того, как была спроектирована и наполнена база данных, была начата разработка веб-приложения для взаимодействия с пользователем на платформе asp.net. Было разработано одностраничное приложение с использование технологий jquery и ajax с простым интерфейсом (Рис 3.5.), где пользователю предлагается выбрать филиал из списка доступных, ввести должность сотрудника и задать вопрос, после чего в графе ответ через некоторое время появится ответ, вычисленный системой. Алгоритм, по которому работает система, в точности повторяет спроектированный. Его реализация приведена ниже:

public JsonResult GetAnswer(QuestionAnswerModel model)

{

using (var db = new ObaldeitChatBotEntities())

{

var employeePatternName = GetPatternName(model.EmployeeText, db.Employee.ToList().Where(e => e.subsidiaryId == model.SelectedCityId).Select(e => e.EmployeePattern.title).ToList());

if (employeePatternName == null)

{

model.AnswerText = "Нет у нас такой должности!";

return Json(model);

}

var employee = db.Employee.ToList().First(e => e.subsidiaryId == model.SelectedCityId && e.EmployeePattern.title == employeePatternName);

var competencesPatterns = db.Competence.ToList().Where(c => c.employeeId == employee.id).Select(s => s.PhrasePattern.title).Distinct().ToList();

var answerPatternName = GetPatternName(model.Question, competencesPatterns);

if (answerPatternName == null)

{

model.AnswerText = "Сотрудник не знает ответа на заданный вопрос.";

return Json(model);

}

model.AnswerText = db.Competence.ToList().First(c => c.employeeId == employee.id && c.PhrasePattern.title == answerPatternName).answer;

}

return Json(model);

}

Рисунок 3.5. Веб-приложение LSPL

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

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

3.7 Разработка сервиса администрирования

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

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

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

Рисунок 3.6. Исправление компетенций сотрудников

Рисунок 3.7. Окно просмотра истории заданных вопросов

3.8 Публикация системы на Microsoft Azure и опытное тестирование

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

Поскольку система использует базу данных в работе, то сначала была развернута она. В студенческом аккаунте, предоставляемом компанией Microsoft для студентов НИУ ВШЭ, был создан запрос на использование сервера базы данных. После получения доступа к серверу, была создана пустая база данных. Далее с помощью программы Data Migration Assistant была перенесена схема локальной БД на удалённую, после чего были переданы и сами данные.

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

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

виртуальный собеседник администрирование синтаксический

Заключение

В ходе данной работы была построена собственная система для генерации лексико-синтаксических шаблонов на основе исходного файла с текстовыми строками. На основе разработанной технологии была спроектирована и реализована система, позволяющая имитировать процесс общения студента и сотрудника филиала фирмы в ходе бизнес-игры. Разработанная система была развернута в интранете ВШЭ Пермь для проведения последующих бизнес-игр. Были выполнены следующие задачи:

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

2. Разработано технического задания

3. Проведен сравнительный анализ моделей улучшения алгоритма

4. Был улучшен алгоритм работы системы

5. Было произведено проектирование архитектуры новой системы.

6. Система была разработана.

7. Было произведено первичное тестирование системы.

8. Система была развернута.

9. Была проведена опытная эксплуатация системы.

Библиографический список

1. Chapter 1. Introduction to Microsoft Solutions Framework. / TechNet

2. Следствие из теоремы Колмогорова-Арнольда-Хехт-Нильсена. / Искусственные нейронные сети. Теория и практика

3. Макконелл С. Совершенный код. М.: Русская Редакция, 2015.

4. Скиена С. Алгоритмы Руководство к разработке. М.: БХВ-Петербург, 2014.

5. Избачков Ю.С. Информационные системы СПб.: Питер, 2006.

6. Хайкин С. Нейронные сети: полный курс. М.: Издательский дом Вильямс, 2008.

Размещено на Allbest.ru


Подобные документы

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

    дипломная работа [2,0 M], добавлен 20.07.2015

  • Анализ существующих виртуальных музеев. Формирование основных требований к виртуальному 3D музею. Анализ цифровой и текстовой информации о Московском Мультимедиа Арт Музее. Разработка структуры и интерфейса мобильного приложения виртуального музея.

    дипломная работа [3,8 M], добавлен 26.08.2017

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

    курсовая работа [163,2 K], добавлен 18.06.2009

  • Проектирование игры "Морской бой" путем составления диаграмм UML, IDEF0, DFD, моделирующих требования к программе. Разработка программы с использованием языка C# и фреймворка.NETFramework 3.5. Тестирование белого ящика и альфа-тестирование продукта.

    курсовая работа [3,9 M], добавлен 24.10.2013

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

    курсовая работа [60,2 K], добавлен 30.06.2014

  • Создание образа диска с помощью программного продукта Nero для резервного копирования, распространения программного обеспечения, виртуальных дисков, тиражирования однотипных систем. Возможности Alcohol 120%, Daemon Tools для эмуляции виртуального привода.

    курсовая работа [188,9 K], добавлен 07.12.2009

  • Разработка виртуального вычислительного устройства с кассетной структурой. Массивы и кластеры. Вычисления над элементами массива. Вычислительные функции пакета LabVIEW. Логическая последовательность выполнения отдельных частей программы (подпрограммы).

    контрольная работа [252,4 K], добавлен 15.01.2009

  • Обоснование необходимости разработки виртуального магазина. Описание форм программы. Требования к аппаратному и программному обеспечению. Тестирование и выявление ошибок. Область применения программы. Расчет экономического эффекта проекта. Охрана труда.

    дипломная работа [1,7 M], добавлен 20.12.2012

  • Анализ деятельности подразделения разработки программных продуктов, использующих Web-технологии, в компании ИООО "ЭПАМ Системз". Разработка систем с использованием Web-технологий с помощью программного продукта Oracle Database и технологий Spring, Struts.

    отчет по практике [1,0 M], добавлен 14.04.2014

  • Разработка информационной системы для автоматизации логистики в управлении архивом документов компании "Айрон Маунтен". Обзор рынка аналогов программных продуктов. Тестирование разработанной программной системы. Даталогическая и физическая модели данных.

    дипломная работа [7,3 M], добавлен 04.05.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.