Определение того, сколько раз конкретное слово упоминалось каждый день за определенный период времени на X.

Вопрос или проблема

Я пытаюсь выяснить, как узнать, сколько раз конкретное слово, предшествующее доллару (например, “$word”), упоминалось каждый день за последние x месяцев в Twitter (от 3 до 6 месяцев).
(пытаюсь провести сравнение частоты упоминаний криптовалютных тикеров).

Я попытался написать свой собственный код, используя API X developer, основная часть которого выглядит следующим образом:

query = "$BTC"
end_date = datetime.now()
start_date = end_date - timedelta(days=3)  # Последние 3 месяца

# Поиск твитов и агрегация ежедневных счетчиков
tweets = []
# for status in tweepy.Cursor(api.search_tweets, q=query, lang="en", since=start_date.date()).items():
#     tweets.append(status.created_at.date())

for status in tweepy.Cursor(api.search_tweets, q=query, lang="en", count=10).items():
    tweets.append(status.created_at.date())


# Преобразование в DataFrame и подсчет упоминаний в день
df = pd.DataFrame(tweets, columns=["date"])
daily_mentions = df["date"].value_counts().sort_index()

что приводит к следующему сообщению об ошибке

Forbidden: 403 Forbidden
453 - У вас в настоящее время есть доступ к подмножеству конечных точек X API V2 и ограниченным конечным точкам v1.1 (например, публикация медиа, oauth) только. Если вам нужен доступ к этой конечной точке, возможно, вам нужен другой уровень доступа. Вы можете узнать больше здесь: https://developer.x.com/en/portal/product

Я понимаю, что данные, которые я пытаюсь проанализировать, огромны, и мне нужна платная подписка. Но глядя на уровни, мне неясно, какой уровень позволит мне анализировать тикеры, которые упоминались бы миллионы раз в день. (Сомневаюсь, что уровень Pro для X developer API подойдет).

Я пробовал инструменты, такие как Brand24, но, как вы можете видеть на изображении ниже, инструменты, которые я пробовал, явно дают вам неверный подсчет (никак не могло быть, чтобы $btc упоминался только 100 раз и ровно 100 раз каждый день в прошлом месяце).

введите описание изображения здесь

Может быть, кто-то укажет мне правильное направление, как это сделать?

Ответ или решение

Чтобы выяснить, сколько раз конкретное слово, предшествующее символу доллара, например "$word", упоминалось каждый день за определенный период времени на платформе X (также известной как Twitter), необходимо рассмотреть несколько аспектов.

1. Изучение API X

Для начала, как вы уже отметили, у вас может быть ограниченный доступ к API. API X делится на несколько уровней, и для анализа большого объема данных вам может потребоваться подписка на уровень, который предоставляет доступ к необходимым эндпоинтам для поиска и извлечения масштабных данных.

  • Проверьте доступные уровни API: Например, уровень Business может предложить расширенный доступ, необходимый для обработки запросов с большим количеством исторических данных. Вам стоит обратиться к официальной документации, чтобы убедиться, что у вас есть доступ к нужным эндпоинтам.

2. Запрос в API для анализа

Ваш код в целом сформулирован правильно, но стоит учесть несколько моментов для корректной реализации. Чтобы избежать ошибки 403 Forbidden, убедитесь, что:

  • Ваши ключи API (API keys) правильно настроены и имеют необходимые разрешения.
  • Вы используете корректные параметры для запроса, такие как since и until, которые помогут ограничить временные рамки.

С учетом этого, вот улучшенный пример кода:

import tweepy
import pandas as pd
from datetime import datetime, timedelta

# Настройка аутентификации
auth = tweepy.OAuthHandler('your_consumer_key', 'your_consumer_secret')
auth.set_access_token('your_access_token', 'your_access_token_secret')
api = tweepy.API(auth)

query = "$BTC"
end_date = datetime.now()
start_date = end_date - timedelta(days=90)  # Последние 3 месяца

# Поиск твитов и агрегирование подсчета
tweets = []
for status in tweepy.Cursor(api.search_tweets, q=query, lang="en", since=start_date.strftime('%Y-%m-%d'), until=end_date.strftime('%Y-%m-%d')).items():
    tweets.append(status.created_at.date())

# Преобразование в DataFrame и подсчет упоминаний по дням
df = pd.DataFrame(tweets, columns=["date"])
daily_mentions = df["date"].value_counts().sort_index()  # Подсчет упоминаний

print(daily_mentions)

3. Альтернативные инструменты

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

  • Brandwatch или Sprout Social – эти платформы могут предоставлять более точные данные о частоте упоминания через специальные инструменты для анализа социальных сетей. Тем не менее, они также могут иметь свои лимиты.
  • Google Trends для анализа тенденций, связанный с криптовалютами на момент вашего поиска.

4. Анализ данных

Вы можете также рассмотреть возможность использования таких методов, как:

  • Регрессионный анализ для выявления зависимости между упоминаниями и изменением цен на криптовалюту.
  • Визуализация данных с помощью библиотек как matplotlib или seaborn для удобства в дальнейшем анализе.

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

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

Капча загружается...