Uploaded by Дмитрий Куренков

Куренков Д.А. ВКР (002)

advertisement
МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ ЯДЕРНЫЙ УНИВЕРСИТЕТ «МИФИ»
ИНСТИТУТ ИНТЕЛЛЕКТУАЛЬНЫХ КИБЕРНЕТИЧЕСКИХ СИСТЕМ
КАФЕДРА «КОМПЬЮТЕРНЫЕ СИСТЕМЫ И ТЕХНОЛОГИИ»
На правах рукописи
УДК __004.853_____
Куренков Дмитрий Анатольевич
Разработка и реализация сервиса для решения задач маршрутизации
обращений пользователей в службу поддержки
Выпускная квалификационная работа магистра
Направление подготовки 09.04.01. – Информатика и вычислительная техника
Выпускная квалификационная
работа защищена
«___»_______________2021г.
Оценка ____________________
Секретарь ГЭК _____________
г. Москва
2021
МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ ЯДЕРНЫЙ УНИВЕРСИТЕТ «МИФИ»
ИНСТИТУТ ИНТЕЛЛЕКТУАЛЬНЫХ КИБЕРНЕТИЧЕСКИХ СИСТЕМ
КАФЕДРА «КОМПЬЮТЕРНЫЕ СИСТЕМЫ И ТЕХНОЛОГИИ»
Направление подготовки 09.04.01 – Информатика и вычислительная техника
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
к выпускной квалификационной работе магистра
Тема:
Разработка и реализация сервиса для решения задач маршрутизации обращений
пользователей в службу поддержки
Магистр:
Куренков Дмитрий Анатольевич
Группа
М19-502
фамилия, имя, отчество
Руководитель
ВКР:
Сергеев Максим Станиславович, НИЯУ МИФИ, доцент, к.т.н., 8916-681-18-77, mifi-diver@mail.ru
фамилия, имя, отчество, организация, должность, звание, степень
Консультант
ВКР:
Иванов Е.О.,
специалист
АО
«Промышленные
Инновации»,
главный
фамилия, имя, отчество, организация, должность, звание, степень
Рецензент:
Золотухина Елена Болеславовна, к.т.н., доцент каф.71 НИЯУ
МИФИ.
фамилия, имя, отчество, организация, должность, звание, степень
Магистр
подпись
ФИО
подпись
ФИО
подпись
ФИО
подпись
ФИО
Руководитель
Консультант
Рецензент
Руководитель
программы
магистратуры
Ю.Г. Древс, д.т.н., профессор
подпись
ФИО
г. Москва
2021
2
М И Н И С ТЕ Р С ТВ О Н А У К И И В Ы С Ш Е Г О О Б Р АЗ О В АН И Я Р О С С И Й С К О Й Ф Е Д Е Р А Ц И И
федеральное государственное автономное образовательное учреждение высшего образования
«Национальный исследовательский ядерный университет «МИФИ»
ИНСТИТУТ ИНТЕЛЛЕКТУАЛЬНЫХ КИБЕРНЕТИЧЕСКИХ СИСТЕМ
КАФЕДРА «КОМПЬЮТЕРНЫЕ СИСТЕМЫ И ТЕХНОЛОГИИ»
НАПРАВЛЕНИЕ ПОДГОТОВКИ 09.04.01 Информатика и вычислительная техника
ГРУППА М19-502
УТВЕРЖДАЮ
Руководитель программы
_______________ Ю.Г.Древс
ЗАДАНИЕ
на подготовку выпускной квалификационной работы магистра
Тема:
Разработка и реализация сервиса для решения задач маршрутизации
обращений пользователей в службу поддержки
Магистрант:
Куренков Дмитрий Анатольевич
ФИО, контакты
Руководитель ВКР:
Сергеев Максим Станиславович, НИЯУ МИФИ, доцент,
к.т.н., 8-916-681-18-77, mifi-diver@mail.ru
ФИО, звание, степень, организация, должность, контакты
Консультант ВКР:
Иванов Е.О., АО «Промышленные Инновации», главный
специалист
ФИО, звание, степень, организация, должность, контакты
Дата выдачи задания:
27.02.2021
Дата защиты ВКР:
в соответствии с графиком защиты ВКР
1. Цели ВКР:
Предоставить АО «Промышленные инновации» сервис решения задач маршрутизации
обращений пользователей в службу поддержки с помощью методов машинного обучения.
2. Исходные данные (ограничения):
2.1 Средства вычислительной техники/специальное оборудование:
Персональный компьютер, Сервер (ОС Windows Server 2012 r2)
2.2 СПО и ППО: язык программирования Python, HP Service Manager
2.3 Данные HP Service Manager об обращениях пользователей
3
3. Требования к содержанию ВКР:
а) обзор источников, связанных с темой ВКР
Учебные пособия, научные исследования по теме ВКР, статистическая и аналитическая
информация из HP Service Manager, внутренняя документация предприятия.
б) теоретическая часть ВКР
Детальное изучение объекта исследования, сравнительный анализ существующих сервисов,
произвести анализ собранных данных, обоснование выбора инструментальных средств
разработки сервиса, обзор возможных интеграций сервиса с HP Service Manager.
в) практическая часть ВКР
Описание бизнес-процесса, проектирование схемы взаимодействия сервиса с HP Service
Manager, реализация сервиса.
г) прочие разделы
4. Отчетные материалы:
4.1. Пояснительная записка к ВКР (70-90 страниц без учета приложений, оформление по ГОСТ
7.32-2017, оригинал задания подшивается после титульного листа)
4.2. Иллюстрации к докладу:
 титул - 1 слайд;
 исходные данные (ограничения) - 1-2 слайда;
 цели и задачи ВКР – 1 слайд
 обзор источников, связанных с темой ВКР - 1-2 слайда;
 теоретические сведения - 2-4 слайда;
 практические результаты - 2-4 слайда;
 заключение (научно-практические выводы) - 1-2 слайда
5. Рекомендуемые источники:
1. Уэс Маккинли Python и анализ данных / Пер. с англ. Слинкин А.А. – М.: ДМК Пресс,
2015, -482 с: ил.
2. Рашка С.Python и машинное обучение / пер. с англ. А.В. Логунова. – М.: ДМК Пресс,
2017. – 418 с.: ил.
3. «IT Service Management
Системы управления ИТ-службой» [Электронный ресурс] Дата обновления: 24.04.2019.
URL: https://www.tadviser.ru/index.php/ITSM_-_Системы_управления_IT-службой
Куренков Д.А.
Магистрант
подпись
ФИО
Красникова С.А.
Руководитель ВКР
подпись
ФИО
Иванов Е.О.
Консультант ВКР
подпись
ФИО
4
РЕФЕРАТ
к выпускной квалификационной работе магистра (магистерской
диссертации) на тему: Разработка и реализация сервиса для решения
задач маршрутизации обращений пользователей в службу поддержки
магистр – Куренков Дмитрий Анатольевич
руководитель – Сергеев Максим Станиславович, доцент, к.т.н, НИЯУ
МИФИ
Пояснительная записка к выпускной квалификационной работе магистра
(магистерской диссертации) содержит 62 стр., 4 части, 44 рис., 10 табл.,8
источников, 1 прил.
HP Service Manager, HelpDesk, СЕРВИС, АНАЛИЗ ИСХОДНЫХ ДАННЫХ,
МАШИННОЕ
ОБУЧЕНИЕ,
НАИВНЫЙ
БАЙЕСОВСКИЙ
КЛАССИФИКАТОР,
ЛОГИСТИЧЕСКАЯ РЕГРЕССИЯ, КЛАССИФИКАЦИЯ И РЕГРЕССИЯ С ПОМОЩЬЮ
ДЕРЕВЬЕВ ПРИНЯТИЯ РЕШЕНИЙ
Объектом исследования являются программный продукт HP Service
Manager, машинное обучение, базовые технологии для обработки текста.
Цель работы – реализовать сервис решения задач маршрутизации
обращений пользователей в службу поддержки с помощью методов
машинного обучения.
Теоретическая
и
практическая
значимость
работы
состоит
в
проектировании, реализации сервиса с применением методов, применяемых
для автоматической классификации текстов.
В процессе работы проводились исследования различных методов
обработки текста и машинного обучения.
В результате получен сервис для решения задач маршрутизации
обращений пользователей в службу поддержки для предприятия отвечающий
всем современным требованиям.
Степень
внедрения
–
опытная
эксплуатация
сервиса
в
АО
«Промышленные инновации» для решения задач маршрутизации обращений
пользователей в службу поддержки.
5
СОДЕРЖАНИЕ
ПЕРЕЧЕНЬ УСЛОВНЫХ ОБОЗНАЧЕНИЙ, СИМВОЛОВ, ЕДИНИЦ .. 8
ПЕРЕЧЕНЬ ТЕРМИНОВ ............................................................................. 9
ВВЕДЕНИЕ.................................................................................................. 10
1 АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ ................................................ 12
1.1 Текущий
процесс
обработки
обращений
пользователей
на
предприятии ........................................................................................................... 12
1.2 Описание системы HP HelpDesk ...................................................... 15
1.3 HP Service Manager............................................................................. 17
Выводы по главе 1....................................................................................... 19
2 ТРЕБОВАНИЯ К СЕРВИСУ................................................................ 20
2.1 Общие сведения .................................................................................. 20
2.1.1 Название сервиса....................................................................... 20
2.1.2 Условное обозначение сервиса................................................ 20
2.2 Назначение и цели создания сервиса ............................................... 20
2.2.1 Назначение сервиса .................................................................. 20
2.2.2 Цели создания сервиса ............................................................. 20
2.3 Требования к сервису в целом .......................................................... 20
2.3.1 Требования к структуре и функционированию сервиса ....... 20
2.4 Требования к функциям, выполняемым сервисом ......................... 21
2.5 Требования к видам обеспечения ..................................................... 22
2.5.1 Требования к аппаратно-программному обеспечению......... 22
2.5.2 Требования к информационному обеспечению .................... 22
2.5.3 Требования к лингвистическому обеспечению ..................... 22
6
2.5.4 Требования к математическому обеспечению ....................... 23
Выводы по главе 2....................................................................................... 33
3 ПРОЕКТИРОВАНИЕ СЕРВИСА ........................................................ 34
3.1 Обработка данных MS SQL Server средствами Python .................. 34
3.2 Обучение модели ML ......................................................................... 35
3.3 База данных сервиса........................................................................... 36
Выводы по главе 3....................................................................................... 38
4 РЕАЛИЗАЦИЯ И ТЕСТИРОВАНИЕ СЕРВИСА .............................. 39
4.1 Реализация методов машинного обучения ...................................... 39
4.1.1 Использование морфологии..................................................... 39
4.1.2 Борьба
с
высокой
размерностью:
сокращение
числа
используемых атрибутов путем выделения наиболее значимых .............. 39
4.1.3 Основные
подходы
к
представлению
текстов
для
компьютерной обработки .............................................................................. 40
4.1.4 Анализ исходных данных ........................................................ 45
4.1.5 Тестирование наивного байесовского классификатора ........ 48
4.1.6 Тестирование классификатора «логистическая регрессия» . 50
4.1.7 Применение классификации и регрессии с помощью деревьев
принятия решений .......................................................................................... 53
4.2 Интеграция сервиса с HP Service Manager ...................................... 57
Выводы по главе 4....................................................................................... 58
ЗАКЛЮЧЕНИЕ ........................................................................................... 59
СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ ....................................... 60
ПРИЛОЖЕНИЕ А. СЕРТИФИКАТ О ПУБЛИКАЦИИ ......................... 61
7
ПЕРЕЧЕНЬ УСЛОВНЫХ ОБОЗНАЧЕНИЙ, СИМВОЛОВ,
ЕДИНИЦ
ИС – Информационная система
ИТ – Информационные технологии
ПО – Программное обеспечение
ГПП – Группа поддержки пользователей
БД – База данных
СУБД – Система управления базами данных
8
ПЕРЕЧЕНЬ ТЕРМИНОВ
Информационная система – совокупность содержащейся в базах данных
информации и обеспечивающих ее обработку информационных технологий и
технических средств.
Информационные технологии – процессы, методы поиска, сбора,
хранения, обработки, предоставления, распространения информации и
способы осуществления таких процессов и методов.
ИТ-инфраструктура – это совокупность сервисов и различных систем
компании, а также центры обработки данных, средства, различные
автоматизированные процессы предприятия.
ИТ-среда - это весь набор условий для технологической переработки и
эффективного использования знаний в виде информационного ресурса.
Программное обеспечение – совокупность программ системы обработки
информации и программных документов, необходимых для эксплуатации
этих программ.
9
ВВЕДЕНИЕ
Основная задача специалистов первой линии технической поддержки –
получение от пользователя информации об инциденте или проблеме, ее
классификация и эскалация. Выделение важных сведений из запроса для его
правильной классификации занимает время и в большинстве случаев сводится
к механической работе, которую может выполнить система машинного
обучения – искусственный интеллект.
Проблема
реагирование
поддержки
и
распределение
ИТ-инфраструктуры
запросов
–
пользователей.
механическое
А
главная
стратегическая цель управления ИТ-средой заключается в повышении
качества обслуживания пользователей.
Человеком информация воспринимается, как слуховым, так и
зрительным каналом, но понимание и решение принимаются после
тщательного анализа. Аналогично принимает решения и искусственный
интеллект, вследствие этого возникает вопрос о способности реализации
принятия решения с помощью машинного обучения.
Растет количество сложно решаемых научно-технических задач, в связи
с этим компьютерный анализ и обработка актуальная повестка 21 века.
Технологии не стоят на месте и стремятся вперёд, используются во всех
сферах нашей жизни, особенно в науке и технике, роботизации и
автоматизации производства, активное участие принимают в увеличение
производительности и повышения качества производимых материалов во всем
мире, оценивают и контролируют оснащение производства, развивают
медицинские и других не менее важных направлений.
Объектом исследования является процесс передачи данных между
сервисом и HP Help Desk.
10
Цель работы – реализовать сервис решения задач маршрутизации
обращений пользователей в службу поддержки с помощью методов
машинного обучения.
Задачи:
 Детальное изучение объекта исследования
 Сравнительный анализ существующих сервисов
 Анализ собранных данных
 Обоснование выбора инструментальных средств разработки сервиса
 Обзор возможных интеграций сервиса с HP Service Manager.
 Описание бизнес-процесса
 Проектирование схемы взаимодействия сервиса с HP Service Manager
 Реализация сервиса.
11
1 АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ
1.1
Текущий
процесс
обработки
обращений
пользователей
на
предприятии
На предприятии АО «Промышленные инновации» имеется собственная
Helpdesk
система
учета
обращений
пользователей,
основанная
на
программном продукте HP Service Manager. В данной системе ведется учет и
обработка инцидентов со всех отделов компании и Госкорпорации «Росатом».
Основным способом получения обращений является письмо на
специальную электронную почту. Рассмотрим схему обработки новой заявки,
которая состоит из следующих этапов:
 Получение обращения в системе HelpDesk;
 Далее заявка обрабатывается сотрудником ГПП и назначается
исполнитель, исходя из темы и содержания обращения.
Время на обработку новой заявки составляет от 2 до 7 минут, без учета
времени реагирования на новое обращение.
Таким образом, встает вопрос о создании сервиса по обработке новых
обращений, для того, чтобы исключить:
 Задержку в реагировании
на новые обращения, связанных с
множественными причинами, способствующих простую обращений,
работоспособности операторов;
 Нехватку сотрудников в отделе ГПП для маршрутизации срочных
обращений без нарушения SLA;
 Неверное распределение обращений неопытным сотрудником ГПП;
Должны выполняться следующие требования:
12
 сервис должен иметь возможность интегрироваться с существующей
системой Helpdesk на базе HP Service Manager;
 сервис должен работать на сервере, где по корпоративным правилам
запрещен или ограничен выход в сеть интернет.
На данный момент процесс построен следующим образом: пользователь
пишет обращение на электронную почту, сообщение обрабатывается
скриптом service manager и далее с помощью connect-it обращение адресуется
в Help Desk на администратора-ответственного сотрудника, который
анализирует текст сообщения и редактирует исполнителя обращения,
присваивая ему категорию.
Организовано с помощью следующей связи компонентов HP Service
Manager:
Рисунок 1.1 – взаимодействие MS Outlook и HelpDesk
Источником
является
E-mail(fetching),
который
обрабатывает
поступившие сообщения из outlook. MAPI-коннектор осуществляет передачу
следующих данных:
Таблица 1.1 Элементы
Имя поля
Тип
Body
Long text feld
Date
Date and time
13
Prionity
Text
Subject
Text
From
Text
MailInfo
Text
Attachment
Object
Cc
Text
To
Text
Mapping является преобразователем, который передает данные в БД
Service Manager, обрабатывая их:
Таблица 1.2 Передача и обработка элементов с помощью Mapping
Имя поля
Brief.description
Category
Come.type
Тип
Макрос Basic
null
«По электронной почте»
Contact.name
Макрос Basic
Date.reg
Макрос Basic
description
Макрос Basic
inbounEmail
[From]
Intial.impact
«1»
number
open
“number”
“Зарегистрирован”
14
“Запрос на обслуживание
Prob.summ.type
(RFS)”
attachment
Object
1.2 Описание системы HP HelpDesk
HP HelpDesk - система, предназначенная для автоматизации обработки
запросов клиентов.
Благодаря HelpDesk можно подсчитать количество обращений в службу
поддержки, частоту поломок техники и определить уровень предоставления
услуги. Используя полученную информацию, можно спланировать развитие
IT инфраструктуры, квалифицировать специалистов и выявить слабые места в
компании. Таким образом, HelpDesk позволяют заявкам пользователей
оперативно поступать в работу, а руководство получает возможность лучше
контролировать работу менеджеров и эффективность работу IT отдела.
Служба техподдержки организована следующим многоуровневым
образом: Пользователь сталкивается с проблемой и обращается в службу
поддержки с просьбой ее решить. На своем, пользовательском.
Все обращения приходят в одну систему и далее регистрируются, и
обрабатываются
специалистами
в
едином
формате.
Возможность
подключения разных отделов компаний к полученным заявкам, разделив
права доступа по конкретным сотрудникам.
HP Help Desk славится своим уровнем надежности и незначительными,
почти не возникающими периодами отказов по причине сбоев в IT механизме.
Говоря о IT отделах внедрение подобного продукта является «спасательным
жилетом», происходит понимание на всех уровнях компании.
15
Оценка предоставляемых услуг и качество работы во многом зависят от
службы поддержки, для клиентов главное быть важными, поэтому очень
важно иметь в своей организации систему HelpDesk. Данная служба хранит
данные
о
затрачиваемых
ресурсов
человеком,
проблем
услуг,
работоспособности, содержит всю необходимую информацию для принятия
решения, в совокупности это преимущество и главное качество в
предоставлении услуг пользователю.
Функции Help Desk:
 Обработка звонков;
 возможность регистрировать и отслеживать запросы;
 возможность получение информации об инциденте;
 выявление первичной проблемы сотрудником службой поддержки;
 заключение
о
выполненном
запросе
и
его
возможность
перераспределения другому специалисту;
 возможность управлять процессами жизненного цикла компании;
 категоризация инцидентов;
 возможность обучения пользователей системы;
 приостановка, остановка и закрытие обращений с уведомлением
клиента.
В настоящее время существует большое количество технологий,
которые могут помочь в работе HelpDesk. Главное, что технологии не только
должны иметь преимущества, но и должны быть удобны клиенту или бизнесу
для их запросов. В большинстве случаев для обработки потока запросов
назначают ответственных сотрудников. В случае, когда диспетчер не опытен,
на классификацию и маршрутизацию заявки будет потрачено время и запрос
будет решен позже.
16
1.3
HP Service Manager
HP Service Manager - программное обеспечение для автоматизированной
работы процессов службы поддержки организации и управления других IT
услуг.
HP Service Manager может автоматизировать процессы для того, чтобы:
 Создавать, обрабатывать и предоставлять решение инцидентов и
обращений;
 контролировать изменения;
 управлять релизами;
 управлять конфигурациями;
 классифицировать проблемы;
 отслеживать уровень услуг;
 просматривать,
редактировать,
принимать
решения
запросов
обслуживание;
 управлять базой знаний;
 управлять установленными регламентами работами.
Service Manager имеет классическую трехуровневую клиент-серверную
архитектуру:
 Демонстрация информации пользователю через уровень представления
при помощи клиента (web или windows);
 Различные приложения и оперативные средства управления ПО
являются прикладным уровнем, такие как например RTE;
 Система, являющаяся внешней и имеющая управление БД, которая
взаимосвязана с Service Manager это уровень базы данных. БД содержит
в себе описания приложений.
Установкой занимается ответственный администратор, который может
в определенном файле – sm.ini задать необходимые характеристики языка,
17
цветовой схемы, а также данные для соединения service manager и
реляционной БД, с возможным управлением.
HP Service Manager – программное обеспечение с web-интерфейсом и
порталом самообслуживанием. Важно уточнить, что интерфейс пользователей
имеет точную копию клиента, т.к эти интерфейсы имеют свойство синхронной
настройки.
HP Service Manager отличается исключительными возможностями
настроек и владеет насыщенным и большим набором возможностей по
реализации отчетов. Для создания отчетов HP Service Manager необходим
специальный драйвер, который позволит сформировать отчет средней
сложности.
Рисунок 1.2. – взаимодействия компонентов HP Service Manager 7.0
[URL: https://axoft.ru/vendors/Micro-Focus/HP-Service-Manager/]
HP Service Manager поставляется с отдельным продуктом – Connect It,
через который предоставляется возможность интегрироваться с другими
приложениями или продуктами с помощью web сервисов. Данная идея
принадлежит Hewlett-Packard.
18
Выводы по главе 1
Рассмотрели систему HP Service Manager
и ее компоненты.
Ознакомились с текущим процессом обработки обращений пользователей на
предприятии.
Подтвердили необходимость создания сервиса для решения задач
маршрутизации обращений пользователей в службу поддержки.
19
2 ТРЕБОВАНИЯ К СЕРВИСУ
2.1 Общие сведения
2.1.1 Название сервиса
Служба управления маршрутизации запросов – cервис, являющийся
службой Windows, для маршрутизации обращений пользователей в системе
Help Desk, программного продукта HP Service Manager.
2.1.2 Условное обозначение сервиса
RRMS (Request Routing Management Service)
2.2 Назначение и цели создания сервиса
2.2.1 Назначение сервиса
Распределение обращений пользователей, направляющие запросы в
службу поддержки.
2.2.2 Цели создания сервиса
Основными целями создания системы являются:
 Минутное реагирование на новые обращения, без простоя и нарушений
SLA;
 Точное распределение обращений;
 Повышение качества обслуживания пользователей.
2.3 Требования к сервису в целом
2.3.1 Требования к структуре и функционированию сервиса
Сервис по маршрутизации обращений пользователей должен иметь
следующий вид: приложение, автоматически исполняемое системой при
20
запуске операционной системы Windows и выполняющиеся вне зависимости
от статуса пользователя.
Сервис создается как служба, реализуется на персональном компьютере.
Сервис должен непрерывно работать, обрабатывая запросы раз в минуту, и
иметь отказоустойчивость.
Согласно поставленной задаче, разрабатываемый сервис должен
состоять из следующих подсистем, разделенных по функциональному
признаку:
 подсистема обработки данных.
 подсистема принятия решения;
Сервис должна отвечать следующим требованиям:
 непрерывное подключение для реализации запрос\ответ со смежной
системой;
 обработка\обновление запрашиваемой информации;
Интеграция сервиса с HP Service Manager должно быть реализовано в двух
подсистемах.
2.4 Требования к функциям, выполняемым сервисом
Подсистема обработки данных выполняет следующие функции:
 считывание новых записей из таблицы БД Service Manager, по
ключевому полю;
 передача информации обращении в модель данных классификации;
 выполнение синтастического анализа;
 отправка обработанных данных в подсистему принятия решения;
Подсистема принятия решения выполняет следующие функции:
 получение обработанных данных из подсистемы обработки данных;
 заполнение информации по ключевому полю;
21
 обновление таблицы БД Service Manager, внеся изменения в запись по
ключевому полю.
2.5 Требования к видам обеспечения
2.5.1 Требования к аппаратно-программному обеспечению
Для
функционирования
данного
сервиса
оборудование должно
соответствовать следующим рекомендуемым требованиям:
 Процессор: 8-ядерный центральный процессор с тактовой частотой 2,66
ГГц.
 ОЗУ: 16 ГБ с возможной загрузкой до 32 ГБ.
 Место на жестком диске: 50 ГБ.
 Операционная система: Windows Server 2012 r2
Требования к программному обеспечению:
 Драйвер Microsoft ODBC для SQL Server;
 Microsoft SQL Server;
2.5.2 Требования к информационному обеспечению
Для работы с базами данных используется Microsoft SQL Server. Выбор
в пользу данной СУБД принято из-за использования HP Service Manager такой
же системой управления базами данных, что позволяет разместить сервис и
Service Manager на одном сервере и настроить интеграцию без межсетевых
взаимодействий.
2.5.3 Требования к лингвистическому обеспечению
Язык программирования: Python.
Python - является высокоуровневым и объектно-ориентированным
языком программирования, с которым достаточно комфортно работать. Python
является самым популярным для реализации машинного обучения. Данный
22
язык при обработке данных показывает отличную производительность.
Совместим с СУБД MSSQL, что позволяет отправлять и принимать запросы
из HP Service Manager.
2.5.4 Требования к математическому обеспечению
В
качестве
математического
аппарата
для
решения
задачи
классификации обращений пользователей в группу поддержки должны
использоваться методы машинного обучения.
Машинное обучение - отрасль ИИ, включающий в себя обучение при
помощи методов построения алгоритмов.
Существуют два различных типа обучения:
 Индуктивное - изучение в основе которого используются общие
закономерности определенных данных.
 Дедуктивное – изучение с применением определенных правил, развивая
аналитические способности для решения задач. Данное обучение
относится к экспертным системам, соответственно и определения
машинное обучение и индуктивное принято называть синонимами.
Машинное
обучение
тесно
взаимодействует
с
классическими
математическими дисциплинами, методами и способами оптимизации, но не
смотря на свою особенность существуют проблемы в переобучении и
вычислительно эффективности. Основная идея машинного обучения –
самообучение машин и адаптация через опыт. Прогнозируя на основании
подготовленной информации компьютером используется вычислительная
статистика. Для прогнозирования используются сложные алгоритмы, но это
не интеллектуальный анализ данных с которым его сравнивают. Поиск данных
ориентируется на поиске именно неизвестных атрибутов в случайной
информации, а машинное обучение – программирование в основе, которой
используются учебные данные.
23
Альтернатива классических статистических подходов – методы
индуктивного обучения. На стыке многие методы находятся в разрезе по
извлечению информации и интеллектуальному анализу данных.
Теория вычислительного обучения объединяет теоретические разделы
машинного обучения в отдельное направление - Computational Learning
Theory.
Машинное
обучение
включает
в
себя
и
математическую,
и
практическую инженерную дисциплину. Недостаточно одной теории, для
того, чтобы был результат на практике, необходимо тщательно прорабатывать
и изучать методы, а также алгоритмы. Работоспособность зависит от того, как
компенсировать отклонение представленных в теоретических условиях и для
фактических заданий реализовывать отличный функционал.
2.5.4.1 Использование навивного байесовского классификатора с помощью
математических формул
Наивный
байесовский
классификатор
–
высоковероятностный
классификатор, в его основе применяется теорема Байеса с допущением о
независимости признаков.
Модель наивного байесовского классификатора заключается в том, что
в зависимости от точной природы вероятностной модели, наивные
байесовские классификаторы могут обучаться очень эффективно. Во многих
практических приложениях для оценки параметров для наивных байесовых
моделей используют метод максимального правдоподобия; другими словами,
можно работать с наивной байесовской моделью, не веря в байесовскую
вероятность и не используя байесовские методы.
Вероятностная модель для классификатора — это условная модель над
зависимой переменной класса С с малым количеством результатов или
классов, зависимая от нескольких переменных F1,…,Fn. Проблема состоит в
24
следующем: невозможно построить модель на основе таблицы, содержащую
рядность упорядоченных и взаимосвязанных показателей, так как при
большом количестве свойств n или множество значений могут приниматься
одним свойством. Для этого необходимо переформулировать модель, чтобы
она легко поддавалась обработке.
Запишем формулу в которой используется теорема Байеса:
Константа – знаменатель, поэтому не зависит от С и представлены
значения Fi. Для практики используется только числитель данной дроби.
Совместная
вероятностная
модель
равнозначна
числителю, данную модель можно переписать при использовании повторных
приложений определения вероятности, являющейся условной:
возможно, продолжить дальше расписывать по аналогии. Предполагая,
что отдельное свойство отдельного значение Fi может быть условным
независимым от любых других значений Fj при j не равным i, доказывается
предположение условной независимости, что и подразумевает использования
«наивные». Это значит:
25
Следовательно, выражение совместной модели:
Из соображения о «самостоятельности», формулу можно записать по
следующим образом:
При известных значений переменных и зависящих от константы
Z=p(F1….Fn) – множитель масштабный.
Возьмем для примера ситуацию, в которой применяется наивный
байесовский классификатор к задаче, связанной с классификацией документов
по их содержимому. В нашем случае пусть будет происходить классификация
обращений на два класса, статусы у которых будут иметь названия “SAP
системы
” и “Роботизация
”.
Будем считать, что был осуществлен выбор документов из нескольких
классов документов. Эти документы можно представить при помощи
множества слов, что имеют независимую вероятность, встреча i-го слова этого
документа в документе класса C:
(В рамках данной задачи будем предполагать, что длина документа не
влияет на вероятность встречи слова, а также, что длина всех документов
одинакова.)
В таком случае вероятность для данного документа D и класса C
получается следующая:
26
Вопрос, ответ на который мы хотим получить, заключается в том, что
необходимо узнать, чему равна вероятность того, что данный документ D
будет принадлежать классу C? Простым языком, чему будет равна
?
Из теоремы Байеса:
Будем предполагать, что у нас имеется только два класса: S и ¬S (SAP и
Роботизация соответственно). Тогда получим следующее:
Из деления одного на другое получается отношение правдоподобия
или (для логарифма правдоподобия)
Расчёт действительной вероятности
может быть может быть
произведен из следующего выражения:
27
Вышенаписанное выражение получается в результате наблюдения, что
.
Но
без
сформированного
вероятностного
пространства это получить не получится, в связи с этим необходимо его
сформировать, пользуясь функцией правдоподобия
Наконец, происходит классификация документа при помощи логарифма
правдоподобия и некоторого порога h (например h=0), посредством
сравнивания их между собой. SAP-обращение получается в том случае, если
2.5.4.2 Исследование классификации и регрессии с помощью деревьев
принятия решений
Анализ дерева решений - метод, который описывается процессом
принятий решений путем анализа альтернативных способов и результатом
вариантов отбора. Вид изображения - диаграмма. Данный метод строится при
помощи алгоритмических подходов, использующие разбиения набора данных
алгоритмом с заданными конкретными условиями. Такие решения в
наибольшей
степени
мощные
алгоритмы,
попадающие
под
группу
регулируемых механизмов.
Деревья решений - средство моделирования, которое основывается на
прогнозирования и применяется во множестве областях.
Они используются как в задачах регрессии, так и в задачах
классификации. У модели дерева две основы, которые принимают решения,
одна из которых отвечает за разделение и удаление данных, другая за
получение результата.
28
Дерево решений - это контролируемая модель машинного обучения,
используемая для прогнозирования цели путем изучения правил принятия
решений по функциям.
В деревьях решений классификации используется категориальный тип
переменной. Пример такого дерева является образцовым.
В деревьях решений регрессии используется непрерывный тип
переменной.
Дерево состоит из корневого узла и конечных узлов. Построение дерева
выполняется в две части после создания корневого узла:
 Создать терминальный узел. Перед созданием терминальных узлов
дерева решений важно определить, когда создаются терминальные узлы
или прекращается выращивание дерева. Существует два критерия с
помощью которых можно это сделать: максимальная глубина дерева и
минимальная запись узла, разберем каждый из них:
Рассматривая максимальную глубину дерева, говорим о максимальном
количестве узлов в иерархии нашего дерева после корневого узла.
Необходимо прекращать дополнять терминальные узлы, если дерево имеет
максимальную глубину, то есть после фиксации наибольшего количества
терминальных узлов в дереве.
Запись минимально узла определяется как наименьшее число шаблонов
обучения,
отвечающий
конкретный
узел.
Прекращение
добавления
терминальных узлов происходит, когда в дереве достигнут минимум записей
узлов.
Для завершающего прогноза используется терминальный узел.

Рекурсивное расщепление. Метод построения дерева это и есть
рекурсивное
расщепление,
информации
создаются
в
котором
дочерние
узлы,
для
каждой
категории
сгенерированы
через
29
классификацию подборку данных, повторяя функционирование вновь и
вновь.
Необходимо прогнозировать реализацию дерева решений после его
построения. Особо представленная строка данных при прогнозировании
осуществляет путь по дереву решений.
Прогнозирование выполняется при помощи механизма рекурсивности.
Этот же самый процесс работает вновь с флангами, возможно дочерними,
узлов.
Создание дерева решения отвечают следующим условиям:
 Набор обучения, используемый в построении дерева - корневой узел.
 Значения
приказнов
предпочтительности
должно
быть
классификатора
категориальными
дерева
решений.
для
Если
используются непрерывность значений, то тогда до создания модели
необходимо дискредитироваться.
 Рекурсивно размещаются на базе свойств атрибутов.
 Размещаются атрибуты в разных положениях узла при использовании
статистического подхода, будь это корневой или внутренний узел.
2.5.4.3 Использование логистической регрессии с помощью математических
формул
В рамках данной работы рассмотрим более подробно один из методов
машинного обучения:
Логистическая регрессия – это статистическая модель, используемая
для прогнозирования вероятности возникновения некоторого события путём
его сравнения с логистической кривой.
30
Логистическую
регрессию
относят
к
статическим
методам
классификации, в котором используется линейный дискриминант Фишера.
В отличие от обычной регрессии, в методе логистической регрессии не
производится предсказание значения числовой переменной исходя из выборки
исходных значений. Вместо этого, значением функции является вероятность
того, что данное исходное значение принадлежит к определенному классу.
Основной идеей логистической регрессии является то, что существует
возможность разделения пространства исходных значений линейной границей
(т.е. прямой) на две области, которые соответствуют классам. В случае, когда
два измерения, получается простая прямая линия, не имеющая изгибов. Если
же случай подразумевает три измерения, то тогда получается плоскость, и так
далее. Исходные данные и обучающий алгоритм оказывают влияние на то, как
задается эта граница. Разделение линейной границей точек исходных данных
на две вышеуказанные области необходимо для того, чтобы все корректно
работало. Если данное требование удовлетворяется точками исходных
данных, то в таком случае точки носят название линейно разделяемые.
Рисунок 2.1 – Трехмерный график
Рассмотрим на примере двух исходных переменных x1 и x2, в таком
случае функция, которая соответствует границе, будет иметь следующий вид:
31
Стоит
обратить
внимание,
что
вышеперечисленные
x1
и
x2
представляют из себя исходные переменные. В то время как выходная
переменная не будет входить в исходное пространство, в этом и заключается
отличие от метода линейной регрессии.
Возьмем точку (a,b), с подставленными в граничную функцию
значениями x1 и x2, получим следующее выражение
.
Из-за различного положения (a,b) рассмотрим три варианта:
 (a,b) принадлежит области, которая ограничена точками класса "+". В
таком случае функция
- положительная, при этом
когда находится где-то в пределах (0, ∞). С математической точки
зрения расстояние между точкой и границей прямо пропорционально
величине этого значения. Таким образом существует большая
вероятность принадлежности точки (a,b) к классу "+". А значит, в
пределах (0,5, 1] будет находиться P+.
 (a,b) принадлежит области, которая ограничена точками класса "-". При
таком случае функция
- отрицательная, при этом
когда находится где-то в пределах (-∞, 0). Вероятность принадлежности
(a,b) к классу "-" прямо пропорционально величине выходного значения
по модулю, и таким образом P+ принадлежит интервалу [0, 0.5).
 (a,b) лежит на самой границе. В этом случае,
. Это
означает, что модель действительно не может определить, принадлежит
ли (a,b) к классу "+" или к классу "-". И в результате, P+ будет равняться
0,5.
Мы имеем функцию, с помощью которой возможно получить значение
в пределах (-∞,∞) имея точку исходных данных. C помощью функции
32
отношения
шансов
(OR)
преобразовываем
полученное
значение
с
вероятностью P+, пределы которой [0, 1].
Обозначим P(X) вероятностью происходящего события X. Тогда,
отношение шансов OR(X) определяется из P(X)\1-P(X), а это — отношение
вероятностей того, произойдет ли событие или не произойдет. Очевидно, что
вероятность и отношение шансов содержат одинаковую информацию. Но, в то
время как P(X) находится в пределах от 0 до 1, OR(X) находится в пределах от
0 до ∞
Таким образом возникла необходимость еще одного действия. Связано
это с тем, что граничная функция, которую мы используем, выдает значения
от -∞ до ∞. После необходимо произвести вычисление логарифма OR(X),
называние которого является логарифм отношения шансов. С точки зрения
математического смысла, у OR(X) будут пределы от 0 до ∞, а у log(OR(X)) —
от -∞ до ∞.
В результате был получен способ интерпретации результатов, которые
были подставлены в граничную функцию исходных значений. В модели,
которая используется, логарифм отношения шансов класса "+" определяется
при помощи граничной функции.
Выводы по главе 2
В данной главе предоставлен обзор сервиса и его требований к струтуре,
функционированию, функциям, видам обеспечения. название сервиса, его
условное обозначение. требования к сервису.
33
3 ПРОЕКТИРОВАНИЕ СЕРВИСА
3.1
Обработка данных MS SQL Server средствами Python
Для того, чтобы сервис мог самостоятельно назначать обращения
необходимо взаимодействовать с СУБД, которая напрямую подключена к
Help Desk.
Запросы между сервисом и базой данных будут осуществляться
средствами Python с использованием модуля Microsoft ODBC для SQL Server,
который обеспечивает подключения к Microsoft SQL Server из Windows.
Рисунок 3.1 – общая схема взаимодействия сервиса
34
Сервис, запрашивая каждую минуту данные из таблицы dbo.Incidentsm1
получает информацию по следующим полям:
Таблица 3.1 Запрашиваемые атрибуты
Имя поля
Тип
PROBLEM_ID
Varchar(100)
DESCRIPTION
Text
SUBCATEGORY
Varchar(140)
При наличии нового обращения, сервис определяет категорию, тему,
отдел и назначает ответственного на данную задачу, путем обновления полей
таблицы dbo.Incidentsm1, обращаясь по полю PROBLEM_ID.
Таблица 3.2 Изменение атрибутов
3.2
Имя поля
Тип
TYPE
Varchar(60)
CATEGORY
Varchar(50)
LOCATION_FULL_NAME
Varchar(140)
DEPT
Varchar(60)
Обучение модели ML
На этапе обучения выполняется "тренировка" сервиса. Основные шаги
обучения:
 Установление сессии передачи данных и обучения.
35
 Последовательная выборка порции данных для модели и их загрузка в
сервис.
 Запрос на постановку в очередь для обучения.
 Модель обучается и сохраняется в хранилище.
 Периодически запрашивается статус.
 Как только для статуса модели установлено значение Done - модель
готова для прогнозирования.
3.3 База данных сервиса
База данных должна располагаться на сервере в системе управления
базами данных MSSQL и соответствовать следующей схеме:
Рисунок 3.2 – схема базы данных
БД состоит из следующих таблиц:
Таблица 3.3 Description
36
Имя поля
Тип
description_id(key)
Int
description_parser
Text
Таблица 3.4 Subcategory
Имя поля
Тип
subcategory_id(key)
Int
subcategory_parser
Varchar(140)
Таблица 3.5 Department
Имя поля
Тип
department_id(key)
Int
Name
Varchar(50)
Таблица 3.6 Category
Имя поля
Тип
category_id(key)
Int
Name
Varchar(50)
department_id
Int
Таблица 3.7 Employee
37
Имя поля
Тип
employee_id(key)
Int
full_name
Varchar(140)
department_id
Int
Таблица 3.8 Description_Subcategory
Имя поля
Тип
description_subcategory_id(key)
Int
Description_id
Int
Subcategory_id
Int
category_id
Int
Выводы по главе 3
В данной главе спроектирован сервис. Представлен обзор обучения
модели, базы данных сервиса. Рассмотрена обработка данных СУБД
средствами Python.
38
4 РЕАЛИЗАЦИЯ И ТЕСТИРОВАНИЕ СЕРВИСА
4.1 Реализация методов машинного обучения
В данной главе реализована часть методов и технологий, которые могут
быть применимы для кластеризации текстов, а именно обзор касается, как
классических методов по обработке исходных данных, так и методы
компьютерного анализа, средством программного языка Python.
4.1.1 Использование морфологии
Для того чтобы объединять различные морфологические формы слова в
одну координату пространства признаков, каждое слово исходного текста
приводится к своей нормализованной форме (лемме). Для английского языка
обычно применяется процедура нормализации слов, которая заключается в
отсечении окончания слова (stemming). Для русского языка процедура
нормализации слов является более сложной, но на данный момент существуют
распространённые методы её решения. Отдельной проблемой является тот
факт, что в естественном языке одному слову текста может соответствовать
несколько различных начальных форм. Например, слову "суда" можно
сопоставить две начальные формы: "суд" и "судно". В таких случаях имеет
смысл добавлять к тексту обе начальные формы слова. Существуют методы
разрешения многозначности слов в тексте, которые позволяют определять,
какое из значений слова следует использовать в данном случае.
4.1.2 Борьба с высокой размерностью: сокращение числа используемых
атрибутов путем выделения наиболее значимых
Несмотря на приведение к нормализованной форме всех слов внутри
документа, у полученного пространства признаков будет довольно большая
размерность (десятки тысяч). Если выкинуть слова, которые слабо влияют на
результаты рубрицирования, то это может привести к существенному
39
уменьшению вышеупомянутой размерности, не оказывая влияния на качество
рубрицирования.
Так называемые "стоп-слова" — (предлоги, союзы и т.п.) обычно
первыми подвергаются удалению из списка признаков, т.к. они не оказывают
сильного влияния на уменьшение размерности пространства признаков
(составление списка стоп-слов осуществляется вручную и в большинстве
случаев является небольшим). Удаление стоп-слов приводит к улучшению
качества рубрицирования, т.к. это приводит к удалению информационного
шума.
Далее можно подвергнуть удалению из списка признаков слова, которые
встречаются в тексте довольно редко.
4.1.3 Основные подходы к представлению текстов для компьютерной
обработки
Для того, чтобы работать с классификацией необходимо преобразовать
документы
таким
образом,
чтобы
они
имели
структурированную
последовательность, а именно в соответствие с требованиями алгоритмов
машинного обучения это и будет первым этапом выполнением поставленной
задачи автоматической кластеризации текста. Для агоритмов машинного
обучения необходим векторный тип таблиц в пространстве или пространством
признаков. Методы, которые предопределенны некими знаниями, тоже
применяют воспроизведение текста в векторном представлении.
Для построения классифицирующей модели используют обучение на
подготовленных примерах. Такой процесс представляется вторым по этапу
результата.
Изменение документа в векторный тип представления однозначно
влияет на качество, но также и влияет алгоритм, которые используется на
данном этапе.Существует множество методов с помощью которых возможно
структурировать текст в векторное представление, которые имеют свою
40
спецификацию в рамках задач классификации, соответственно есть
взаимосвязь с типом документа, его текстом, а также используемый язык.
Не
обладающие
особенностью
методы
машинного
обучения,
использующие в данном этапе, в рамках задач классификации, могут также
участвовать в разных категориях, например в распознавании образов. Многие
системы используют данный тип представления текста в векторный тип для
его отображения. Категория и частота слов напрямую связаны друг с другому,
даже больше категория от частоты, что является основным методом
отношения используемых слов в тексте к определенному виду.
Метод основывается на том, что каждое слово, которое используется в
тексте при кластеризации имеет свою определенную координату в векторном
типе представления таблиц. Это слово, при его использовании значение будет
положительно и пропорционально количеству встречающихся множеств слов
в наборе символов, то есть тексте, но при его отсутствие, его значение в
пространстве координат будет нуль.
Для реализации данного метода были выполнены работы на
colab.research.google.com используя язык программирования Python.
Для начала импортируем все необходимые библиотеки и производим
установку:
41
Рисунок 4.1 – импорт и установка необходимых библиотек
В качестве примера будем использовать текстовый документ(.txt) со
следующим
содержимым
текстом:
«Здравствуйте!
Нам
недавно
вы
разрабатывали роботов для проверки движения кег для Хайнекен. Он перестал
работать. прошу связать со мной и восстановить работоспособность. Спасибо»
Считаем эти данные из текстового файла, необходимо предварительно
загрузить документ на Google диск:
Рисунок 4.2 – предварительная загрузка документа на Google диск
Рисунок 4.3 – код для считывания данных из текстового файла.
42
В следующем формате получили данные: «['здравствуйте!', 'нам',
'недавно', 'вы', 'разрабатывали', 'роботов', 'для', 'проверка', 'движения', 'кег',
'для', 'хайнекен.', 'он', 'перестал', 'работать.', 'прошу', 'связать', 'со', 'мной', 'и',
'восстановить', 'работоспособность.', 'спасибо']»
Первым шагом в обработке данных является приведение всех символов
текста к нижнему регистру:
Рисунок 4.4 – код для приведения символов текста к нижнему регистру
Далее из текста удаляются знаки пунктуации, различные небуквенные
символы и цифры. Сделать это можно, применив функцию re.sub и указав в
качестве параметра шаблон для поиска всех небуквенных символов:
Рисунок 4.5 – регулярные выражения для удаления небуквенных символов и
цифр
Для применения последующих методов имеет смысл разбить каждую
строку на список составляющих её слов. Для этого можно воспользоваться
возможностями библиотеки nltk:
Рисунок 4.6 – разбиение слов
Существуют слова, которые в процессе применения алгоритмов
машинного обучения добавляют шум и влияют на качество модели (стопслова). Список стоп-слов можно увидеть, воспользовавшись командой:
43
Рисунок 4.7 – вызов команды для получения списка стоп-слов
Рисунок 4.8 – список стоп-слов
Теперь удалим стоп-слова из наших данных:
Рисунок 4.9 – код для удаления стоп-слов из текстового документа
Обычно тексты содержат различные грамматические формы одного и
того же слова либо однокоренные слова. Для приведения встречающихся
словоформ к одной (нормальной форме) используется лемматизация.
Лемматизация – процесс, который использует морфологический анализ
и словарь, для приведения слова к его канонической форме – лемме.
Для этой задачи будем применять библиотеку pymorphy2:
Рисунок 4.10 – применение лемматизации
После всех преобразований, можно оценить слова в полученном
документе. Для этого необходимо преобразовать обработанный текст в набор
44
цифр. Именно эти данные можно использовать как входные данные для
модели машинного обучения.
Рисунок 4.11 – преобразования текста в цифры
Рисунок 4.12 - Сформированная последовательность (вектор) из нулей и
единиц может использоваться в качестве набора фичей при обучении
моделей
4.1.4 Анализ исходных данных
Для обработки была предварительна, составлена таблица с двумя
колонками (A-текст обращения, B- Отдел)
45
Рисунок 4.13 – Таблица обращений.
На основании анализа данной таблицы сформировалась таблица,
исключающая стоп-слова, предлоги, местоимения, слова имеющие общий
смысл и др. (Рисунок 4.14).
После составления предыдущей таблицы была проведена обработка
текстовых обращений. Сократилась длинна текст, остались ключевые фразы,
по которым можно классифицировать текст (Рисунок 4.15).
46
Рисунок 4.14 – Таблица исключающих слов
Рисунок 4.15 – Таблица обработанных данных
Проанализировав полученные данные были выделены ключевые слов по
которым возможно отнести текст к одному из видов классификатора.
47
Рисунок 4.16 – Таблица классификаторов
4.1.5 Тестирование наивного байесовского классификатора
Для тестирования используется строка текста O. Существуют типы
данных с классами C, к только одному необходимо назначить строчку. Чтобы
это реализовать нужно найти некий класс С, где для этой строки будет
максимальная вероятность. Формула записи следующая:
Вычисления сложные, но используем теорему Байеса и перейдем к
следующим «непрямым» вероятностям:
В поисках максимума от функции, знаменатель не учитываем, так как он
является константой. Особое внимание необходимо уделить строке O. Чаще
всего, не принято решать задачу со всей структурой. Правильней извлечь
нужные признаки, чтобы получилась следующая формула:
48
Получилось выражение, которое затруднительно будет продолжать
решать, но используя наивность теоремы Байеса и получаем, что значение O
имеют прямую зависимость именно от класса C, но между собой не зависящие.
Тогда выражение будет выглядеть следующим образом:
И в итоге выражение принимает следующий вид:
Теперь необходимо посчитать вероятность двух значений: P(C), P(O|C).
Вычисляя данные параметры происходит тренировка классификатора.
Программным кодом Python использует две функции:
 Тренировка – подсчет критериев выражений
 Классификация – непосредственный расчет формулы.
Train – это функция, которая подсчитывает количество классов C и
частоту возникновения O и C. Нормирование этих частот происходит во
второй части метода. Итогом образовываются две вероятности, которые мы
считали.
Classify- функция, которая находит в наибольшей степени возможный
класс. Главное различие ввиду формулы P(D|C) в подмене умножения
вероятностей на вычисление суммы логарифмов, имеющие отрицательный
знак и дальше не вычисляется argmax, а только argmin. Существует частный
способ во избежание чисел движущихся к нулю, которые получаются при
умножении вероятностей – переход к логарифмам.
49
Отклониться от нуля в аргументе логарифма, возможно при
подставление в логарифм число 10 в степени -7.
Данная схема является простой, но она неплохо работает. Для рабочего
варианта нужно использовать схему сложнее.
Использование алгоритма подходит для произвольного числа классов.
Например, построение классификатора по темам обращения.
4.1.6 Тестирование классификатора «логистическая регрессия»
Тестирование происходит на языке программирование Python в среде
разработки Google Colaboratory.
Были использованы следующие библиотеки:
Рисунок 4.17 – используемые библиотеки
Pandas – библиотека для обработки анализа данных.
Json – библиотека для обработки, хранения модификации типа json.
Codecs, shutil – библиотеки для преобразование текста в иную кодировку
(utf-8 к windows-1251)
Sys – библиотека обеспечивающая доступ к некоторым переменным и
функциям, взаимодействующих с интерпретатором Python.
Requests – библиотека для обработки запросов.
50
Sklearn – библиотека содержащая набор алгоритмов машинного
обучения, в частности :
 LogisticRegression – логистическая регрессия.
 CountVectorizer, TfidVectorizer – конвертация данных в матрицу
токенов, находящихся в тексте.
 Train_test_split – функция для разделения блока данных на данные
для обучения и тестирования.
Для обработки данных используется функция:
Рисунок 4.18 – Функция Train_test_split
Рисунок 4.19 – Получение обозначений
51
Рисунок 4.20 –Преобразование данных в матрицу токенов
Рисунок 4.21 – Инициализация классификатора
Рисунок 4.22 – Прогноз на основе полученной модели
Рисунок 4.23 – Преобразование в многомерный массив
52
Рисунок 4.24 – Получение оценки на тестовом наборе
Рисунок 4.25 – Предсказание на тестовых данных
Рисунок 4.26 – Построение модели логистической регрессии
4.1.7 Применение классификации и регрессии с помощью деревьев
принятия решений
Тестирование происходит на языке программирование Python в среде
разработки Google Colaboratory.
Начнем с импорта необходимых пакетов Python:
Рисунок 4.27 – используемые библиотеки
Pandas – библиотека для обработки анализа данных.
53
Sklearn – библиотека содержащая набор алгоритмов машинного
обучения, в частности :
 metric– представление метрик.
 DecisionTreeClassifier – функция для измерения качества раскола
 Train_test_split – функция для разделения блока данных на данные
для обучения и тестирования
Загрузка набора данных в google.colab:
Рисунок 4.28 – импортирование файла в google.colab
Отображение набора данных iris загруженного результирующего файла
следующим образом:
Рисунок 4.29 – результат отображения
Объекты и целевые переменные получающиеся путем разделения
некого набора данных:
54
Рисунок 4.30 – определение набора данных
Разделим данные одна половина обучение, другая тесты. Деление
происходит 70 на 30 соответственно данные обучения на данные тестирования
в процентном соотношении:
Рисунок 4.31 – разбиение объема данных на обучение и тестирование
Библиотека sklearn помогает в обучение модели при помощи класса
DecisionTreeClassifier, а именно создаем классификатор и объявляем
обучение:
Рисунок 4.32 – создание классификатора и обучение
Делаем прогноз. Это можно сделать с помощью следующего скрипта:
Рисунок 4.33 – предсказывание набора данных
55
Рисунок 4.34 – точность на тренировочном\тестовом наборе
На выходе оценка точности, также отчет о классификации и матрица
путаницы, реализовано этого следующим программным кодом:
Рисунок 4.35 – отчеты по запрошенным данным
Визуализация дерева решения реализована следующим образом:
Рисунок 4.36 – визуализация дерева решения
Выше были рассмотрены основные подходы, которые применимы для
автоматической классификации текстов. Благодаря проведённому анализу
различных подходов возникает возможность выбора наиболее эффективного
56
метода машинного обучения, что будет являться отправной точкой в
сравнении качества работы других методов машинного обучения.
4.2 Интеграция сервиса с HP Service Manager
Интеграция представлена с помощью языка программирования Python c
языком структурированных запросов (SQL).
Первым делом необходимо установить нужную библиотеку и затем ее
импортировать:
Рисунок 4.37 – импортирование библиотеки
Pyodbc - модуль, который предоставляет доступ к базам данных через
ODBC.
Пишем код в строку для подключения к нужной БД:
Рисунок 4.38 – подключение к БД
Driver - Microsoft ODBC для SQL Server.
Server - сервер, на котором находятся нужные таблицы.
Trusted Connection - один из способов подключения пользователей к БД.
Подключение через учетную запись Windows включает значение – yes.
Выполним соединение к БД и создадим курсор для передачи запросов,
строкой программного кода:
57
Рисунок 4.39 – соединение к БД
Сервис успешно интегрирован с БД HP Service Manager.
Выводы по главе 4
В данной главе наглядно представлено использование морфологии, а
также сокращения чисел используемых атрибутов при помощи выделения
наиболее значимых.
Произведены основные подходы к представлению текстов для
компьютерной обработки. Подходы, которые описаны в данном разделе, в
некой степени являются «стандартными» и используются в построении
алгоритмов классификации текстов.
Заключением
данной
главы
является
описание
реализации
и
тестирования сервиса.
58
ЗАКЛЮЧЕНИЕ
В результате проведения выпускной квалификационной работы была
достигнута поставленная цель, а также успешно выполнены необходимые для её
реализации задачи.
Был спроектирован, разработан сервис, маршрутизирующий обращения в
системе HP HelpDesk. При проектировании рассмотрели и успешно интегрировали
сервис в выбранную систему. Основным механизмом принимающего решения
сервиса
являются
методы
машинного
обучения,
также
рассмотрели
самостоятельное обучение для повышения их качества применительно к
извлеченным данным. Были применены различные методы для анализа исходных
данных и основные подходы по обработке обращений.
Реализованный сервис показал отличный результат в ходе первого запуска.
Сервис готов к внедрению в промышленную эксплуатацию в АО «Промышленные
инновации».
59
СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ
1. HP Service Desk [Электронный ресурс] Режим доступа: Интернет:
https://www.helpdeski.ru/tags/HP_SERVICE_DESK/
2. Уэс Маккинли Python и анализ данных / Пер. с англ. Слинкин А.А. – М.:
ДМК Пресс, 2015, -482 с: ил.
3. Рашка С.Python и машинное обучение / пер. с англ. А.В. Логунова. – М.:
ДМК Пресс, 2017. – 418 с.: ил.
4. «Открытый курс машинного обучения: анализ временных рядов с
помощью Python[Электронный ресурс] Режим доступа: Интернет:
https://habr.com/ru/company/ods/blog/327242
5. Обзор методов классификации в машинном обучении [Электронный
ресурс] Режим доступа: Интернет: https://tproger.ru/translations/scikitlearn-in-python
6. Гауссова смесь распределений [Электронный ресурс] Режим доступа:
Интернет: https://craftappmobile.com/1073-2/
7. Машина опорных векторов [Электронный ресурс] Режим доступа:
Интернет: http://www.machinelearning.ru/wiki/index.php?title=SVM
8. Наивный байесовский классификатор [Электронный ресурс] Режим
доступа: Интернет: http://datascientist.one/naive-bayes/
60
ПРИЛОЖЕНИЕ А. СЕРТИФИКАТ О ПУБЛИКАЦИИ
61
Download