Недавно, покупая сумку для ноутбука на Амазоне, я наткнулся на довольно забавный отзыв покупателей:

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

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

Анализ настроений: извлечение важной информации из неструктурированных данных

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

Анализ настроений, также известный как анализ мнений, - это подполе Обработки естественного языка (НЛП), которая пытается идентифицировать и извлекать мнения из заданного текста.

Раньше компании полагались на традиционные методы, такие как опросы и исследования в фокус-группах, для получения отзывов потребителей. Однако технологии, поддерживаемые машинным обучением и искусственным интеллектом, позволили анализировать текст из самых разных источников с гораздо большей точностью. Излишне говорить, что способность извлекать эмоции из текста - очень ценный инструмент, который может значительно повысить рентабельность инвестиций во многих компаниях.

Важность анализа настроений

Пол Хоффман, технический директор Space-Time Insight, однажды сказал: «Если вы хотите понимать людей, особенно своих клиентов… тогда вы должны обладать сильной способностью анализировать текст». Мы не можем больше согласиться с Полом, поскольку в последние годы возможности анализа текста стали очевидны. В связи с резким ростом активности в социальных сетях эмоции рассматриваются как ценный товар с точки зрения бизнеса. Тщательно изучая мнения и настроения людей, компании могут разумно понять, что люди думают о продукте, и, соответственно, учесть отзывы.

Сарказм: отрицательное отношение с использованием положительных слов.

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

Саркастические тексты демонстрируют уникальное поведение. В отличие от простого отрицания, саркастическое предложение выражает отрицательное мнение, используя только положительную коннотацию слов. Вот несколько примеров очевидного сарказма.

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

Обнаружение сарказма с использованием AI без водителя (DAI)

Driverless AI - это продукт автоматического машинного обучения от H2O.ai. Он оснащен рецептами обработки естественного языка (NLP) для задач классификации текста и регрессии. Платформа поддерживает как автономный текст, так и текст с другими числовыми значениями в качестве функций прогнозирования. В DAI реализованы следующие рецепты и модели:

Платформа автоматически преобразует текстовые строки в функции, используя мощные методы, такие как TFIDF, CNN и GRU. С TensorFlow AI без драйверов также может обрабатывать большие текстовые блоки и строить модели, используя все доступные данные, для решения бизнес-задач. ИИ без водителя обладает современными возможностями НЛП для анализа настроений, и мы будем использовать его для создания классификатора обнаружения сарказма.

Набор данных

Набор данных состоит из 1,3 миллиона саркастических комментариев с сайта интернет-комментариев Reddit, отмеченных как саркастические и несаркастические. Источником набора данных является документ под названием « Большой самоаннотированный корпус сарказма ». Обработанную версию набора данных также можно найти в Kaggle. Давайте изучим набор данных перед запуском различных алгоритмов классификации.

Импорт данных

Набор данных состоит из миллиона строк, и каждая запись состоит из десяти атрибутов:

Нас в основном интересуют следующие две колонки:

  • label: 0 за саркастический комментарий и 1 за несаркастический комментарий.
  • comment: текстовый столбец, который будет использоваться для проведения эксперимента.

Исследовательский анализ данных

Набор данных идеально сбалансирован, с равным количеством саркастических и несаркастических твитов.

Распределение длин для саркастических и нормальных комментариев также почти одинаково.

Поскольку набор данных был преобразован в табличный формат, он готов к загрузке в AI без драйверов. Обратите внимание, что текстовые функции будут автоматически сгенерированы и оценены в процессе разработки функций.

Запуск эксперимента

Мы запустим наш эксперимент из трех частей, чтобы получить наилучшие возможные результаты.

  • Со встроенными рецептами TF / IDF NLP

В первой части мы будем использовать встроенные в DAI возможности TF / IDF.

Если вы хотите освежить свои знания о начале работы с AI без драйверов, не стесняйтесь пройти Test Drive. Test Drive - это AI без драйверов H2O в облаке AWS, где вы можете изучить все его функции без необходимо скачать его.

Запустите новый экземпляр DAI. Затем разделите набор данных на наборы для обучения и тестирования в соотношении 70:30 и укажите label в качестве целевого столбца. Мы также отменим выбор всех других столбцов и оставим только столбец comment в нашем наборе данных. Наконец, выберите LogLoss в качестве счетчика, сохранив все остальные параметры по умолчанию, и запустите эксперимент. Экран должен выглядеть следующим образом:

  • Со встроенными рецептами Tensorflow NLP

В качестве альтернативы мы запустим еще один экземпляр того же эксперимента, но с моделями Tensorflow. Это сделано, поскольку TextCNN полагается на модели TensorFlow. Перейдите на вкладку ‘Expert Settings’ и включите ‘TensorFlow Models’. Остальная часть процесса остается прежней.

  • С индивидуальными рецептами тональности

Если встроенных рецептов недостаточно, возможно, стоит разработать наш собственный рецепт, ориентированный на наш конкретный вариант использования. В последней версии (1.7.0) DAI реализована ключевая функция под названием BYOR, что означает Принесите свои собственные рецепты. Эта функция была разработана, чтобы позволить специалистам по данным настраивать DAI в соответствии с потребностями своего бизнеса. Подробнее об этой функции вы можете прочитать здесь.

Чтобы загрузить собственный рецепт, перейдите в экспертные настройки и загрузите желаемый рецепт. Компания H2O создала и предоставила в открытый доступ более 80 рецептов, которые можно использовать в качестве шаблонов. Эти рецепты доступны по адресу https://github.com/h2oai/driverlessai-recipes. Для этого эксперимента мы будем использовать следующий рецепт:

  • text_sentiment_transformer.py который извлекает тональность из текста с помощью предварительно обученных моделей из TextBlob.

TextBlob - это библиотека Python, которая предлагает простой API для доступа к своим методам и выполнения основных задач НЛП. Он может выполнять множество задач НЛП, таких как анализ тональности, проверка орфографии, создание сводки, перевод и т. Д. Щелкните вкладку экспертных настроек, перейдите к driverlessai-recipes > transformers > nlp и выберите нужный рецепт. Щелкните save, чтобы сохранить настройки.

Затем вы также можете выбрать определенные трансформаторы и отменить выбор остальных.

Сводка результатов эксперимента

На снимке экрана ниже показано сравнение трех экземпляров DAI с разными рецептами. Включение настраиваемого рецепта уменьшило компонент Logloss с 0,54 до 0,50, что при преобразовании в бизнес-область может иметь огромное значение.

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

Заключение

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