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

Введение

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

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

Постановка задачи

Построить модель для анализа тональности неструктурированных отзывов и разделения текстовых данных на основе тональности отзывов.

Описание

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

Набор данных

Здесь, в этом проекте, мы используем экспериментальный тип данных, основанный на отзывах пользователей об Amazon Alexa.

Структура проекта

  1. Исследование данных
  2. Предварительная обработка
  3. Обучайте свои модели
  4. Протестируйте свои модели
  5. Вывод

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

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

Облако слов

Выполнить очистку данных

Очистка данных — это процесс исправления или удаления неверных, поврежденных, неправильно отформатированных, дублирующихся или неполных данных в наборе данных.

Удаление столбцов

Удалите те ненужные столбцы, которые нам не нужны для оценки наших моделей.

Удаление стоп-слов

Стоп-слова — это набор часто используемых слов в языке. Примерами стоп-слов в английском языке являются «a», «the», «is», «are» и т. д. Стоп-слова обычно используются в анализе текста и обработке естественного языка (NLP) для удаления слов, которые так часто используются. привыкли, что они несут очень мало полезной информации.

Удалить знаки препинания

Обычно в задачах НЛП мы используем удаление пунктуации из корпуса.

Выполнение векторизации счета (токенизация)

CountVectorizer — отличный инструмент, предоставляемый библиотекой scikit-learn в Python. Он используется для преобразования заданного текста в вектор на основе частоты (количества) каждого слова, встречающегося во всем тексте. Это полезно, когда у нас есть несколько таких текстов, и мы хотим преобразовать каждое слово в каждом тексте в векторы (для использования в дальнейшем анализе текста).

Теперь данные готовы для анализа!

Моделирование

Задача анализа настроений может быть решена с помощью традиционного подхода машинного обучения: Bag of Words (BoW) + нелинейный классификатор. Мы кодируем каждое предложение в однократный вектор, состоящий из 0 и 1 размера общего словарного запаса набора данных. Слова, которые присутствуют в предложении, представлены 1 (или количеством вхождений в предложении для представления BoW), а все остальные получают 0. В итоге мы получаем очень разреженные и очень длинные векторы, по одному на каждое предложение.

Здесь, в нашей задаче анализа настроений, мы использовали различные модели машинного обучения:

  1. Наивный байесовский классификатор

2. Классификатор логистической регрессии

3. K-ближайшие соседи

4. СВК

5. Классификатор дерева решений

6. Классификатор случайного леса

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

Результаты

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

Наивный байесовский классификатор — 91,11 %
Классификатор логистической регрессии — 92,06 %
K-ближайшие соседи — 91,11 %
SVC — 92,7 %
Классификатор дерева решений — 90,16 %
Случайный Лесной классификатор — 90,79%

Где реализовать проект?

  • Предприятия и организации
  • Анализ бренда
  • Восприятие нового продукта
  • Поиск мнений на политические темы, фильмы и т.д.
  • Социальные сети: поиск общего мнения о последних горячих темах в городе.
  • Рекламные места

Вывод

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

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

Надеюсь, вы хорошо прочитали!