В статье рассмотрен вариант решения классификации задач, поступающих от пользователей системы, на основе текстовой информации. Инструментом классификации выступает нейронная сеть. В статье рассмотрены этапы построения нейросети, а также процесс подготовки обучения.
Ключевые слова: нейронная сеть, нейрон, классификация текста
Введение
Современная техническая поддержка является единой точкой входа для любых запросов пользователей. Но запросы могут быть настолько разнообразны, что их решение требует разного уровня компетенции сотрудников. Поэтому перед решением запросы или проблемы классифицируют. Разбивая проблемы по разным “воронкам”, заявки распределяются на пользователей, исходя из компетенций сотрудников. Данное действие должно привести к уменьшению времени решения проблемы. Для распределения можно использовать отдельного сотрудника или программное обеспечение. Если использовать программное обеспечение сократятся расходы и время, затрачиваемое на прочтение и распределение заявок.
Выбор инструмента классификации
В настоящий момент времени есть различные способы классификации. Наиболее подходящие для нашей задачи: наивный байесовский классификатор и нейронная сеть.
Воронцов отмечает, что “Основные его преимущества простота реализации и низкие вычислительные затраты при обучении и классификации. В тех редких случаях, когда признаки действительно независимы (или почти независимы), наивный байесовский классификатор (почти) оптимален. Основной его недостаток относительно низкое качество классификации в большинстве реальных задач. Чаще всего он используется либо как “примитивный” эталон для сравнения различных моделей алгоритмов, либо как элементарный “строительный блок” в алгоритмических композициях” [1]. Для нас важно использовать инструмент применимый на практических вещах. Т. е. текущий недостаток будет для нас существенным. Основным недостатком нейронных сетей является переобучение. Суть данного недостатка в том, что нейросеть “запоминает” ответы. В то время как преимуществом нейросети является успешная практика в классификации, подкрепленная реальными примерами.
Проектирование нейронной сети
В качестве архитектуры мы будем использовать персептрон. Он достаточно прост в проектировании и использовании. После определения модели необходимо определиться с количеством слоев и нейронов на каждом слое.
Количество нейронов на входе должно быть заранее известным и равным такому значению, чтобы весь текст можно было передать на входной слой. Поэтому размер входного слоя зададим равным количеству слов в словаре. Словарь — это заранее составленный список слов. Есть два варианта получить словарь. Взять уже готовый словарь русского языка или создать свой. Новый словарь русского языка автор Ефремова Т. Ф. содержит около 160 000 слов [2]. Большой толковый словарь русского языка автор С. А. Кузнецов содержит около 130 000 слов. [3]. Эти числа нам не подходят. Во-первых, размер входного слоя получается слишком большой, из-за чего растут ресурсы, затрачиваемые на построение нейронной сети. Во-вторых, не все слова используются в заявках и в словаре могут отсутствовать слова профессионального диалекта. Поэтому необходимо составить свой словарь из используемых слов. Словарь будем составлять из имеющихся текстов заявок. При составлении словаря для большей унификации применяем процедуру стемминг. Для вариативности и возможно лучшего понимания смысла текста применим N-грамм, точнее, будем составлять словарь как униграммами, так и биграмами. Впоследствии сравним результаты на одинаковых текстах.
Количество нейронов на выходном слое должно соответствовать количеству категорий. После предварительного анализа текстов были выделены следующие категории:
− Не работает интернет.
− Низкая скорость соединения.
− Не работает VPN-канал.
− Потери в канале связи. Разрывы соединения.
− Не работает телефон полностью.
− Не работает только исходящая связь.
− Не работает только входящая связь.
− Проблемы продукта Облачная телефония.
Эти 8 групп заявок и будут выходным слоем.
Скрытые слои были рассчитаны исходя из соображения, что каждый последующий слой уменьшал количество нейронов в четыре раза.
В итоге у нас получилось две нейронные сети параметры которых представлены в Таблице 1.
Таблица 1
|
Униграмма |
Биграмма |
Кол-во в словаре. Входной слой нейросети |
3569 |
14474 |
Выходной слой |
8 |
8 |
Кол-во скрытых слоев |
3 |
4 |
Первый скрытый слой |
892 |
3619 |
Второй скрытый слой |
223 |
905 |
Третий скрытый слой |
56 |
226 |
Четвертый скрытый слой |
- |
56 |
Подготовка данных для обучения
Для обучения необходимо собрать достаточно большое количество данных. Были проверены и переклассифицированы 10000 заявок человеком. После классификации необходимо определить, как передать текст на входной слой. Для этого будем использовать вектор текста. Вектор текста получается путем складывания векторов слов в фразе. Вектор слова вычислен для каждого слова в словаре. Например, в словаре есть набор слов: “заявка”, “клиент”, “работает”, “включен”. И есть текст “Клиент не работает с 6 утра.” Вектор этого текста будет иметь вид: 0 1 1 0.
Для каждой из 10000 заявки был рассчитан вектор текста. Также впоследствии будет определяться вектор текста всегда перед тем, как передать на вход данные.
Результаты
После обучения было проведено тестирование на 100 заявках.
Нейросеть на основе униграм показала точность определения 86 %, а на основе биграм — 63 %.
Точность определения была рассчитана следующим образом:
− заявка проверялась на нейросети;
− за ответ от нейросети брался самый высокий процент;
− если ответ нейронной сети совпадал с ответом человека, заявка считалась определена верна;
− считался процент заявок, которые были определены верно от общего числа;
− каждая заявка проверялась на обоих вариантах (юниграма и биграма).
Чем больше процент верно определенных заявок, тем выше точность.
Заключение
Таким образом мы можем говорить о том, что классификация заявок с помощью нейросети позволит освободить человеческие ресурсы. В дальнейшем на основе данной классификации можно запускать автоматическую диагностику проблем. Тем самым мы увеличим скорость решения вопроса.
Литература:
1. К. В. Воронцов, Лекции по метрическим алгоритмам классификации.
2. Толковый словарь Ефремовой // Gufo.me — словари и энциклопедии. URL: https://gufo.me/dict/efremova (дата обращения: 30.06.2019).
3. Толковый словарь Кузнецова // Gufo.me — словари и энциклопедии. URL: https://gufo.me/dict/kuznetsov (дата обращения: 30.06.2019).
4. Лакман И. А., Альхамов Р. Р. Информационная поддержка классификации заявок в организации/ И. А. Лакман, Р. Р. Альхамов// Математические модели современных экономических процессов, методы анализа и синтеза экономических механизмов. Актуальные проблемы и перспективы менеджмента организаций в России: сб. ст. XII Всерос. науч.-практ. конф. / Ин-т проблем упр. им. В. А. Трапезникова Рос. акад. наук.; Самар. нац. исслед. ун-т им. С. П. Королева, под ред. Д. А. Новикова –Самара: Изд-во СамНЦ РАН, 2018. -С. 63–67.
5. Головко В. А. Нейронные сети: обучение, организация и применение. Книга 4. — М.: ИПРЖР, 2001. — 256 с.