Анализ настроений: интуиция, стоящая за анализом настроений в 2022 году

Опубликовано: 2021-01-02

Оглавление

Введение

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

Для машин эта задача совсем другая. Чтобы усвоить значения текстов и предложений, машины полагаются на основы обработки естественного языка (NLP). Глубокое обучение для обработки естественного языка — это распознавание образов, применяемое к словам, предложениям и абзацам, почти так же, как компьютерное зрение — это распознавание образов, применяемое к пикселям изображения.

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

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

Изучите онлайн-курс по машинному обучению от лучших университетов мира. Заработайте программы Masters, Executive PGP или Advanced Certificate Programs, чтобы ускорить свою карьеру.

Читайте: Идеи проекта машинного обучения

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

Задачу анализа настроений можно разбить на простой алгоритм машинного обучения с учителем, где у нас обычно есть вход X , который входит в функцию прогнозирования для получения Затем мы сравниваем наш прогноз с истинным значением Y . Это дает нам стоимость, которую мы затем используем для обновления параметров Чтобы решить задачу извлечения настроений из ранее невидимого потока текстов, простейшим шагом является сбор помеченного набора данных с отдельными положительными и отрицательными настроениями. Этими настроениями могут быть: хороший отзыв или плохой отзыв, саркастическое замечание или несаркастическое замечание и т. д.

Следующим шагом является создание вектора размерности V , где Этот вектор словаря будет содержать каждое слово (ни одно слово не повторяется) , присутствующее в нашем наборе данных, и будет действовать как словарь для нашей машины, на который он может ссылаться. Теперь мы предварительно обрабатываем вектор словаря, чтобы удалить избыточность. Выполняются следующие шаги:

  1. Исключение URL-адресов и другой нетривиальной информации (которая не помогает определить смысл предложения)
  2. Токенизация строки в слова: предположим, у нас есть строка «Я люблю машинное обучение», теперь с помощью токенизации мы просто разбиваем предложение на отдельные слова и сохраняем его в списке как [I, love, machine, learning]
  3. Удаление стоп-слов вроде «и», «есть», «или», «я» и т. д.
  4. Стемминг: мы преобразуем каждое слово в его основу. Такие слова, как «настроить», «настроить» и «настроить», имеют семантически одно и то же значение, поэтому сокращение их до основной формы, то есть «tun», уменьшит размер словарного запаса.
  5. Преобразование всех слов в нижний регистр

Чтобы подытожить этап предварительной обработки, давайте рассмотрим пример: допустим, у нас есть положительная строка «Мне нравится новый продукт на upGrad.com» . Окончательная предварительно обработанная строка получается путем удаления URL-адреса, токенизации предложения в один список слов, удаления стоп-слов, таких как «I, am, the, at», а затем объединения слов «loving» с «lov» и «product». на «produ» и, наконец, преобразовать все это в нижний регистр, что приводит к списку [lov, new, produ] .

Извлечение признаков

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

Следовательно, предварительно обработанный список слов необходимо преобразовать в числовые значения. Это можно сделать следующим образом. Предположим, что задана компиляция строк с положительными и отрицательными строками, такими как (предположим, что это набор данных) :

Положительные строки Отрицательные строки
  • Я счастлив, потому что я изучаю НЛП
  • Я счастлив
  • Мне грустно, я не изучаю НЛП
  • Мне грустно

Теперь, чтобы преобразовать каждую из этих строк в числовой вектор размерности 3, мы создаем словарь для сопоставления слова и класса, в котором оно появилось (положительного или отрицательного) , с количеством раз, которое это слово появлялось в соответствующем классе.

Словарь Положительная частота Отрицательная частота
я 3 3
являюсь 3 3
счастливый 2 0
потому что 1 0
учусь 1 1
НЛП 1 1
печальный 0 2
нет 0 1

После создания вышеупомянутого словаря мы смотрим на каждую из строк по отдельности, а затем суммируем количество положительных и отрицательных частотных чисел слов, которые появляются в строке, оставляя слова, которые не появляются в строке. Возьмем строку «Мне грустно, я не изучаю НЛП» и сгенерируем вектор размерности 3.

«Мне грустно, я не изучаю НЛП»

Словарь Положительная частота Отрицательная частота
я 3 3
являюсь 3 3
счастливый 2 0
потому что 1 0
учусь 1 1
НЛП 1 1
печальный 0 2
нет 0 1
Сумма = 8 Сумма = 11

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

Следовательно, строка «Мне грустно, я не изучаю НЛП» может быть представлена ​​в виде вектора Число «1», присутствующее в индексе 0, является единицей смещения, которая останется «1» для всех последующих строк, а числа «8», «11» представляют собой сумму положительных и отрицательных частот соответственно.

Аналогичным образом все строки в наборе данных можно удобно преобразовать в вектор размерности 3.

Читайте также: Объяснение моделей машинного обучения

Применение логистической регрессии

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

Последние мысли

Кроме того, если вам интересно узнать больше о машинном обучении, ознакомьтесь с программой Executive PG IIIT-B и upGrad по машинному обучению и искусственному интеллекту, которая предназначена для работающих профессионалов и предлагает более 450 часов тщательного обучения, более 30 тематических исследований и заданий. , статус выпускника IIIT-B, более 5 практических практических проектов и помощь в трудоустройстве в ведущих фирмах.

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

Подать заявку на участие в программе расширенных сертификатов в области машинного обучения и глубокого обучения от IIITB