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

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

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

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

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

Размещено на http://www.allbest.ru/

2

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

Национальный исследовательский университет

«Высшая школа экономики»

Факультет экономики, менеджмента и бизнес-информатики

АВТОМАТИЗАЦИЯ ОБУЧЕНИЯ ТЕХНОЛОГИИ MSF: УСОВЕРШЕНСТВОВАНИЕ ВИРТУАЛЬНОГО СОБЕСЕДНИКА ДЛЯ СБОРА ИНФОРМАЦИИ ДЛЯ РАЗВЕРТЫВАНИЯ ПРОГРАММНЫХ ПРОДУКТОВ В СООТВЕТСТВИИ С ТЕХНИЧЕСКИМ ЗАДАНИЕМ

Выпускная квалификационная работа

Аблекимов Эдуард Маратович

студента образовательной программы «Программная инженерия»

по направлению подготовки 09.03.04 Программная инженерия

Руководитель

к.ф-м.н., доцент, доцент кафедры

информационных технологий в бизнесе

Замятина Е.Б.

Пермь, 2019 год

Аннотация

В данной работе представлены основные этапы разработки виртуального собеседника для сбора информации для проведения деловой игры «Развертывание» с помощью векторизации строк. Данная работа содержит введение, четыре главы, заключение, библиографический список и приложения. Первая глава содержит описание предметной области виртуального собеседника, анализа автоматизируемого процесса и сформированных требований. Вторая глава посвященаописанию выбранного подхода, проектированию графического интерфейса. Третья глава содержит информацию обособенностях реализации виртуального собеседника. Четвертая глава посвящена описанию выбранных методов тестирования и их реализации. Работа состоит из 49страниц формата А4, включает в себя 8 рисунков, 2 формулы и 11 таблиц.

векторизация строк интерфейс виртуальный собеседник

Оглавление

Введение

Глава 1.Анализ предметной области виртуального собеседника

1.1Методология Microsoft Solution Framework

1.2Деловая игра «Развертывание»

1.3Постановка задачи на разработку виртуального собеседника

1.4Формализация требований к виртуальному собеседнику

1.4.1Функциональные требования

1.4.2Нефункциональные требования

1.4.3Требования ко входным и выходным данным

1.5Анализ предшествующих попыток реализации виртуального собеседника

1.5.1Виртуальный собеседник Цаплина С.В.

1.5.2Виртуальный собеседник Репина Д.Ю.

1.6Анализ возможных подходов к разработке виртуального собеседника

Глава 2.Проектирование виртуального собеседника

2.1Описание выбранного подхода к разработке виртуального собеседника

2.1.1Косинусное расстояние

2.1.2Расстояние Левенштейна

2.2.Наполнение базы знаний виртуального собеседника

2.3.Проектирование пользовательского интерфейса

Глава 3.Разработка виртуального собеседника

3.1Описание инструментальных средств разработки

3.1.1Использованные сторонние библиотеки

3.1.2Средство разработки графического интерфейса

3.2Статическая структура системы

3.3Разработка виртуального собеседника

3.4Поддержка синонимов

Глава 4.Тестирование виртуального собеседника

4.1Тестирование на исходной выборке

4.2Тестирование на отложенной выборке

4.3Тестирование путем апробации

Заключение

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

Введение

Некоторые этапы в учебном процессе высших учебных заведениях предполагают огромное количество работы как студентов, так преподавателей. Одним из примеров служит деловая игра, проводимая при обучении студентов компьютерным специальностям в Пермском государственном национальном исследовательском университете и «Высшей школе экономики», под названием «Развертывание». Игра является способом познакомить студента с методологией Microsoft Solution Framework и ее этапом «Развертывание». Суть игры заключается в сборе информации о компании, на которой нужно развернуть некое программное обеспечение. Сбор информации заключается в получении дополнительной информации о компании путем формирования вопросов. Далее компания (преподаватель) отвечает, используя предопределенный стиль общения сотрудников. Процесс формирования ответов преподавателем занимает большое количество времени, так как на каждую команду следует сформировать ответы на каждый заданный ими вопрос. Автоматизация данного процесса сильно сократить затрачиваемое время как преподавателя, так и студента. Тем самым было решено автоматизировать данный процесс заменой преподавателя виртуальным собеседником.

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

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

Ранее данную проблему пытались решить студент ПГНИУ Цаплин С. В. в своей курсовой работе [3] и студент НИУ ВШЭ Репин Д. Ю. в своей выпускной квалификационной работе [4]. Однако разработанные ими системы имеют ряд недостатков. Главная проблема заключалась в том, что в обоих случаях не удалось достичь нужного «качества диалога»: понимания сообщений пользователя и формирования осмысленных ответов виртуального собеседника. Цаплиным и Репиным использовались различные подходы, однако обе работы не дали нужного результата. Это говорит о сложности поставленной проблемы.

Для достижения поставленной цели были сформированы следующие задачи:

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

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

3. Изучить предшествующие работы(Цаплина и Репина): проанализировать причины, почему виртуальный собеседник не достиг желаемого качества диалога.

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

5. Реализовать виртуального собеседника.

6. Провести тестирование разработанной системы.

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

Чтобы выполнить вышеописанные задачи, предполагается использовать следующие методы: методы векторизации текстовых строк, методы сравнения векторов, методы объектно-ориентированного проектирования и программирования.

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

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

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

Глава 1. Анализ предметной областивиртуального собеседника

В первой главеописанаинформация о предметной области виртуального собеседника иэтапе «Развертывание» методологии MSF: описываются особенности проведения деловой игры «Развертывание», проводимой в НИУ ВШЭ_Пермь,описывается постановка задачи, формулируются требования к разрабатываемой системе. Далее осуществляется обзор наиболее значимых решений (аналогов) в данной предметной области или смежных областях, их анализ с точки зрения предъявляемых к разрабатываемой системе требований, выявление преимуществ и недостатков используемых при разработке аналогов подходов.

1.1. Методология Microsoft Solution Framework

MSF (MicrosoftSolutionFramework) [1] - методология разработки программного обеспечения, предложенная корпорацией Microsoft. MicrosoftSolutionFramework опирается на практический опыт Microsoft и описывает управление людьми и рабочими процессами в процессе разработки решения. MSF представляет собой набор принципов для успешного предоставления решений в области информационных технологий cбольшей скоростью и с меньшим количеством людей и меньшим риском, обеспечивая при этом результаты более высокого качества. MSF называется структурой по определенным причинам. Философия MSF утверждает, что не существует единой структуры или процесса, который применим ко всем требованиям и средам, и признает, что, тем не менее, потребность в руководстве все еще существует.

По MSF процесс разработки программного обеспечения имеет спиральную форму. Итерации цикла представлена на рис.1.1.Каждая итерация состоит из следующих этапов:

1. Envision (Выработка концепции). На первом этапе создается основной состав проектной группы и готовится описание проекта, оговариваются рамки проекта.

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

3. Developing (Разработка). На этапе разработки пишется код приложения, подготавливается документация.

4. Stabilizing (Стабилизация). На этом этапе проводится тестирование приложения, устраняются обнаруженные ошибки. Внимание фокусируется на предполагаемых сценариях использования приложения.

5. Deploying (Развертывание). На этапе развертывания происходит внедрение готового приложения в рабочий процесс, происходит налаживание сопровождения приложения, закрывается или продлевается контракт с заказчиком.

6.

Рисунок 1.1.Итерации цикла MSF

Именно с последней фазой связана предметная область разрабатываемого виртуального собеседника.

1.2. Деловая игра «Развертывание»

Для изучения технологии MSF в НИУ ВШЭ-Пермь используется несколько деловых игр: «Envision&Planning», «Стабилизация» и «Развертывание». В ходе каждой из игр студенты попадают в сложные ситуации, которые как можно более точно имитируют прецеденты на реальном производстве. Разрабатываемый виртуальный собеседник затрагивает только стадию «Развертывание», поэтому именно эта игра будет описана в этом параграфе.

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

В фиктивной фирме «ОбалдеИТ», в который студенты «развертывают» свой программный продукт, есть четыре подразделения: они находятся в большом городе, в маленьком городе, в деревне и за границей (конкретно, в Индии, в Айодхье). Более подробная информация о данных четырех подразделениях находится в прил. А. Ключевые особенности каждого подразделения:

1. В большом городе имеется большое количество компьютеров, проведен Интернет через оптоволокно, имеется быстрая локальная сеть, современные версии операционной системы Windows. Администратор интеллигентный и вежливый.

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

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

4. В Айодхье большое количество компьютеров, быстрая скорость для выхода в Интернет, говорят исключительно на английском языке, посредством передачи сообщений через e-mail.

1.3. Постановка задачина разработку виртуального собеседника

В рамках данной работы требуется создать виртуального собеседника. Задача собеседника - имитировать фиктивную фирму (заменяя преподавателя), отвечая на вопросы студентов во время деловой игры «Развертывание», проводимой в учебном процессе НИУ ВШЭ-Пермь. Собеседник должен понимать запрос пользователя на естественном языке, а затем выводить осмысленный ответ. Ответы должны браться из базы знаний, в которой содержаться данные («вопрос-ответ») для всех четырех подразделений. База данных может пополняться преподавателем. Более того, требуется чтобы собеседник отвечал правильно не реже установленного в поставленных требованиях.

1.4. Формализация требований к виртуальному собеседнику

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

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

1.4.1. Функциональные требования

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

Рисунок 1.2.Диаграмма прецедентов

Ниже, в табл. 1.1 - 1.3 подробно описаны все процессы диаграммы прецедентов. Для каждого прецедента описаны их акторы (пользователи), краткое описание прецедента, его триггер, основной поток (подробное описание прецедента) и альтернативные потоки, если таковые имеются.

Таблица 1.1. Прецедент «Задать вопрос»

Название

Задать вопрос

Акторы

Студент

Краткое описание

Студент задает вопрос виртуальному собеседнику

Триггер

Нажатие на кнопку «Задать вопрос»

Основной поток

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

Альтернативные потоки

1. Если поле вопроса пустое, то выводится соответствующая ошибка.

2. Если такой должности в подразделении нет, то выводится соответствующее сообщение.

3. Если такого метода коммуникации в подразделении нет, то выводится соответствующеесообщение.

4. Если из всей базы знанийне нашлось подходящего ответа, то выводится «Нет ответа»

Таблица 1.2. Прецедент «Просмотреть историю сообщений»

Название

Просмотреть историю сообщений

Акторы

Студент

Краткое описание

Просмотр истории сообщений студента и виртуального собеседника

Триггер

-

Основной поток

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

Альтернативные потоки

-

Таблица 1.3. Прецедент «Сохранить историю сообщений»

Название

Сохранить историю сообщений

Акторы

Студент

Краткое описание

Сохранение истории сообщений студента и виртуального собеседника в текстовый файл

Триггер

Нажатие на кнопку «Сохранить историю сообщений»

Основной поток

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

Альтернативные потоки

-

1.4.2. Нефункциональные требования

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

1. Виртуальный собеседник должен отвечать правильно в 80% случаев (точность должна быть не ниже 80%).

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

3. Разработка должна быть ориентирована на пользователей с установленной операционной системой Windows.

4. Привычно-ассоциируемый пользовательский интерфейс.

5. Протоколирование диалога виртуального собеседника и пользователя.

6. Поддержка синонимов - нахождение правильного ответа в базе знанийпри различных интерпретациях вопроса («компьютер» и «вычислительная техника» должны интерпретироваться одинаково).

1.4.3. Требования ко входным и выходным данным

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

1. Требования ко входным данным:

1.1. Сообщение (вопрос) пользователя, написанное в произвольной форме. Сообщение должно быть написано на русском или английском языке.

1.2. Подразделение, в которое отправляется сообщение (например, подразделение в Перми, Кунгуре, Верхней Колве или Айодхье). Выбирается строго из списка.

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

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

2. Ответ на заданный вопрос в одной из следующих форм (выходные данные):

2.1. Сообщение об ошибке, если полученное сообщение не на английском или русском языке.

2.2. Сообщение об ошибке, если метод связи не поддерживается подразделением.

2.3. Перенаправление на другое должностное лицо (например, «Вам следует обратиться к системному администратору».

2.4. Ответ на вопрос пользователя.

2.5. «Нет ответа», если ни один ответ из базы знаний не найден для заданного вопроса.

1.5. Анализпредшествующих попыток реализации виртуального собеседника

Как уже было сказано ранее,данная работа выполнялась дважды - Цаплиным и Репиным,однако обе системы не принесли удовлетворительного качества диалога студента и виртуального собеседника, поэтому было решено разработать нового чат-бота.

1.5.1. Виртуальный собеседник Цаплина С.В.

Цаплина С. В.проанализировал уже готовые платформы для разработки на них виртуальных собеседников. Причины отказа были задокументированы в его работе [3].

В данном подходе был разработан собственный алгоритм работы виртуального собеседника. Он разделен на несколько этапов:

1. В начале работы программы в системе создается база знаний («вопрос_ответ»).

2. Далее в системе создается словарь русских и английских слов в начальной форме.

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

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

Работа была выполнена качественно и в данный момент используется в учебном процессе НИУ ВШЭ_Пермь, однако бот не достиг желаемого процента (80 процентов) правильных ответов. Графический интерфейс системы Цаплина С. В. находится на рис. 1.3.

Рисунок 1.3.Демонстрация интерфейса чатбота С.В. Цаплина

1.5.2. Виртуальный собеседник Репина Д. Ю.

Ключевой особенностью работы Репина Д. Ю. [4] является использование LSPL _ языка лексико-синтаксических шаблонов. Этот язык предназначен для описания конструкций русского языка с целью их представления в системах извлечения информации из текстов, однако, помимо этого, он может сравнивать текст с шаблоном, который представляет набор символов на любом языке.

Ключевым в языке LSPL является понятие лексико-синтаксического шаблона, рассматриваемого как структурный образец языковой конструкции. Шаблон задает ее лексический состав и поверхностно-синтаксические свойства и тем самым может быть использован для распознавания ее в тексте и последующего извлечения. Более подробно об этом шаблоне можно прочитать на его веб_сайте [6].

В системе Репина Д. Ю. также присутствует база данных, ее схема приведена на рис. 1.4.В базе данных хранятсялексико-синтаксические шаблоны, синонимы (которые берутся из Яндекс словаря), история общения с виртуальным собеседником.Алгоритм работы программы описан ниже:

1. Пользователь отправляет вопрос собеседнику, указывая подразделение, должность и вопрос.

2. Происходит запрос к базе данных- сбор лексико-синтаксическихшаблонов всех сотрудников в указанном подразделении.

3. После этого происходит запрос к утилите LSPL, где ожидаемый результат _ шаблон сотрудника.

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

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

6. После этого происходит запрос к утилите LSPL, где ожидаемый результата _ шаблон компетенции сотрудника.

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

8. Получениеответа из базы данных, используя найденные лексико_синтаксические шаблоны.

9. Пользователю выводится сообщение с ответом.

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

Рисунок 1.4. Схема базы данных Репина Д. Ю.

1.6. Анализ возможных подходов к разработке виртуального собеседника

Репин Д. Ю. в своей работе [4] уже рассмотрел большинство подходов к разработке виртуального собеседника:

1. Поиск по полному совпадению вопроса - запрос пользователя дословно сопоставляется с одним из вопросов, имеющихся в базе. Такой вариант не подходит из-за наличия требования об обработке вопросов в свободной форме.

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

3. Искусственные нейронные сети (ИНС) - сеть обучают на базе имеющихся вопросов, после чего она работает с запросами пользователя и выдается результат на основе ранее пройденного обучения. Исходя из следствия теоремы Арнольда-Колмогорова-Хехт-Нильсена[5], велика вероятность переобучения ИНС.

Цаплин С. В. в своей работе рассматривал только один вариант реализации виртуального собеседника.

Ни Репин Д. Ю., ни Цаплин С. В. не затронули в своих работах еще один метод к обработке натурального текста - преобразование вопроса пользователя и вопросов из базы знаний в вектор и их дальнейшее поочередное сравнивание. Векторизировать текст можно несколькими способами:

1. Векторизация с помощью TF-IDF - метод создания векторов из текста, используя метрикуTF_IDF (termfrequency - inversedocumentfrequency) [8]. Принцип метрики заключается в подсчете количества вхождений какого-либо слова в каком-либо документе (в нашем случае, вопросе из базы знаний) и подсчете того же самого слова во всех остальных документах (других вопросах из базы знаний).Если в первом подсчете количество слов большое, а во втором маленькое, то слово имеет большую значимость для того самого вопроса. Данный метод хорошо работает на неспециализированной предметной области. Для данной работы данный способ не подходит, так как у нас единая предметная область (развертывание системы) и TF-IDFбудет работать не во всю силу.

2. «Мешок слов»[9] - представление текста как мешок (множество) его слов, игнорируя грамматику и даже порядок слов, но сохраняя множественность. Из всех вопросов собирается коллекция уникальных слов, а затем для каждого конкретного вопроса считается количество вхождений какого-либо слова. Более подробно будет рассказано в параграфе 2.1. Данный способ быстро работает, и работает на специализированных предметных областях. Был выбран именно этот способ векторизации текста, из-за хорошей совместимости с предметной областью работы.

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

1. Косинусное расстояние [10] - является мощным и быстрым вариантом вычисления расстояния между двумя векторами, путем измерения косинуса между ними.

2. Евклидово расстояние - расстояние между двумя точками евклидова пространства, вычисляемое по теореме Пифагора.

3. Взвешенное евклидово расстояние - то же самое, что и расстояние в пункте 2, только с использованием «весов» (если это возможно).

4. Расстояние городских кварталов (манхэттенское расстояние) - вычисляется путем нахождения суммы модулей разностей координат двух векторов.

5. Расстояние Чебышёва - вычисляется путем нахождения максимума модуля разности компонент двух векторов.

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

Помимо нахождения различий между двумя текстами (вопросом пользователя и элементов из базы знаний), виртуальный собеседник также должен распознавать орфографические ошибки. Это производится путем вычисления расстояния Левенштейна[11] - нахождения минимального количества операций вставки, удаления и замены одного символа на другой, необходимых для превращения одной строки в другую. Чаще всего используется для нахождения орфографических ошибок. Более подробно о выбранных методах будет описано в следующей главе.

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

Глава 2. Проектирование виртуального собеседника

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

2.1. Описание выбранного подхода к разработке виртуального собеседника

Процесс нахождения ответа на заданный пользователем вопрос состоит из нескольких этапов:

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

2. Если все проверки пройдены, то введенный пользователем вопрос приводится к нижнему регистру, разделяется на токены и лемматизируется. Из полученного результата удаляются все стоп-слова. Стоит заметить, что для русского и английского языка стоп-слова различаются.

2.1. Токенизация - разбиение текста на отдельные «слова» (токены), но некоторые наборы слов должны рассматриваться как одно: «Пермский край», «к.т.н.».

2.2. Лемматизация - процесс приведения слова к нормальной форме на основе словаря.

2.3. Удаление стоп-слов - слова, которые не несут в себе информацию. Иногда имеет смысл удалить редкие слова.

3. Полученный набор токенов преобразуются в числовой вектор для выполнения анализа. Для преобразования используется «Мешок слов» (см. табл. 2.1.)

4. Полученный результат сравнивается с каждым векторомвопроса из базы знаний, используя косинусное расстояние векторов и расстояние Левенштейна. Эти два расстояния перемножаются с весами и складываются (косинусное расстояние * 0.75 + расстояние Левенштейна * 0.25). Результат принимает значение от 0 до 1. Для выбора правильного ответа берется самое низкое расстояние (самое близкое к нулю). Подробнее о данных методах будет написано в параграфах.

5. Выводится полученный ответна экран.

Визуализация вышеописанного алгоритма нахождения ответа на вопрос (блок_схема) находится в прил.Б.

Таблица 2.1. Пример использования «Мешка слов»

Вопрос

Набор словиз вопросов

Сколько

Компьютер

Подразделение

Отдел

Сотрудник

Сколько компьютеров в подразделении?

1

1

1

0

0

Сколько компьютеров в отделе?

1

1

0

1

0

Сколько у вас компьютеров?

1

1

0

0

0

У вас есть компьютеры в отделе?

0

1

0

1

0

Сколько компьютеров

1

1

0

0

0

Сотрудники в отдел?

0

0

0

1

1

2.1.1. Косинусное расстояние

Косинусное расстояние [9] -- это метрика сходства между двумя векторами, которая вычисляется путем измерения косинуса между ними. То есть, если даны два вектора, то косинусное расстояние может быть представлено, используя скалярное произведение и норму, как показано на формуле (1).

(1)

Косинусное расстояние двух векторов принимает значение в диапазоне от 0 до 1, где чем ближе к нулю - тем меньше расстояние между векторами.

В качестве примера сравним одинаковые по смыслу предложения «Сколько компьютеров в подразделении?» и «Сколько компьютеров в отделе?». Используя данные из табл. 2.1, нужно высчитать расстояние между векторами [1, 1, 1, 0, 0] и [1, 1, 0, 1, 0]. Используя формулу приведенную выше получаем значения расстояния, равное 0,33.Данный результат говорит виртуальному собеседнику о том, насколько два предложения близки по смыслу, где 0 - одинаковые вопросы, а 1 - различные.

В качестве второго примера сравнимразличные по смыслу предложения «Сколько компьютеров в подразделении?» и «Сотрудники в отдел?». Используя данные из табл. 2.1, нужно высчитать расстояние между векторами [1, 1, 1, 0, 0] и [0, 0, 0, 1, 1]. Используя формулу выше получаем значения расстояние, равное 1,0.

2.1.2. Расстояние Левенштейна

Расстояние Левенштейна [11] -- это строковая метрика для измерения разности между двумя последовательностями. Неформально расстояние Левенштейна между двумя словами -- это минимальное количество односимвольных правок (т. е. вставок, удалений или подстановок), необходимых для замены одного слова на другое. Он назван в честь Владимира Левенштейна, который открыл это уравнение в 1965 году.

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

Пример работы расстояние Левенштейна приведен на табл. 2.2. На них рассматривается отличие слов «компуктер» - «компьютер».

Таблица 2.2. Пример использования расстояния Левенштейна

К

О

М

П

Ь

Ю

Т

Е

Р

К

О

М

П

У

К

Т

Е

Р

Расстояние между этими двумя словами равно семь букв из девяти. Преобразовывая это значение в коэффициент получается 0,78. Точно также можно сравнивать целые предложения. В этом случае следует поделить предложения на токены и произвести вычисление расстояние Левенштейна для каждого токена, а затем получить среднее арифметическое.

Формула (2) расстояния Левенштейна между двумя словами/предложениями, где «a» и «b» являются входными строками показана ниже:

(2)

2.2. Наполнение базы знаний виртуального собеседника

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

Таблица 2.3. Пример некоторых элементов базы знаний

Вопрос

Ответ

Сисадмин

HR

Секретарь

Директор

Как и где получить доступ (пропуска) к вам?

У меня их получить можно

+

К каким объектам компании будет предоставлен доступ?

Доступ есть только к компьютерам

+

+

Кто руководит вашей компанией?

Директор подразделения

+

+

+

+

Количество и расположение филиалов компании.

Мы в Перми, Кунгур, Верхняя Колва и в Индии

+

+

Будете нам помогать устанавливать систему?

Нет, не отвлекайте наших от работы

+

+

+

+

Где находится ваша компания?

Мы находимся в Перми

+

+

+

+

Кто ответственный за компьютеры?

Системный администратор

+

+

+

+

На каком языке необходимо обучать сотрудников?

Обучение должно происходить на русском

+

+

К кому обращаться с возникшими проблемами?

Не к нам, мы своими делами занимаемся

+

+

К кому обращаться с возникшими проблемами?

Ко мне можете попытаться

+

На каком языке происходит общение с Индией

на английском

+

2.3. Проектирование пользовательского интерфейса

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

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

Рисунок 2.1. Главная область приложения

Глава 3. Разработка виртуального собеседника

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

3.1. Описание инструментальных средств разработки

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

1. Создавать графический интерфейс.

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

3. Токенизировать русские и английские строки.

4. Лемматизировать русские и английские строки.

5. Удалять стоп-слова из русских и английских строк.

6. Вычислять косинусное расстояние.

7. Вычислять расстояние Левенштейна.

В качестве рассматриваемых языков программирования для разработки виртуального собеседника рассматривались такие объектно-ориентированные языки, как C#, Python иJava. Сравнение данных языков представлено в табл. 3.1.Основываясь на данном сравнении, былорешено использовать язык программирования Python с использованием всех перечисленных в таблице библиотек.

Таблица 3.1. Сравнение языков программирования

Функция

Языки программирования

C#

Python

Java

Создавать графический интерфейс

WPF / WinForms

Огромное количество сторонних библиотек

Awt / Swing

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

NTextCat

langdetect

language-detector

Токенизировать русские и английские строки

LINQ

NLTK, MyStem

StringTokenizer

Лемматизировать русские и английские строки

Вручную, так как нельзя лемматизировать русские предложения

NLTK, MyStem

Вручную, так как нельзя лемматизировать русские предложения

Удалять стоп-слова из русских и английских строк

Вручную

NLTK

Вручную

Вычислять косинусное расстояние

Accord.Net

ScyPi

java.stringsimilarity.Cosine

Вычислять расстояние Левенштейна

LevenshteinMinimumEditDistance

FuzzyWuzzy

Apache Commons, FuzzyWuzzy

3.1.1. Использованные сторонние библиотеки

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

1. SciPy - сторонняя библиотека с открытым исходным кодом для математики, науки и техники. В работе используется для нахождения косинусного расстояния [20].

2. Pickle - встроенная в Pythonбиблиотека для работы с файлами.Позволяет производить бинарную сериализацию и десериализацию. Сохранение происходит в формат «*.pkl» [22].

3. NLTK - сторонняя библиотека, которая открывает возможность обработки естественного языка. Библиотека позволяетработать с корпусами, категорировать текста, анализировать языковую структуру и пр. В работе используется для получения английских и русских стоп-слов, обработки вопросов на английском языке [12].

4. FuzzyWuzzy - сторонняя библиотека, которая используется для сопоставления/сравнения строк. В работе используется для нахождения расстояния Левенштейна [21].

5. PyMystem3 -сторонняя библиотека, которая является Python-оболочкой [19] для Mystemот Яндекса [14], которая является консольной программой и производит морфологический анализ текста на русском языке.

3.1.2. Средство разработки графического интерфейса

Для языка программирования Python доступно огромное количество средств разработки графического интерфейса, от TkInter (традиционно в комплекте с Python, использующим Tk) до ряда других кроссплатформенных решений, а также привязок к платформо-зависимым технологиям [18]. На табл. 3.2 представлено сравнение одних из самых популярных решений в области создания графического интерфейса на языке Python.

Таблица 3.2. Сравнение инструментов создания графического интерфейса

Название инструмента

Особенности

pyFLTK

· оболочкадля FLTK - Fast Light Toolkit

· кроссплатформенный

· маленький и быстрый

· доступ к OpenGL

Pygame

· полный контроль над интерфейсом в ущерб простоты использования

· только одно окно

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

PyGTK

· мощный - стремится быть оберткой GTK - GIMP Toolkit

· хорошая документация для GTK, C и Python

· поскольку это обертка - иногда особенности C доставляют неудобства

Pyglet

· новый

· OpenGL-y (3D)

PyGUI

· кроссплатформенный, используя возможности GUI базовой системы

· разработан для хорошей работы с языковыми функциями и типами данных Python

· медленный

PyQt

· обертка инструментов Qt

· имеет свой дизайнер (аналогичный WindowsForms)

· маленький и быстрый

· содержит не только функции графического интерфейса

· хорошая документация

· прост в использовании

PySimpleGUI

· обертка tkinter, Qt, WxPython или Remi для браузера

· можно запустить «в облаке» с помощью repl.it

· пользовательские макеты GUI

· хорошая документация

PythonCard

· обертка WX

· легкий в использовании

· медленный

Tkinter

· стандартный набор инструментов GUI, включенный в Python

· простой и легкий

· наиболее популярный

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

Рисунок 3.1. Интерфейс дизайнера PyQt

3.2. Статическая структура системы

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

1. Классы:

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

1.2. Communication - класс, отвечающий за создание экземпляров методов коммуникаций (Электронная почта, Личная встреча, Телефонный звонок). Имеет только одно поле - название.

1.3. Post- класс, отвечающий за создание экземпляров различных должностей (Директор подразделения, Системный администратор, Отдел кадров, Секретарь директора). Имеет только одно поле - название.

1.4. Sample - класс, отвечающий за создание экземпляров элементов выборки. Имеет в себе такие поля, как вопрос, лемматизированный вопрос, должности, которые ответственны за ответ на вопрос и ответ.

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

2. Представление в программе одно. Ui_MainWindow - главное окно программы. При инициализации этого класса создается весь интерфейс главного окна, а затем показывается пользователю.

3. Презентеры и другие классы:

3.1. Chatbot - посредник между представлением и моделью. Его цель - получить вопрос и возвратить ответ из базы знаний.

3.2. Synonyms - предоставляет собеседнику синонимы для английских и русских слов.

3.3. Stopwords - предоставляет собеседнику стоп-слова для английских и русских строк.

Рисунок 3.2. Диаграмма классов

3.3. Разработка виртуального собеседника

После того, как система была спроектирована, была начата разработка виртуального собеседника. Было разработано приложение на языке программированияPython с графическим интерфейсом, показанным в параграфе 2.2.При работе с системой, пользователю предлагается выбрать подразделение компании (город)и метод коммуникации с подразделением из списка доступных.Затем ввести должность, к кому обращается пользовательи задать вопрос. После нажатия на кнопку, все введенные данные отправляются системе, происходит поиск ответа на заданный вопрос, и затемпользователю выводится результат, полученный системой. Алгоритм, по которому работает виртуальный собеседник, в точности повторяет описанный в параграфе 2.1. Его реализация приведена на странице ниже.

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

3.4. Поддержка синонимов

Поддержка синонимов - это нахождение правильного элемента в выборке данных при различных интерпретациях вопроса. Для этого в систему был добавлен словарь, где ключ - это слово, а значение - коллекция его синонимов. Если в выборке или вопросе пользователя замечается слово, которое находится в значениях словаря, то оно меняется на его оригинальное слово (ключ словаря, в значении которого было найдено слово). Пример такого словаря приведен ниже. Синонимы для каждого слова брались изсемантической модели RusVectores [23], который основывается на данных из НКРЯ [24].

Глава 4. Тестирование виртуального собеседника

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

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

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

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

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

  • Основные принципы ведения электронного бизнеса и коммерции. Инструменты экономической безопасности виртуального бизнеса. Современные тенденции и перспективы развития облачных технологий. Виды мошеннических действий. Сущность виртуального маркетинга.

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

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

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

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

    курсовая работа [304,5 K], добавлен 02.04.2013

  • Понятие "виртуального офиса". Защищённый канал доступа сотрудников к системам фирмы, хостинг систем, документооборот, портал. Пользователи виртуального офиса. Услуги и преимущества виртуального офиса, принцип работы. Недостатки и ненадежные провайдеры.

    контрольная работа [34,9 K], добавлен 21.10.2010

  • Рассмотрение основных методов разработки сайта факультета. Описание бизнес-процессов производственной деятельности. Изучение путей модернизации web-приложения в соответствии с техническим заданием. Переработка интерфейса и изменение системы меню.

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

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

    курсовая работа [872,8 K], добавлен 22.05.2015

  • Описание предметной области и процессов обработки информации, требующих автоматизации. Обзор существующих программных продуктов. Описание структуры системы бронирования гостевого дома. Назначение и функции программы. Описание методов защиты данных в ИС.

    дипломная работа [154,6 K], добавлен 08.02.2013

  • Создание виртуального бизнес-центра в виде портала "Proffis". Реализация потребности вести единые списки объектов бизнеса у множества компаний. Проектирование архитектуры подсистемы WebList. Типы пользователей системы: администратор, лидеры и операторы.

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

  • Анализ виртуального пространства и реальности. Особенности информационной культуры субъектов виртуального пространства. Телевидение, кабинные симуляторы, системы "расширенной" реальности и телеприсутствия. Настольные ВР-системы, социальные сети.

    презентация [6,0 M], добавлен 15.11.2017

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

    курсовая работа [159,1 K], добавлен 23.06.2009

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

    курсовая работа [1,8 M], добавлен 12.01.2014

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

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

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

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

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

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

  • Cоздание и описание логической модели автоматизированной системы обработки информации. Проектирование структуры системы в виде диаграмм UML. Анализ программных средств разработки программного обеспечения и интерфейса. Осуществление тестирования программы.

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

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

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

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

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

  • Взаимосвязь гипертекста и Web-дизайна, содержание и оформление виртуального дискурса. Гипертекст как основа виртуального дискурса. Начало гипертекста, ключевые слова, заголовки, язык текста и его понимание. Членение гипертекста, количество и объем частей.

    магистерская работа [117,2 K], добавлен 10.04.2013

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