Token-sentiment scoring: розробка системи оцінки тональності токенів

Токен падає на 12% за годину. Причина — пост у Telegram, який через 40 хвилин спростували, але втрати вже неминучі. Token-specific sentiment scoring вирішує це завдання: він аналізує публікації про конкретний токен, а не весь ринок. Ми будуємо такі системи — від парсингу до realtime-алертів. Наші кл

Напрямки блокчейн-розробки

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1452
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1310
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1005
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1270
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    719
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    1012

Токен падає на 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% за дві доби. Без системи вони б пропустили цей сигнал через шум.

Як налаштувати систему під свої токени?

Процес калібрування включає кілька кроків:

  1. Передайте нам список токенів та їх синонімів — база поповниться.
  2. Виберіть джерела даних: Twitter, Reddit, Telegram, форуми.
  3. Визначте аспекти для ABSA: технологія, команда, ціна, спільнота, регуляторика — можна додати свої.
  4. Встановіть пороги алертів: spike, divergence, anomalous volume.
  5. Проведіть 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+ проєктів у криптоаналітиці.