Обработка естественного языка для обращений в службу поддержки ИТ

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

Введение

Ежемесячно предприятия сталкиваются с постоянно растущим объемом и скоростью получения билетов на ИТ-услуги. В большинстве случаев расследование, диагностика и анализ первопричин выполняются вручную. Когда ИТ-менеджеры хотят получить представление о своей ИТ-системе или приложениях, чтобы понять проблемные области и увидеть, на что ресурсы тратят свое время, они используют стандартную технику отчетности, которая обычно позволяет получить информацию только о количестве билетов, владении, категориях и т. Д. серьезность и т. д. Однако, полагаясь на отчеты, основанные на KPI, вы расскажете только о том, как у вас дела, а не о том, что делать и на чем сосредоточить усилия.

Постановка задачи

Шаблоны заявок на обслуживание обычно имеют ограниченный список вариантов, категорий для классификации заявки об инциденте. Когда конечный список категорий не описывает проблему пользователя или пользователь не может найти вариант, который ему нравится, он обычно выбирает сегмент по умолчанию «Общие» или «Другое». В таких случаях подробности их конкретной проблемы или беспокойства будут в неструктурированном резюме и / или описании инцидента, которое они предоставляют. И в этом неструктурированном тексте произвольной формы скрыты «горячие точки», которые необходимо вывести на первый план, чтобы понять реальные проблемные области и выполнить точный анализ первопричин.

Давайте посмотрим на некоторые случайные инциденты, зарегистрированные в категории «Общие», и посмотрим, сможем ли мы извлечь «горячие точки»

+--------------------------------------------------------+
|                    Incident Summary                    |
+--------------------------------------------------------+
| Firefox crashes when working with Gmail                |
| Password reminder not working                          |
| Missing back buttons not returning, links not working  |
| Client search functionality is not working              |
| when navigating to certain links Firefox stops working |
+--------------------------------------------------------+

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

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

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

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

Процесс

Получение данных

Чтобы выполнить обработку естественного языка, нам нужны некоторые данные, содержащие естественный язык для работы. Часто вы можете собирать свои собственные данные для проектов, очищая Интернет или загружая существующие файлы, например, в этом случае я использовал данные об ошибках / дефектах для браузера Firefox, которые общедоступны по адресу https: // bugzilla.mozilla.org

Результат ниже показывает инциденты, зарегистрированные в категории «Общие». Всего около 900 записей.

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

Предварительная обработка данных

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

Последующие шаги показывают деятельность по очистке данных, которая удаляет нежелательную или ненужную информацию, такую ​​как URL-адреса http (s), знаки препинания, одиночные цифры или слова, содержащие цифры. Здесь текстовые данные структурированы, чтобы гарантировать, что данные могут быть прочитаны одинаково в системе, и для улучшения целостности данных (также известный как «нормализация текста»).

Удаление стоп-слов. Это самые распространенные слова, такие как «тот», «а», «он», «есть», «все» и т. д. Эти слова не несут важного значения и обычно удалены из предложений, чтобы получить лучшую производительность.

Удаление редких слов. Иногда вам нужно удалить слова, которые очень уникальны по своей природе, такие как названия, бренды, названия продуктов и некоторые шумовые символы, например пропущенные HTML. Это считается «удалением редких слов».

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

Например: если мы лемматизируем "изучение" и "изучение", мы получим "изучение" как его лемма. К такому выводу мы пришли после морфологического анализа обоих слов. Они были отображены в словаре, что помогло прийти к лемме .

До этого момента мы выполняли очистку текста, то есть предварительную обработку данных, чтобы сделать их совместимыми с моделями машинного обучения. Теперь мы, наконец, переходим к извлечению признаков с помощью методов НЛП, используя технику TF-IDF.

Извлечение функций с использованием TF-IDF

Как известно, машины умеют работать с числами, но не так хорошо с текстовыми данными. Один из наиболее широко используемых методов обработки текстовых данных - TF-IDF.

TF-IDF расшифровывается как термин "частота-обратная частота документов". Это метод, который используется, когда нам нужен компьютер для определения тем огромного набора документов. В Интернете есть много литературы, статей и ссылок о TF-IDF, поэтому мы не будем вдаваться в подробности. Просто чтобы дать быстрый пример;

Рассмотрим документ, содержащий 100 слов, в котором слово кошка встречается 3 раза. Тогда частота термина (т. Е. Tf) для cat равна (3/100) = 0,03. Теперь предположим, что у нас есть 10 миллионов документов, и слово cat встречается в одной тысяче из них. Затем обратная частота документов (т. Е. Idf) рассчитывается как log (10 000 000/1 000) = 4. Таким образом, вес Tf-idf является произведением этих количеств. : 0,03 * 4 = 0,12

На следующем шаге TfidfVectorizer из sklearn используется для обработки наших документов. Здесь биграммы используются для извлечения признаков (т.е. ngram_range = (2,2))

Примечание. N-граммы - это комбинация нескольких слов, используемых вместе. Нграммы с N = 1 называются униграммами. Точно так же можно использовать биграммы (N = 2), триграммы (N = 3) и так далее. По сути, они представляют собой набор совпадающих слов в данном окне.

Результат показывает частоту появления биграммных терминов (так называемых «горячих точек») в документах.

Например: биграммный термин «firefox stop» имеет наивысший вес Tfidf, который можно интерпретировать как - из общего числа 900+ инцидентов категории «Общие» большинство пользователей упомянули «браузер Firefox. останавливаться ». Давайте посмотрим на другой пример, следующий верхний биграммный термин - это «щелчок правой кнопкой мыши», который можно интерпретировать как инциденты, сообщаемые при операциях щелчка правой кнопкой мыши.

Давайте посмотрим на это в виде графика

Таким образом, мы увидели, насколько мощным является TF-IDF как инструмент для обработки текстовых данных из корпуса. Чтобы узнать больше о sklearn TF-IDF, вы можете воспользоваться этой ссылкой.

Заворачивать

У сервисных агентов слишком много билетов, и наем дополнительной рабочей силы не решит проблему. Кроме того, клиенты ожидают более быстрого взаимодействия, а это означает, что агентам по обслуживанию потребуется тратить еще больше времени на решение отдельных проблем клиентов. Поскольку объем заявок продолжает расти, решения НЛП под управлением ИИ являются ответом. Алгоритмы НЛП могут обрабатывать этот текст произвольной формы, кластеризовать проблемы и определять горячие точки. Это особенно полезно, если категории не обновлялись командой службы поддержки.

Удачного кодирования!

Спасибо, что прочитали эту статью.