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

Вдохновленный эпизодом подкаста, я решил создать свою собственную модель классификации для анализа отзывов клиентов и классификации их как (i) положительные, (ii) отрицательные или (iii) нейтральные. Однако вместо того, чтобы применять основанный на правилах подход к классификации мнений рецензентов, как это было предложено Loeshelle, я использовал алгоритмы машинного обучения (ML), такие как word2vec и классификацию случайного леса. В целом модель успешно идентифицировала негативные отзывы с точностью 92 % и достигла общей точности 71 %.

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

Сейчас общение между компаниями и клиентами становится более открытым диалогом, чем когда-либо прежде. Компании используют такие платформы, как Facebook, Twitter и Instagram, для распространения информации о компании и продуктах среди широкой аудитории. Клиенты, в свою очередь, используют эти платформы, чтобы реагировать, делиться и высказывать свое мнение о компаниях и указанных продуктах.Для крупных организаций, предлагающих широкий спектр продуктов и услуг, чтение каждого отзыва из множества источников, включая онлайн-форумы, электронные письма, социальные сети и стенограммы колл-центра невозможны. Однако, используя концепции обработки естественного языка (NLP) и большой объем отзывов клиентов, алгоритмы машинного обучения можно научить автоматически классифицировать отзывы клиентов.

Для этого проекта я использовал открытый набор данных, содержащий 15 000 помеченных отзывов клиентов об авиакомпаниях, собранный от пользователей в Twitter.

Настроения отзывов клиентов показаны на Рис. 1 ниже. За исключением Virgin America, отношение клиентов к авиакомпаниям несбалансировано и представлено чрезмерно негативными отзывами. Несбалансированные наборы данных создают проблемы для обучения алгоритмов машинного обучения, поскольку данных недостаточно для моделирования недопредставленных меток (в данном случае «нейтральных» и «положительных» отзывов). В этой итерации я не применяю какие-либо методы для работы с распределением классов, однако это было бы полезно для повышения чувствительности модели.

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

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

Также были удалены стоп-слова и слова-заполнители, такие как «the», «and», «I» и т. д. Эти слова встречаются часто, но не указывают на положительное или отрицательное настроение и бесполезны при обучении модели. После этого процесса очистки наиболее часто используемые слова в наборе данных отображаются на Рис. 2 ниже.

От слов к векторам с Word2Vec

Основной проблемой при анализе свободного текста является присущее ему отсутствие структуры. Чтобы использовать алгоритмы ML, мы должны сначала преобразовать неструктурированный текст в векторы. Word2vec — это алгоритм, разработанный Google, который преобразует текст из большого корпуса в векторы. Сначала он создает словарь из обучающих текстовых данных, а затем изучает векторное представление слов. Векторы слов с похожим значением отображаются близко друг к другу, и в результате слова и результирующая модель слова-вектора могут использоваться в качестве функции во многих приложениях NLP и ML.

Визуализация

Word2vec обычно реализуется с 300-мерными векторами. К сожалению, это слишком много измерений, чтобы люди могли их визуализировать. К счастью, мы можем использовать алгоритм t-SNE для визуализации векторов слов в 2D.

Изучая Рисунок 3, мы видим, что формируются кластеры, содержащие похожие слова. Библиотека word2vec предоставляет метод Similar_by_word(). При наличии слова метод возвращает слова с кратчайшим косинусным расстоянием. Мы можем увидеть результаты для некоторых примеров:

Terrible: 'horrible','poor','received','awful','sucks','desk','bad','cust','rude'

Americanair: 'southwestair','united','virginamerica','jetblue','amp','usairways'

Call: 'phone','someone','hold','hung','back','speak','answer’,'line','online'

Усреднение векторов и классификация случайного леса

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

Используя модель классификации случайного леса со 100 деревьями, мы достигаем точности 92 %, 38 % и 41 % для прогнозирования отрицательных, нейтральных и положительных отзывы. Отзыв для вышеуказанных классов составил 92%, 38% и 43% соответственно. Точность составила 77%, 56% и 70% соответственно. Более высокая точность классификации негативных отзывов, вероятно, была вызвана дисбалансом настроений среди отзывов. Кроме того, word2vec лучше всего работает при обучении на наборах данных, содержащих миллиарды слов, и, следовательно, можно ожидать лучших результатов, используя больший набор данных с помеченными отзывами клиентов.

Будущие шаги

Я с нетерпением жду дальнейшего развития этого проекта и документирования своего прогресса.

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

Кроме того, я планирую внедрить распознавание именованных объектов, чтобы идентифицировать тему каждого отзыва. Это может дать представление об отношении к конкретным продуктам и услугам и генерировать предложения для предприятий по областям для улучшения. Я еще не просматривал литературу по этой теме и приветствую любые предложения о том, как подойти к этой проблеме!

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



Ресурсы



Ссылки