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

В настоящее время у всех и их собак (без шуток) есть аккаунты в инстаграмм. Анализ настроений в твиттере очень распространен и широко проводится в наши дни. Но подписи в Instagram (текст, который пользователь пишет при публикации фотографии) - отличный источник текстовых данных, которые можно добывать и анализировать. Люди, как правило, предпочитают подписи в инстаграмм, которые часто совпадают с их настроением или состоянием.

Если вы просто хотите получить доступ к коду, Щелкните здесь.

Анализ настроений с помощью VADER

За последние несколько лет было введено множество пакетов, чтобы упростить реализацию анализа настроений. Для получения дополнительной информации о таких пакетах и ​​подробного сравнения, Прочтите эту статью на neptune.ai. VADER - один из таких пакетов.

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

Общее правило для алгоритма VADER:

Если оценка полярности ›0,05, предложение положительное.

Если полярность

Установка VADER

Установка VADER sentiment очень проста. Самый распространенный способ - это просто установка с помощью pip.

> pip install vaderSentiment

Чтобы проверить успешность установки:

from vaderSentiment.vaderSentiment import SentimentIntensityAnalyzer

Если ошибки нет, то все готово! Если нет, ищите другие методы. Вот их репозиторий на Github.

Сбор подписей в Instagram

Теперь этот процесс, очевидно, будет работать только с публичными аккаунтами, поскольку будут видны только их подписи к аккаунтам. Процесс работает следующим образом:

  • Получение дескриптора Instagram от пользователя
  • Открытие страницы с помощью URL
  • Как найти заголовок Instagram
  • Очистка 10 последних подписей со страницы.

Здесь используется библиотека python beautifulsoup. Он широко известен тем, что извлекает данные из файлов HTML или XML. Он может перемещаться, хранить, перебирать веб-страницу для извлечения требуемых данных. Перед тем, как на самом деле очистить данные, всегда полезно проверить html-компоненты веб-страницы.

После определения полей и понимания формата HTML-страницы для очистки данных использовался следующий код:

Анализ настроений

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

Функция ниже используется для анализа настроений:

Приведенная ниже диаграмма упрощает понимание составных оценок (полярности).

Результаты

Когда код запускается, программа извлекает последние 10 подписей Instagram с указанного имени пользователя.

Можно выбрать любую открытую учетную запись Instagram, здесь выбирается официальная учетная запись Instagram «@instagram». Часто они пишут длинные подписи.

Программа извлекает последние подписи и анализирует их. Вот пример:

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

Приведенный выше снимок - еще один пример анализа подписи, но он короче предыдущего. Тем не менее процедура повторяется.

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

Наконец, в конце выполнения программы мы получаем результат в виде:

Пользователь на положительной стороне (если общая полярность положительная)

OR

Пользователь находится на отрицательной стороне (если общая полярность отрицательная)

Этот пост - всего лишь обзор этого небольшого проекта. Полный код можно найти ниже:



Дальнейшие действия:

Эта модель очень наивная. Но проект можно расширить, и для дальнейшего анализа можно использовать более мощные библиотеки, такие как Spacy. Его можно использовать для поиска фраз или слов, которые могут быть извлечены из предложений, используемых в подписях Instagram, которые соответствуют определенным эмоциям (счастливым, грустным и т. Д.).