Недавно, покупая сумку для ноутбука на Амазоне, я наткнулся на довольно забавный отзыв покупателей:
«Это лучшая сумка для ноутбука на свете. Он настолько хорош, что уже через два месяца использования его можно использовать как продуктовый пакет ».
Врожденный сарказм в обзоре очевиден, поскольку пользователя не устраивает качество сумки. Однако, поскольку предложение содержит такие слова, как «лучший», «хороший» и «достойный», отзыв легко может быть ошибочно принят за положительный. Это обычное явление, когда такие юмористические, хотя и загадочные обзоры становятся вирусными в социальных сетях. Если такие ответы не будут обнаружены и не будут приняты меры, это может нанести ущерб репутации компании, особенно если они планируют провести новый запуск. Обнаружение сарказма в обзорах - важный пример использования обработки естественного языка, и мы увидим, как машинное обучение может помочь в этом отношении.
Анализ настроений: извлечение важной информации из неструктурированных данных
Прежде чем мы перейдем к мельчайшим деталям обнаружения сарказма, давайте попробуем составить целостный обзор анализа настроений.
Анализ настроений, также известный как анализ мнений, - это подполе Обработки естественного языка (НЛП), которая пытается идентифицировать и извлекать мнения из заданного текста.
Раньше компании полагались на традиционные методы, такие как опросы и исследования в фокус-группах, для получения отзывов потребителей. Однако технологии, поддерживаемые машинным обучением и искусственным интеллектом, позволили анализировать текст из самых разных источников с гораздо большей точностью. Излишне говорить, что способность извлекать эмоции из текста - очень ценный инструмент, который может значительно повысить рентабельность инвестиций во многих компаниях.
Важность анализа настроений
Пол Хоффман, технический директор 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, что при преобразовании в бизнес-область может иметь огромное значение.
После завершения эксперимента пользователи могут делать новые прогнозы и загружать конвейер оценки, как и любые другие эксперименты с искусственным интеллектом без драйверов.
Заключение
Анализ настроений может сыграть решающую роль в области маркетинга. Это может помочь создать целевые сообщения бренда и помочь компании понять предпочтения потребителей. Эти идеи могут иметь решающее значение для увеличения охвата и влияния компании в целом ряде секторов.