Получите все, что вам может понадобиться, из твита, используя пакет tweepy python, и отформатируйте его в фрейм данных pandas.

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

Прошлые исследования также означают существующие наборы данных — так зачем беспокоиться о потоке данных Twitter? Ответ, конечно же, заключается в том, что не каждая обувь подходит, и существующие наборы данных могут не соответствовать целям или масштабу вашего исследования.

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

Суть с полным кодом, представленным в этой статье, прилагается в конце. Полный материал к статье можно найти в этом репозитории GitHub, помимо ссылки на видео.

1. С чего начать?

Прежде всего, убедитесь, что у вас есть учетная запись Twitter.

Для подключения к Twitter API вам понадобится учетная запись разработчика Twitter и учетные данные вашей учетной записи. Доступ к вашим ключам и токенам осуществляется через Приложения и Сведения о приложении, где вы также можете восстановить их, если это необходимо.
Вот что появится на вашем экране в процессе:

Вам нужно будет сохранить свои учетные данные, чтобы поместить их в соответствующее место в коде, как вы можете видеть на снимке экрана ниже:

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

2. Установки и импорт

Вторая основная вещь — это установки и импорт. Наиболее важным из них является tweepy, пакет Python, который помогает нам подключаться к потоку данных Twitter, используя наши учетные данные через Twitter API. Импорт JSON также важен, поскольку структура твита является объектом JSON; Панды помогают нам анализировать строку JSON в виде табличного набора данных, который более удобен. Поскольку Twitter API ограничен по времени, пакет time python также очень важен для вставки пятнадцатиминутного тайм-аута между пакетами извлеченных твитов.

3. Знакомство с API-поиском

Вот синтаксис использования tweepy.Cursor для подключения к Twitter API:

Tweepy получает несколько аргументов в каждом поиске, позволяет их просмотреть:

  • Запросы — термины, которые вы ищете?
  • Фильтры — что вы не хотите получать
  • Tweet_mode — 140 или 280 символов?
  • Include_rts — тоже хотите ретвитов?
  • Lang Items — на каком языке вы ищете?

Кроме того, у него есть ограничения по времени — примерно 4000 твитов за 15 минут, а это означает, что мы должны учитывать время из 15 минут в нашей функции, используемой для получения твитов с помощью time.sleep(900) .

4. Твитнуть данные

Расширенный твит

"текст": "Не можете уместить свой твит в 140 символов? 🤔\n\nМы пробуем что-то новое с небольшой группой, и увеличиваем хар… https://t.co/y1rJlHsVB5',

«расширенный_твит»: {

"full_text": «Не можете уместить твит в 140 символов? 🤔\n\nМы пробуем что-то новое с небольшой группой и увеличиваем лимит символов до 280! В восторге от возможностей? Читайте наш блог, чтобы узнать, как все это складывается. 👇\nhttps://t.co/C6hjsB9nbL',

Вот пример твита из моей темы:

Что бы вы хотели получить из этого примера твита?

  • Текст
  • смайлики
  • Даты
  • Ретвитнуть
  • Упоминания
  • пользователи
  • Хэштеги
  • Отвечая на
  • Нравится
  • URL-адреса
  • Изображений

5. Пользовательские данные

Какие поля вы хотели бы получить из профиля?

  • Имя
  • Ник
  • Последователи
  • Следующий
  • Присоединился в
  • Нравится
  • Твиты

Ниже приведен список полей из объекта твита, который создает нужный фрейм данных (полный код в конце этой статьи):

6. Глубоко в твите

Довольно ужасно. Несмотря на то, что он небольшой, вы можете увидеть, как маленькие смайлики появляются несколько раз в разных местах — это означает, что полный текст твита может появляться в разных местах строки JSON. Это также означает, что использование tweet_mode=’extended’, text.append(tweet.full_text) или использование text в качестве запасного варианта — недостаточно. Вот решение для его преодоления:

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

Получить информацию о пользователе можно следующим образом:

Получение данных об упоминаниях и хэштегах:

В ответ на:

Получение данных о сторонах в разговоре позволяет анализировать данные с использованием методологий графа и SNA с использованием пакетов Python, таких как NetworkX.

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

Некоторые твиты могут быть конфиденциальными; вам может быть интересно узнать, что Твиттер пометил их как таковые, особенно когда речь идет о деликатных или спорных темах. Вот как получить чувствительные теги:

7. Работа с смайликами

Кодирование может создать мусор

Одна из проблем, которую я обнаружил после извлечения 8 ГБ твитов, заключается в том, что где-то между всеми кодировками все нечитаемо и содержит странные символы и тарабарщину. Я подозревал, что единственной возможной причиной были смайлики.
Посмотрите на следующий пример из StackOverflow:

Я сохранил смайлики в качестве еще одной функции во фрейме данных, чтобы решить проблемы с кодировкой. Ниже приведен полный код, включающий пакет demoji python, интерпретирующий эмодзи. Более подробную информацию о пакете demoji python и других пакетах python, интерпретирующих эмодзи, можно найти здесь.

Я надеюсь, что вы найдете эту статью полезной. Вот полный код, описанный в этой статье: