![Page 1: #3 Global AI Meetup (NLP) - Никита Никитинский, DialTech](https://reader034.vdocuments.net/reader034/viewer/2022042515/58aa33981a28abbb108b5ecb/html5/thumbnails/1.jpg)
Через грабли - к чат-ботам: технологии, эвристики и жестокая
реальность
![Page 2: #3 Global AI Meetup (NLP) - Никита Никитинский, DialTech](https://reader034.vdocuments.net/reader034/viewer/2022042515/58aa33981a28abbb108b5ecb/html5/thumbnails/2.jpg)
О чем расскажу
Технологии – это круто (но про них и без меня расскажут)
Эвристики – это не так круто, но без них не обойтись
Данные – это больно
Дисклеймер: презентацию делал ночью и уставший
![Page 3: #3 Global AI Meetup (NLP) - Никита Никитинский, DialTech](https://reader034.vdocuments.net/reader034/viewer/2022042515/58aa33981a28abbb108b5ecb/html5/thumbnails/3.jpg)
Технологии NLPЧаще: Базовая подготовка (токенизация, удаление знаков препинания и стоп-
слов, приведение к одному регистру)
Морфологический анализ (чаще всего – лемматизация, частеречноетегирование)
Исправление опечаток (а вот тут косяк)
Выделение ключевых слов/(именованных) сущностей (для goal-oriented-ботов)
Реже: Синтаксический анализ (SyntaxNet же!)
Тематическое моделирование
Анализ тональности
Реферирование и аннотирование
Выделение значимых частей текста
![Page 4: #3 Global AI Meetup (NLP) - Никита Никитинский, DialTech](https://reader034.vdocuments.net/reader034/viewer/2022042515/58aa33981a28abbb108b5ecb/html5/thumbnails/4.jpg)
Технологии ML
Правила-шаблоны-ключевики
Классические алгоритмы (статистические)
Дистрибутивная семантика (все-что-угодно2vec)
Глубинное/глубокое обучение
Скоринговые модели (извлекающие)
Генеративные модели (порождающие)
Всякие гибриды
![Page 5: #3 Global AI Meetup (NLP) - Никита Никитинский, DialTech](https://reader034.vdocuments.net/reader034/viewer/2022042515/58aa33981a28abbb108b5ecb/html5/thumbnails/5.jpg)
ИнструментыNLP Apache OpenNLP, NLTK, АОТ
api.ai, wit.ai
AlchemyAPI
Машинное обучение + глубинное обучение Gensim, scikit-learn
TensorFlow, Keras, Theano, Torch, Caffe, Deeplearning4j
Тысячи их!
Фреймворки для создания чат-ботов Microsoft Bot Framework,
Pandorabots, Synthetic Intelligence Network,
Chatfuel, Botkit, Errbot, Hubot, DialTech
Десятки их!
![Page 6: #3 Global AI Meetup (NLP) - Никита Никитинский, DialTech](https://reader034.vdocuments.net/reader034/viewer/2022042515/58aa33981a28abbb108b5ecb/html5/thumbnails/6.jpg)
Факторы успеха
Алгоритмы всем известны
Сделать модельку могут многие (даже я!)
Грабли
Как заменять у бота ответы без переобучения модели?
Как сделать боту стабильную личность?
Знание доменных областей (банки, биржи, телеком)
Особенности процессов
Особенности принятия решений
Функциональное продакшн-решение
Возможности кастомизации
Интеграция, оптимизация, большая нагрузка
Универсальное решение для всех из коробки - маловероятно
![Page 7: #3 Global AI Meetup (NLP) - Никита Никитинский, DialTech](https://reader034.vdocuments.net/reader034/viewer/2022042515/58aa33981a28abbb108b5ecb/html5/thumbnails/7.jpg)
ЭвристикиВыделение значимых для ответа частей из запроса
• Знаки препинания?
• Части речи?
• Ключевые слова?
• Обучаем модель?
Обработка сложного запроса из нескольких вопросов
• Знаки препинания?
• Графические признаки?
• Обучаем модель?
Правильная обработка отрицаний
• Склеиваем отрицание со значимым словом?
• Игнорируем отрицания?
• Учитываем отрицания как значимое слово?
Работа с неизвестными для модели значимыми словами
Определение и фильтрация бреда
Разрешение анафоры в диалоге
![Page 8: #3 Global AI Meetup (NLP) - Никита Никитинский, DialTech](https://reader034.vdocuments.net/reader034/viewer/2022042515/58aa33981a28abbb108b5ecb/html5/thumbnails/8.jpg)
Данные в мире розовых
пони
![Page 9: #3 Global AI Meetup (NLP) - Никита Никитинский, DialTech](https://reader034.vdocuments.net/reader034/viewer/2022042515/58aa33981a28abbb108b5ecb/html5/thumbnails/9.jpg)
Реальные данныеМаксимально дурацкий формат
• Фотографии сканов экселевских таблиц
Люди неграмотные и не знают, чего хотят
• Скожит мой автамабел утелезерованн нет что
Данных мало
• Или еще хуже, очень много
Данные грязные до ужаса
• Ошибки форматирования
• Неправильные ответы
• Неправильная разметка
Данные нерепрезентативные
• Плохо представлены редкие категории
![Page 10: #3 Global AI Meetup (NLP) - Никита Никитинский, DialTech](https://reader034.vdocuments.net/reader034/viewer/2022042515/58aa33981a28abbb108b5ecb/html5/thumbnails/10.jpg)
Что делать?• Снимать штаны и бегать (опционально)
• Смириться с жестокостью жизни (рекомендуется)
• Иметь вспомогательные скрипты для работы с самыми частотными
форматами
• Иметь вспомогательные скрипты для очистки данных
• Иметь вспомогательные скрипты для быстрого анализа данных или
уметь быстро глазами определять их пригодность
• Иметь domain-specific наработки на случай отсутствия данных
• Иметь автотестер для получившейся модели
• Дообучаться в процессе работы
![Page 11: #3 Global AI Meetup (NLP) - Никита Никитинский, DialTech](https://reader034.vdocuments.net/reader034/viewer/2022042515/58aa33981a28abbb108b5ecb/html5/thumbnails/11.jpg)
Кейс автоматизацииКто:
• Компания, которая выдает займы
Проблема:
• На почту приходят письма с вопросами в больших количествах, операторы не
справляются (да и не спешат особо), некоторые письма висят по несколько дней,
клиенты недовольны
Изначальный процесс:
• Читать письмо
• Пытаться понять, о чем оно (это непросто!)
• Поставить категорию письма из выпадающего списка (это тоже непросто)
• Найти в скриптах для операторов подходящий ответ (это лениво)
![Page 12: #3 Global AI Meetup (NLP) - Никита Никитинский, DialTech](https://reader034.vdocuments.net/reader034/viewer/2022042515/58aa33981a28abbb108b5ecb/html5/thumbnails/12.jpg)
Кейс автоматизацииСамостоятельная попытка автоматизации:
• Ключевые слова, конечно же. Стало проще, но не сильно.
Решение:
• Рекомендательная система для операторов с возможностью автоответа
пользователям
На входе:
• Вопрос клиента
На выходе:
• Категория вопроса
• Наиболее вероятный ответ
• Степень уверенности в ответе
![Page 13: #3 Global AI Meetup (NLP) - Никита Никитинский, DialTech](https://reader034.vdocuments.net/reader034/viewer/2022042515/58aa33981a28abbb108b5ecb/html5/thumbnails/13.jpg)
Кейс автоматизацииКак делали:
• Анализ и обработка вопросов
• Обучение модели
• Тестирование модели
• Доработка модели
Какие были данные:
• Неправильно категоризированные вопросы (операторы халтурщики)
• Неинтерпретируемые вопросы
• Нерелевантные ответы на вопросы (прям как-то много!)
• Маньяцкий формат данных (архив с архивами с битыми JSON)
• Неравномерное распределение категорий вопросов
по набору данных (классика!)
![Page 14: #3 Global AI Meetup (NLP) - Никита Никитинский, DialTech](https://reader034.vdocuments.net/reader034/viewer/2022042515/58aa33981a28abbb108b5ecb/html5/thumbnails/14.jpg)
Немного о DialTech• Платформа для разработки чат-ботов и управления ими (админка,
переключение на оператора, WoZ, вот это вот всё)
• Свой NLP-движок (куда ж без этого!)
• Есть API
• Базовая интеграция со всеми основными мессенджерами и HelpDesk
(Usedesk, Zendesk, вот это вот всё)
• Возможность быстро интегрироваться почти с чем угодно
![Page 15: #3 Global AI Meetup (NLP) - Никита Никитинский, DialTech](https://reader034.vdocuments.net/reader034/viewer/2022042515/58aa33981a28abbb108b5ecb/html5/thumbnails/15.jpg)
Немножко обо мне
https://www.facebook.com/nnikitinsky
nlpx.net
В LinkedIn меня тоже можно найти:
Nikita Nikitinsky