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

1656514448 kak sozdat analizator nastroenij twitter v python s pomoshhyu

Арун Мэтью Курьян

Этот блог основан на видео «Анализ настроений в Twitter — Изучите Python для науки о данных №2» от Сираджа Раваля. В этой задаче мы создадим анализатор настроений, проверяющий, являются ли твиты об определенной теме негативными или положительными. Для этого мы будем использовать текстовый блок Python библиотеки.

tP3mRr3cKmn9tJ8tua6Rp2ffqIrJk0e9FwMM
изображение из google

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

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

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

К анализу настроений может быть два подхода.

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

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

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

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

API Twitter

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

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

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

pip установить tweepy

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

pip install textblob

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

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 поддерживает аутентификацию OAuth. Аутентификацию обрабатывает tweepy.OAuthHandler класс.

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

В этом экземпляре проверки подлинности мы будем вызывать функцию set_access_token, передав access_token и access_token_secret.

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

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 это библиотека Python (2 и 3) для обработки текста. Он предоставляет простой API для погружения в обычные задачи обработки природного языка (NLP), такие как тегирование части речи, выделение фразы существительных, анализ настроений, классификация, перевод и т.д.

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

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')]

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

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

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

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

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'

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

python sentiment_analyzer.py

и получаем результат:

PE7et-Tuo1r2fw06stPrG2Dq4KgWlFA0pHaA

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

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

Найдите код по адресу

Добавить комментарий

Ваш адрес email не будет опубликован.