Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
40_алгоритмов_Python.pdf
Скачиваний:
8
Добавлен:
07.04.2024
Размер:
13.02 Mб
Скачать

Практическийпример—анализтональноститвитовврежимереальноговремени 303

ПРАКТИЧЕСКИЙ ПРИМЕР — АНАЛИЗ ТОНАЛЬНОСТИ ТВИТОВ В РЕЖИМЕ РЕАЛЬНОГО ВРЕМЕНИ

Известно, что в Твиттере каждую секунду появляется почти 7000 твитов на самые разные темы. Попробуем создать анализатор эмоциональной окраски (или тональ­ ности), который будет улавливать эмоции в новостях из разных источников в режиме реального времени. Начнем с импорта необходимых библиотек.

1. Импортируем библиотеки:

import tweepy,json,time import numpy as np import pandas as pd

import matplotlib.pyplot as plt

from vaderSentiment.vaderSentiment import SentimentIntensityAnalyzer

analyzer = SentimentIntensityAnalyzer()

Используем следующие две библиотеки:

2.VADER (Valence Aware Dictionary and Sentiment Reasoner). Это один из рас­ пространенных инструментов анализа тональности на основе правил, раз­ работанный для социальных сетей. Для установки выполним следующее:

pip install vaderSentiment

3.Tweepy, представляющий собой API на языке Python для доступа к Twitter. Выполним команду:

pip install Tweepy

4.Следующий шаг немного сложнее. Необходимо сделать запрос на создание

учетной записи Twitter-разработчик, чтобы получить доступ к потоку твитов. Получив ключи API, можно представить их с помощью следующих пере­ менных:

twitter_access_token = <your_twitter_access_token> twitter_access_token_secret = <your_twitter_access_token_secret> twitter_consumer_key = <your_consumer_key> twitter_consumer_secret = <your_twitter_consumer_secret>

5.Далее настроим аутентификацию API Tweepy. Для этого предоставим ранее созданные переменные:

auth = tweepy.OAuthHandler(twitter_consumer_key, twitter_consumer_secret) auth.set_access_token(twitter_access_token, twitter_access_token_secret)

api = tweepy.API(auth, parser=tweepy.parsers.JSONParser())

304

Глава 11. Алгоритмы обработки данных

6.Начинается самое интересное. Зададим названия источников новостей, ко­ торые будем отслеживать для анализа тональности. Для этого примера вы­ браны следующие источники:

news_sources = ("@BBC", "@ctvnews", "@CNN","@FoxNews", "@dawn_com")

7.Теперь напишем основной цикл. Он начнется с пустого массива array_ sentiments, предназначенного для хранения тональностей. Затем пройдемся по всем пяти источникам новостей и соберем по 100 твитов в каждом. Далее рассчитаем полярность для каждого твита (рис. 11.3).

Рис. 11.3

8.Создадим график, который показывает полярность новостей из этих источ­ ников (рис. 11.4).

Практическийпример—анализтональноститвитовврежимереальноговремени 305

Рис. 11.4

9. Теперь обратимся к сводной статистике (рис. 11.5).

Рис. 11.5

Данные цифры суммируют тенденции эмоциональной окраски. Например, тональность новостей BBC выглядит наиболее позитивной, а канадский новост­ ной канал CTVNews, похоже, транслирует самые негативные эмоции.

306

Глава 11. Алгоритмы обработки данных

РЕЗЮМЕ

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

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

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