Навчання NLP-моделі для аналізу Reddit
Reddit — унікальне оточення: довгі дискусії, високоякісні аналітичні пости, DD (Due Diligence) аналізи проектів. На відміну відTwitter з його миттєвими реакціями, Reddit відображає більш зважені та довгострокові думки спільноти.
Ключові сабреддити
- r/CryptoCurrency (6M+): загальні дискусії, новини, sentiment
- r/Bitcoin (5M+): BTC-орієнтована спільнота
- r/ethfinance: високоякісні ETH дискусії
- r/defi: DeFi-орієнтований контент
- r/CryptoMoonShots: спекулятивні altcoin пости (високий шум)
- r/Buttcoin: скептики/критики (reverse sentiment індикатор)
Reddit API (PRAW)
import praw
from datetime import datetime
import asyncpraw # async версія
class RedditCryptoCollector:
def __init__(self, client_id, client_secret, user_agent):
self.reddit = asyncpraw.Reddit(
client_id=client_id,
client_secret=client_secret,
user_agent=user_agent
)
async def collect_subreddit_posts(self, subreddit_name, limit=100,
sort='new', time_filter='day'):
subreddit = await self.reddit.subreddit(subreddit_name)
posts = []
async for post in subreddit.top(time_filter=time_filter, limit=limit):
posts.append({
'id': post.id,
'title': post.title,
'text': post.selftext,
'score': post.score,
'upvote_ratio': post.upvote_ratio,
'num_comments': post.num_comments,
'created_utc': datetime.fromtimestamp(post.created_utc),
'author': str(post.author),
'subreddit': subreddit_name,
'flair': post.link_flair_text
})
return posts
Специфіка Reddit контенту
Reddit пости значно довші, ніж твіти. DD пости можуть містити 2000+ слів. Потребує:
-
Chunk-based processing: розділяємо довгий текст на чанки, класифікуємо кожен, агрегуємо.
-
Title vs body weighting: заголовок часто інформативніший. Вага = 2:1.
Reddit-specific сигнали
Upvote ratio: > 0.85 = консенсус позитивна. < 0.50 = контроверсійна.
Comment velocity: різкий ріст коментарів сигналізує про вірусний пост.
Hot algorithm: Reddit's hot score = (upvotes - downvotes) / (time_since_post)^gravity. Високий score = trending контент.
Due Diligence (DD) Аналіз
DD пости на Reddit — найцінніший джерело. Глибокий аналіз проектів, часто випереджає mainstream media.
DD detection: пости з флэром "DD" або ключовими словами ("tokenomics", "roadmap", "team analysis", "red flags").
Мониторинг конкретних токенів
Для кожного токена у watchlist моніторимо упоминання:
async def monitor_token_mentions(token_symbol, subreddits, lookback_hours=24):
search_terms = [token_symbol, get_token_name(token_symbol)]
mentions = []
for subreddit in subreddits:
posts = await search_subreddit(subreddit, ' OR '.join(search_terms),
lookback_hours)
for post in posts:
sentiment = analyzer.analyze(post['title'] + ' ' + post['text'][:200])
mentions.append({
'token': token_symbol,
'sentiment': sentiment['score'],
'engagement': calculate_reddit_engagement_score(post),
'subreddit': subreddit
})
if mentions:
avg_sentiment = np.average(
[m['sentiment'] for m in mentions],
weights=[m['engagement'] for m in mentions]
)
return avg_sentiment, len(mentions)
return 0, 0
Розроблення системи аналізу Reddit з PRAW-based збором, chunk-based NLP для довгих постів, DD виявленням, мониторингом упоминань токенів та агрегацією long-term sentiment індексу.







