Вопрос или проблема
Я пытаюсь выяснить, как узнать, сколько раз конкретное слово, предшествующее доллару (например, “$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 для удобства в дальнейшем анализе.
Сделав все вышеперечисленное, вы сможете более точно оценить упоминания конкретных криптовалютных тикеров, что поможет в сравнительном анализе. Надеюсь, это поможет вам в вашем исследовании.