Помогаю моему другу-инженеру создать классификатор текста

Помогаю моему другу-инженеру создать классификатор текста

2 марта 2023 г.

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

Честно говоря, он назвал свою модель классификатором на основе ИИ, ранее я просто доработал его референс. 😂

Реальная история #engineermeetsdatascientist

Это был его первый опыт сборки модели DS. Г-н Вольф просмотрел множество видеороликов влиятельных лиц на Youtube и от случайных благочестивых умных специалистов по данным узнал, как построить модель классификации науки о данных, или, если быть точным, модель классификации текста.

<цитата>

Должно быть, он встречал кого-то, кто утверждал подобное

3month of DS

[Постановка задачи] Г-н Вольф после нескольких видеороликов решил, что знает достаточно, и приступил к созданию своего цитируемого «Классификатора на основе ИИ», который определяет тему с наибольшей вероятностью и отвечает с готовым ответом, соответствующим теме.

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

Let’s Fire the House

Он стал рок-звездой после развертывания модели, заработав на своем рабочем месте титул «КОМПАНИЯ, УПРАВЛЯЕМАЯ ИИ». Уууууу!!!

Вскоре после дня или двух во время постанализа его счастье было потеряно. Теперь ему нужно было сохранить лицо. Модель дает неправильные результаты для тем, которые не перечислены в первых двух категориях. Он позвал меня, чтобы помочь исправить обман. 😂

<цитата>

Первое, что я сказал своему другу мистеру Вольфу: «Бхаи Сан мери баат киси бхи ютубер ка копировать код карке герой мат Бано Пехле Уска фон и опыт дехо, ГУРУ банан се пехле»

Перевод: (Мой первый совет состоял в том, чтобы не следовать фрагментам случайного кода влиятельных лиц и сначала узнать о человеке, прежде чем назначать человека XYZ своим ГУРУ.)< /p>

Bahut Sara Funda…on Call

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

Краткосрочное, неэлегантное решение (не рекомендуется для длительного использования)

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

Примечание. Пороговое значение 0,8 — это всего лишь предположение. Идеальный порог можно определить, указав точку на графике рабочей характеристики приемника (ROC), где процент ложных срабатываний минимален, а процент истинных срабатываний максимален.

Hacky <> Long-Term Solve

В принципе, что было сделано неправильно?

Г-н. Вольф при построении модели классификации обучил модель только 40% данных, не рассматривая оставшиеся 60% как класс DO_NOT_RESPOND. Это привело к тому, что модель рассматривала проблему как проблему бинарной классификации, а не как проблему классификации нескольких классов.

Долгосрочное решение

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

  • Класс 1: планы доставки
  • Класс 2: стоимость отмены заказа
  • Класс 3: отрицательные образцы — `DO_NOT_REPLY`

Negative Sampling

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

Онлайн-обучение с Vowpal Wabbit также является возможным решением проблемы дрейфа.

Data Table

Поделитесь некоторыми методами классификатора НЛП, которые мы можем применить.

  1. Текст запроса для встраивания
  2. Создайте классификатор с несколькими классами, включив в качестве функций встраивание и цель в качестве темы.

Метод 1: TFIDFVectorizer с токенизатором SpaCy и классификатором машинного обучения

Метод 2: использование библиотеки Facebook FastText для встраивания слов

Метод 3: преобразование текста в векторы с помощью Doc2Vec, предварительно обученной модели Gensim и классификатора машинного обучения

Метод 4: комбинация Word2Vec со стратегией среднего объединения или стратегией взвешенного объединения TFIDF

Метод 5. Расширенный подход с использованием модели Google BERT для получения вложений документов и их классификации по трем разным темам/категориям

Метод 6. Если набор данных для обучения небольшой, лучше всего использовать нулевой классификатор.

Попробуйте Ktrain — Zero Shot Classifier, всего 4–5 строк кода.

KTrain

Если вам нужен точный текст кода для встраивания, ознакомьтесь с моей новостной бюллетень, выпуск 6, «Создание стратегии рекомендации вакансий для LinkedIn и XING».

Если у вас есть что-то интересное для меня, давайте свяжемся и подробно обсудим это. НАПИШИТЕ МНЕ

<цитата>

Г-н. Вольф внимательно выслушал мой список идей и подходов и сказал, что теперь вы мой ГУРУ.

Receiving Thanks for my Friend

:::информация Первоначально опубликовано здесь. em>

:::


Оригинал