Рубрики
Без рубрики

Как построить анализатор настроения Twitter в Python с помощью TextBlob

Автор оригинала: FreeCodeCapm Team.

Arun Mathew Kurian

Этот блог основан на видео Анализ настроений Twitter – Узнайте Python для науки о данных # 2 Siraj Raval. В этой задаче мы будем строить анализатор настроения, которые проверяют, являются ли твиты о предмете отрицательным или положительным. Мы будем использовать TextBlob библиотеки Python для этого.

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

Анализ настроений может быть выполнен во многих различных способах. Многие бренды и маркетологи используют инструменты на основе ключевых слов, которые классифицируют данные (I.E. Социальные, новости, обзор, блог и т. Д.) Как положительный/отрицательный/нейтральный.

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

Может быть два подхода к анализу настроения.

1. Методы на основе лексиконов. 2. Методы на основе машинного обучения.

В этой проблеме мы будем использовать метод на основе лексикома.

Методы на основе лексикоза определяют список положительных и негативных слов, с валентностью – (например, «приятно»: +2, «Хорошо»: +1, «ужасный»: -1,5 и т. Д.). Алгоритм смотрит вверх по тексту, чтобы найти все известные слова. Затем он сочетает в себе свои индивидуальные результаты, суммируя или усреднение. Некоторые расширения могут проверить некоторые грамматические правила, такие как отрицательный модификатор или модификатор настроения (например, слово «но», в котором весит значения настроения в тексте по-разному, подчеркивают конец текста).

Давайте построим анализатор сейчас.

API Twitter

Прежде чем начать кодирование, нам нужно зарегистрироваться для API Twitter https://apps.twitter.com/ . Отказ Здесь нам нужно зарегистрировать приложение для генерации различных клавиш, связанных с нашим API. API Twitter можно использовать для выполнения многих действий, таких как создание и поиск.

Теперь после создания приложения мы можем начать кодирование.

Нам нужно установить два пакета:

Этот пакет будет использоваться для обработки API Twitter.

Этот пакет будет использоваться для анализа настроения.

sentiment_analyzer.py

import tweepyfrom textblob import TextBlob

Нам нужно объявить переменные для хранения различных ключей, связанных с API Twitter.

consumer_key = '[consumer_key]'
consumer_key_secret = '[consumer_key_secret]'
access_token = '[access_token]'
access_token_secret = '[access_token_secret]'

Следующим шагом является создание связи с API Twitter, используя Tweepy с этими токенами.

Tweepy

Tweepy поддерживает аутентификацию ОАУТ. Аутентификация обрабатывается Tweepy.oauthhandler класс.

OauthHandler Экземпляр должен быть создан путем передачи токена потребителя и секрет.

На этом экземпляре AUTH мы позвоним на Set_access_Token, передавая Access_Token и Access_Token_Secret.

Наконец, мы создаем наш Tweepy API-экземпляр, передавая этот экземпляр AUTH в функцию API Tweepey.

auth = tweepy.OAuthHandler(consumer_key, consumer_key_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)

Теперь мы можем найти Twitter для любой темы, используя метод поиска API.

public_tweets = api.search('Dogs')

Теперь мы будем получать все твиты, связанные с темой «Собаки». Мы можем выполнить анализ настроений, используя библиотеку TextBlob.

TextBlob.

TextBlob это библиотека Python (2 и 3) для обработки текстовых данных. Он предоставляет простую API для дайвинга в общепринятые задачи обработки натурального языка (NLP), таких как часть-речевая метка, экстракция фразов существительных, анализ настроения, классификация, перевод и многое другое.

TextBloB может быть создан следующим образом (пример, а не частью исходного кода):

example = TextBlob("Python is a high-level, general-purpose programming language.")

И токенизация Может выполняться следующими методами:

слова : возвращает слова текста

Применение:

example.words

Предложения: Возвращает предложения текста

Применение:

example.sentences

Часть от речевого метки

Часть речевых тегов можно получить через Теги имущество.

wiki.tags[('Python', 'NNP'), ('is', 'VBZ'), ('a', 'DT'), ('high-level', 'JJ'), ('general-purpose', 'JJ'), ('programming', 'NN'), ('language', 'NN')]

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

Свойство настроения возвращает названный кортеж формы настроения (полярность, субъективность). Оценка полярности – это поплавок в пределах диапазона [-1.0, 1,0]. Субъективность представляет собой поплавок в диапазоне [0,0, 1,0], где 0,0 очень объективна, а 1.0 очень субъективно.

Теперь вернемся к коду.

Мы можем повторить publice_tweets Массив и проверьте настроение текста каждого Tweet на основе полярности.

for tweet in public_tweets:    print(tweet.text)    analysis = TextBlob(tweet.text)    print(analysis.sentiment)    if analysis.sentiment[0]>0:       print 'Positive'    elif analysis.sentiment[0]<0:       print 'Negative'    else:       print 'Neutral'

Теперь мы запускаем код, используя следующее:

И мы получаем выход:

Мы видим, что настроение Tweet отображается.

Это пример того, как анализ настроений может быть сделан на данных из социальных сетей, таких как Twitter. Я надеюсь, что вы найдете это полезным!

Найти код в https://github.com/amkurian/twitter_sentiment_challenge.