Анализ настроений: интуиция, стоящая за анализом настроений в 2022 году
Опубликовано: 2021-01-02Оглавление
Введение
Текст является важнейшим средством восприятия информации для человека. Большая часть интеллекта, получаемого людьми, достигается за счет изучения и понимания смысла текстов и предложений вокруг них. После определенного возраста у людей вырабатывается внутренний рефлекс, позволяющий понять вывод любого слова/текста, даже не подозревая об этом.
Для машин эта задача совсем другая. Чтобы усвоить значения текстов и предложений, машины полагаются на основы обработки естественного языка (NLP). Глубокое обучение для обработки естественного языка — это распознавание образов, применяемое к словам, предложениям и абзацам, почти так же, как компьютерное зрение — это распознавание образов, применяемое к пикселям изображения.
Ни одна из этих моделей глубокого обучения не понимает текст в человеческом смысле; скорее, эти модели могут отображать статистическую структуру письменного языка, чего достаточно для решения многих простых текстовых задач. Анализ настроений является одной из таких задач, например: классификация настроений строк или обзоров фильмов как положительных или отрицательных.
Они также имеют широкое применение в промышленности. Например: компания, производящая товары и услуги, хотела бы собрать данные о количестве положительных и отрицательных отзывов, которые она получила для конкретного продукта, чтобы работать над жизненным циклом продукта и улучшить свои показатели продаж и собрать отзывы клиентов.
Изучите онлайн-курс по машинному обучению от лучших университетов мира. Заработайте программы Masters, Executive PGP или Advanced Certificate Programs, чтобы ускорить свою карьеру.
Читайте: Идеи проекта машинного обучения

Предварительная обработка
Задачу анализа настроений можно разбить на простой алгоритм машинного обучения с учителем, где у нас обычно есть вход X , который входит в функцию прогнозирования для получения Затем мы сравниваем наш прогноз с истинным значением Y . Это дает нам стоимость, которую мы затем используем для обновления параметров Чтобы решить задачу извлечения настроений из ранее невидимого потока текстов, простейшим шагом является сбор помеченного набора данных с отдельными положительными и отрицательными настроениями. Этими настроениями могут быть: хороший отзыв или плохой отзыв, саркастическое замечание или несаркастическое замечание и т. д.
Следующим шагом является создание вектора размерности V , где Этот вектор словаря будет содержать каждое слово (ни одно слово не повторяется) , присутствующее в нашем наборе данных, и будет действовать как словарь для нашей машины, на который он может ссылаться. Теперь мы предварительно обрабатываем вектор словаря, чтобы удалить избыточность. Выполняются следующие шаги:
- Исключение URL-адресов и другой нетривиальной информации (которая не помогает определить смысл предложения)
- Токенизация строки в слова: предположим, у нас есть строка «Я люблю машинное обучение», теперь с помощью токенизации мы просто разбиваем предложение на отдельные слова и сохраняем его в списке как [I, love, machine, learning]
- Удаление стоп-слов вроде «и», «есть», «или», «я» и т. д.
- Стемминг: мы преобразуем каждое слово в его основу. Такие слова, как «настроить», «настроить» и «настроить», имеют семантически одно и то же значение, поэтому сокращение их до основной формы, то есть «tun», уменьшит размер словарного запаса.
- Преобразование всех слов в нижний регистр
Чтобы подытожить этап предварительной обработки, давайте рассмотрим пример: допустим, у нас есть положительная строка «Мне нравится новый продукт на 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 практических практических проектов и помощь в трудоустройстве в ведущих фирмах.