С июня 2020 года я больше не буду использовать Medium для публикации новых историй. Если хотите и дальше читать мои статьи, посетите мой личный блог: https://vallant.in.

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

Второй метод - это тот, который мы будем использовать сегодня. Это удобнее, потому что Twitter предлагает множество способов получать информацию со своих серверов. Вы можете искать твиты, используя хэштеги, ключевые слова, места, имена пользователей и т. Д. Кроме того, вы можете использовать те же фильтры из поиска Twitter, чтобы улучшить сбор данных.

Чтобы показать вам, как использовать Python для доступа к Twitter, я снова буду использовать пример выборов в Бразилии. В этом году мы, бразильцы, выбираем нового президента. Кампания очень поляризована с двумя кандидатами, которые одновременно являются самыми любимыми и ненавистными бразильским населением.

Допустим, мы будем использовать Twitter, чтобы найти твиты, в которых упоминаются оба кандидата: Хаддад и Болсонару. Как мы могли бы искать текст в Твиттере, который поможет нам построить модель машинного обучения, которая будет анализировать настроения? Давай сделаем это.

Создание приложения Twitter

Прежде всего, вы должны иметь доступ разработчика к Twitter и создать приложение, которое будет использоваться для подключения к Twitter API. Раньше это было проще, но теперь Twitter проверяет каждый запрос доступа разработчика. Вы должны отправить запрос здесь: https://developer.twitter.com/.

После того, как вас приняли, пора создать приложение. Вы можете обратиться к документации Твиттера, чтобы узнать, как это сделать. Когда вы закончите, запишите свои учетные данные (и не забудьте защитить их). Тебе понадобится:

  • Ключ API
  • Секретный ключ API
  • Токен доступа
  • Секрет токена доступа

Все это можно найти в сведениях о вашем приложении в разделе «Ключи и токены».

Использование Tweepy для подключения к Twitter API

Первое, что нужно сделать: импортировать Pandas, Tweepy и Jsonpickle. Затем вам нужно будет создать 4 переменные, каждая для ключа, который вы собрали для своего приложения.

Tweepy - это библиотека, которая поможет вам без проблем подключиться к Twitter API. Он поддерживает доступ к Twitter через OAuth. Jsonpickle - еще одна библиотека, используемая для работы с файлами JSON, которую мы и будем использовать здесь.

После определения ключей переменных давайте создадим функцию, которая будет подключаться к Twitter. Мы присвоим эту функцию переменной с именем api.

Что нам сейчас нужно, так это способ получить доступ к поиску в Твиттере и вернуть все твиты, которые соответствуют тому, что мы ищем. Затем нам нужно сохранить эти твиты в локальный файл, который мы преобразуем в Pandas DataFrame.

Итак, давайте начнем с создания функции, которая будет:

  • Создайте json файл, в котором будут храниться все твиты
  • Получите доступ к Twitter API, запросите его и верните твиты
  • Сохраните твиты в только что созданный файл.

Функция примет в качестве параметров:

  • filepath: где файл должен быть сохранен и его имя
  • api: объект api, который мы создали ранее
  • query: запрос, который будет использоваться Twitter для получения твитов.
  • max_tweets: в вашей учетной записи разработчика установлено ограничение на количество запросов, которые вы можете выполнять каждые 15 минут. Таким образом, этот параметр устанавливает только ограничение на количество твитов, которое мы можем получить, но на него могут влиять ограничения, налагаемые Twitter на вашу учетную запись, и количество доступных твитов для ваших критериев поиска.
  • lang: язык твитов. Мы будем использовать португальский.

Это наша функция:

И это наш запрос. Я использую только хэштеги, относящиеся к обоим кандидатам (за или против).

Вот и все! Теперь ваши твиты должны быть сохранены в файле. Обычно мне нравится делать резервную копию файла перед преобразованием во фрейм данных. Итак, сделайте это сейчас.

Откройте ваш файл сейчас. Вы увидите что-то вроде этого:

Каждая строка в нашем файле - это настоящий твит, сохраненный в формате JSON. Итак, наш следующий шаг - создать функцию, которая:

  • Откроем наш файл JSON
  • Будет проходить итерацию по файлу и декодировать каждую строку, чтобы мы могли прочитать JSON.
  • Извлечет информацию из JSON и преобразует ее в списки
  • Списки будут объединены в фрейм данных Pandas.

Что действительно полезно в получении твитов таким способом, так это то, что у вас есть доступ к метаданным, содержащимся в каждом твите. Список с доступными метаданными можно найти здесь: https://developer.twitter.com/en/docs/tweets/data-dictionary/overview/tweet-object.html. Вы можете выбрать наиболее важные для вас.

Мы сделали! Просто проверьте свой фрейм данных с помощью функции head(). Если хотите, можете сохранить для дальнейшего использования. Вам просто нужна функция to_csv(), предоставляемая Pandas.