Анализ настроений или анализ мнений заключается в анализе некоторых текстовых документов и прогнозировании их настроений или мнений на основе содержания документа. Анализ тональности, пожалуй, одно из самых популярных приложений для обработки естественного языка и анализа текста с огромным количеством веб-сайтов, книг и учебных пособий по этой теме. Как правило, анализ настроений лучше всего работает с субъективными текстами, где люди выражают мнения, чувства и свое настроение. С точки зрения реальной отрасли анализ настроений широко используется для анализа корпоративных опросов, опросов обратной связи, данных социальных сетей и обзоров фильмов, мест, товаров и многого другого. Идея состоит в том, чтобы анализировать и понимать реакцию людей на конкретную сущность и предпринимать проницательные действия, основанные на их настроении.
Введение
Анализ тональности — это метод, с помощью которого вы можете проанализировать фрагмент текста, чтобы определить тональность, стоящую за ним. Для достижения этой цели он сочетает машинное обучение и обработку естественного языка (NLP). Используя базовый анализ тональности, программа может понять, является ли тональность фрагмента текста положительной, отрицательной или нейтральной.
Это мощная техника искусственного интеллекта, имеющая важные бизнес-приложения. Например, вы можете использовать Анализ настроений для анализа отзывов клиентов. Вы можете собирать отзывы клиентов через различные среды, такие как Twitter, Facebook и т. д., и запускать на них алгоритмы анализа настроений, чтобы понять отношение ваших клиентов к вашему продукту.
Постановка задачи
Построить модель для анализа тональности неструктурированных отзывов и разделения текстовых данных на основе тональности отзывов.
Описание
Проект строит сквозную систему классификации настроений с нуля. Цель состоит в том, чтобы обучить модель, способную предсказывать настроение рецензии на фильм как положительное или отрицательное.
Набор данных
Здесь, в этом проекте, мы используем экспериментальный тип данных, основанный на отзывах пользователей об Amazon Alexa.
Структура проекта
- Исследование данных
- Предварительная обработка
- Обучайте свои модели
- Протестируйте свои модели
- Вывод
Предварительная обработка
Теперь мы рассмотрим некоторые графики, которые я использовал для предварительной обработки и изучения набора данных.
Облако слов
Выполнить очистку данных
Очистка данных — это процесс исправления или удаления неверных, поврежденных, неправильно отформатированных, дублирующихся или неполных данных в наборе данных.
Удаление столбцов
Удалите те ненужные столбцы, которые нам не нужны для оценки наших моделей.
Удаление стоп-слов
Стоп-слова — это набор часто используемых слов в языке. Примерами стоп-слов в английском языке являются «a», «the», «is», «are» и т. д. Стоп-слова обычно используются в анализе текста и обработке естественного языка (NLP) для удаления слов, которые так часто используются. привыкли, что они несут очень мало полезной информации.
Удалить знаки препинания
Обычно в задачах НЛП мы используем удаление пунктуации из корпуса.
Выполнение векторизации счета (токенизация)
CountVectorizer — отличный инструмент, предоставляемый библиотекой scikit-learn в Python. Он используется для преобразования заданного текста в вектор на основе частоты (количества) каждого слова, встречающегося во всем тексте. Это полезно, когда у нас есть несколько таких текстов, и мы хотим преобразовать каждое слово в каждом тексте в векторы (для использования в дальнейшем анализе текста).
Теперь данные готовы для анализа!
Моделирование
Задача анализа настроений может быть решена с помощью традиционного подхода машинного обучения: Bag of Words (BoW) + нелинейный классификатор. Мы кодируем каждое предложение в однократный вектор, состоящий из 0 и 1 размера общего словарного запаса набора данных. Слова, которые присутствуют в предложении, представлены 1 (или количеством вхождений в предложении для представления BoW), а все остальные получают 0. В итоге мы получаем очень разреженные и очень длинные векторы, по одному на каждое предложение.
Здесь, в нашей задаче анализа настроений, мы использовали различные модели машинного обучения:
- Наивный байесовский классификатор
2. Классификатор логистической регрессии
3. K-ближайшие соседи
4. СВК
5. Классификатор дерева решений
6. Классификатор случайного леса
Вот пример того, как мы можем обучать наши модели машинного обучения, а также мы можем создать матрицу путаницы для каждой из ваших моделей.
Результаты
После успешного обучения и тестирования моделей машинного обучения на предварительно обработанном наборе данных мы получили следующие результаты:
Наивный байесовский классификатор — 91,11 %
Классификатор логистической регрессии — 92,06 %
K-ближайшие соседи — 91,11 %
SVC — 92,7 %
Классификатор дерева решений — 90,16 %
Случайный Лесной классификатор — 90,79%
Где реализовать проект?
- Предприятия и организации
- Анализ бренда
- Восприятие нового продукта
- Поиск мнений на политические темы, фильмы и т.д.
- Социальные сети: поиск общего мнения о последних горячих темах в городе.
- Рекламные места
Вывод
Мы видели, что анализ настроений можно использовать для анализа мнений в блогах, статьях, обзорах продуктов, веб-сайтах социальных сетей, веб-сайтах с обзорами фильмов, где третье лицо излагает свои взгляды. Мы также изучили подходы НЛП и машинного обучения для анализа настроений.
Мы видели, что анализ настроений имеет множество применений, и это важная область для изучения. Анализ настроений имеет большой коммерческий интерес, потому что компании хотят знать, как воспринимается их продукция, а также потенциальные потребители хотят знать, что думают существующие пользователи.
Надеюсь, вы хорошо прочитали!