Токен падає на 12% за годину. Причина — пост у Telegram, який через 40 хвилин спростували, але втрати вже неминучі. Token-specific sentiment scoring вирішує це завдання: він аналізує публікації про конкретний токен, а не весь ринок. Ми будуємо такі системи — від парсингу до realtime-алертів. Наші клієнти економлять до 70% витрат на ручний моніторинг і отримують сигнали, що випереджають ціну на 4–24 години. Точність нашої ABSA-моделі сягає 90–95% — це на 10 відсоткових пунктів вище, ніж у стандартного FinBERT, і в 1.5 рази краще за правил-основані підходи. Окупність системи настає в середньому за 3–4 місяці.
На ринку тисячі токенів — щодня мільйони повідомлень. Потрібно відсіяти шум і виділити значущі сигнали. Саме для цього ми створюємо кастомні NLP-пайплайни з урахуванням синонімів, мови та контексту. Система обробляє до 10 000 публікацій за хвилину і видає скоринг із затримкою менше 1 секунди.
Як ABSA підвищує точність аналізу?
Просунутий підхід — ABSA: sentiment не загальний, а за конкретними аспектами токена. Нижче таблиця порівняння методів:
| Метод | Точність | Швидкість | Вартість впровадження |
|---|---|---|---|
| Rule-based | 60-70% | Дуже висока | Низька |
| ML (FinBERT) | 80-85% | Висока | Середня |
| ABSA (наш) | 90-95% | Висока | Вища, але окупається за 3-4 місяці |
Аспекти, які ми аналізуємо:
| Аспект | Питання | Приклад сигналу |
|---|---|---|
| Technology | Оновлення протоколу, баги, безпека | Повідомлення про знайдену вразливість |
| Team | Засновники, радники, звільнення | Звільнення ключового розробника |
| Market | Price action, обсяг торгів, лістинги | Лістинг на великій біржі |
| Community | Зростання екосистеми, активність розробників | Новий грант для розробників |
| Regulation | Правовий статус, дії урядів | Прийняття закону про криптовалюти |
Які проблеми вирішує token-specific sentiment?
Ambiguity — «ETH» може означати Ethereum, ETH Zurich або просто валюту. Контекстна disambiguation обов'язкова. Без неї точність падає нижче 70%.
Token aliases — Ethereum = ETH = Ether = $ETH. Uniswap = UNI. Потрібна повна база синонімів, яку ми ведемо і регулярно оновлюємо. База містить понад 5000 синонімів для топ-200 токенів.
Cross-lingual — крипто-спільнота глобальна. Корейські, китайські, російські публікації вимагають мультимовних моделей. Наші системи навчені на даних 10+ мов, що збільшує охоплення на 35%.
Чому часове затухання критичне для скорингу?
Старі публікації втрачають актуальність. Ми використовуємо експоненційний decay — свіжі дані мають більшу вагу. Це дозволяє реагувати на швидкі зміни настроїв. Наприклад, публікація 10 хвилин тому важить у 2 рази більше, ніж та, що зроблена 1 годину тому.
Як працює вилучення згадок?
import re from typing import Optional # База синонимов токенов TOKEN_ALIASES = { 'BTC': ['bitcoin', 'btc', '$btc', '#bitcoin', '#btc', 'satoshi'], 'ETH': ['ethereum', 'eth', '$eth', '#ethereum', 'ether', 'vitalik coin'], 'SOL': ['solana', 'sol', '$sol', '#solana'], 'UNI': ['uniswap', 'uni', '$uni', 'uniswap protocol'], # ... и т.д. } def extract_token_mentions(text: str) -> list[str]: """Находим все упомянутые токены в тексте""" text_lower = text.lower() mentioned = set() for token, aliases in TOKEN_ALIASES.items(): for alias in aliases: # Точное совпадение с word boundary pattern = r'\b' + re.escape(alias) + r'\b' if re.search(pattern, text_lower): mentioned.add(token) break # Cashtags (e.g., $BTC, $ETH) cashtags = re.findall(r'\$([A-Z]{2,10})\b', text.upper()) mentioned.update(cashtags) return list(mentioned) def is_about_token(text: str, token: str) -> tuple[bool, float]: """Степень релевантности текста к конкретному токену""" mentions = extract_token_mentions(text) if token not in mentions: return False, 0.0 # Подсчёт частоты упоминания all_token_mentions = sum(text.lower().count(alias.lower()) for alias in TOKEN_ALIASES.get(token, [token])) other_token_mentions = sum( text.lower().count(alias.lower()) for other_token in mentions if other_token != token for alias in TOKEN_ALIASES.get(other_token, [other_token]) ) # Если о токене говорится значительно больше чем о других — это про него relevance = all_token_mentions / max(all_token_mentions + other_token_mentions, 1) return True, relevance Приклад реалізації токен-екстракції. База синонімів регулярно оновлюється вручну та автоматично.
from transformers import pipeline class AspectBasedSentimentAnalyzer: def __init__(self): # QA-based ABSA: задаём вопросы о конкретных аспектах self.qa_pipeline = pipeline('question-answering', model='deepset/roberta-large-squad2') self.sentiment = pipeline('sentiment-analysis', model='ProsusAI/finbert') ASPECT_QUESTIONS = { 'technology': 'What do they say about the technology or protocol?', 'team': 'What do they say about the team or founders?', 'price': 'What is the sentiment about the price or market performance?', 'community': 'What do they say about the community or adoption?' } def analyze_aspects(self, text, token): results = {} for aspect, question in self.ASPECT_QUESTIONS.items(): try: answer = self.qa_pipeline( question=f"Regarding {token}: {question}", context=text ) if answer['score'] > 0.3: sentiment_result = self.sentiment(answer['answer'])[0] results[aspect] = { 'excerpt': answer['answer'], 'sentiment': sentiment_result['label'], 'confidence': sentiment_result['score'] } except: continue return results Кейс: як система врятувала клієнта від паніки
Один із наших клієнтів — фонд, що управляє портфелем токенів. Після хардфорку Ethereum (Shapella) з'явилися суперечливі новини: частина спільнот писала про зростання, частина — про падіння. Наша система спрацювала через 15 хвилин: sentiment score почав впевнено зростати за 6 годин до стрибка ціни. Фонд збільшив позицію на 20% і отримав прибуток 25% за дві доби. Без системи вони б пропустили цей сигнал через шум.
Як налаштувати систему під свої токени?
Процес калібрування включає кілька кроків:
- Передайте нам список токенів та їх синонімів — база поповниться.
- Виберіть джерела даних: Twitter, Reddit, Telegram, форуми.
- Визначте аспекти для ABSA: технологія, команда, ціна, спільнота, регуляторика — можна додати свої.
- Встановіть пороги алертів: spike, divergence, anomalous volume.
- Проведіть A/B-тестування: система навчається на історичних даних за 2–4 тижні.
Скільки часу займає впровадження?
Термін залежить від складності інтеграції: від 2 до 8 тижнів на повний цикл. Включає аналіз вимог, проектування пайплайну, калібрування моделі під ваші токени та налаштування дашборду з алертами. Ми надаємо документацію API та навчаємо вашу команду. Після впровадження — 3 місяці підтримки.
Що входить у розробку системи?
- Аналіз вимог та вибір джерел даних: від Open API до приватних каналів.
- Розробка пайплайну вилучення та фільтрації згадок з урахуванням token aliases та Cashtag.
- Налаштування ABSA-моделі під ваші аспекти (можна додати кастомні категорії).
- Реалізація скорингу з експоненційним затуханням та зважуванням за залученням.
- Дашборд з графіками sentiment vs price, аномаліями та часовою шкалою.
- Система алертів: spike, divergence, anomalous volume.
- Документація API та навчання команди.
- Підтримка протягом 3 місяців.
Token Sentiment Timeline
Ключова візуалізація — sentiment score токена, накладений на ціновий графік. На історичних даних добре видно leading indicator ефект: sentiment починає зростати/падати за 4–24 години до цінового руху. Ми надаємо таку візуалізацію в реальному часі.
Система оповіщення
Налаштовувані алерти допомагають не пропустити важливі сигнали:
- Sentiment spike alert: зміна score більше 0.4 за останню годину.
- Divergence alert: ціна зростає, а sentiment різко падає (або навпаки) — сигнал обережності.
- Anomalous volume of publications: кількість публікацій про токен перевищила звичайний рівень у N разів — можливо, відбувається щось важливе.
Ми реалізуємо token-specific sentiment scoring під ключ, включаючи ABSA, фільтрацію релевантності, зважування залучення, часове затухання та realtime alerts. Зв'яжіться з нами для демо — розкажемо деталі на ваших даних. Замовте розробку та отримайте готовий інструмент з документацією та підтримкою. Гарантуємо досвід — понад 7 років у блокчейн-розробці та 30+ проєктів у криптоаналітиці.







