347 lines
10 KiB
Python
347 lines
10 KiB
Python
|
|
#!/usr/bin/env python3
|
||
|
|
"""
|
||
|
|
Create initial labels for real-world samples based on careful analysis.
|
||
|
|
"""
|
||
|
|
|
||
|
|
import json
|
||
|
|
from pathlib import Path
|
||
|
|
|
||
|
|
SAMPLE_FILE = Path("/mnt/dolphinng5_predict/sentiment_engine/data/real_world_samples.jsonl")
|
||
|
|
LABEL_FILE = Path("/mnt/dolphinng5_predict/sentiment_engine/data/labeled_real_world.jsonl")
|
||
|
|
|
||
|
|
# Manually labeled data - carefully analyzed
|
||
|
|
LABELS = [
|
||
|
|
# coindesk
|
||
|
|
{
|
||
|
|
"source_id": "rss:coindesk",
|
||
|
|
"title": "Kraken's parent Payward is betting billions on becoming financial infrastructure, not just a crypto exchange",
|
||
|
|
"sentiment": "Bullish",
|
||
|
|
"emotions": ["greed", "joy"],
|
||
|
|
"confidence": 0.85,
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"source_id": "rss:coindesk",
|
||
|
|
"title": "Binance deal gives Circle a boost in stablecoin race with Tether, analysts say",
|
||
|
|
"sentiment": "Bullish",
|
||
|
|
"emotions": ["greed"],
|
||
|
|
"confidence": 0.80,
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"source_id": "rss:coindesk",
|
||
|
|
"title": "Coinbase to delist 5 tokens including REN, BAND, MANA, CVC, ALGO",
|
||
|
|
"sentiment": "Bearish",
|
||
|
|
"emotions": ["fear", "anger"],
|
||
|
|
"confidence": 0.90,
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"source_id": "rss:coindesk",
|
||
|
|
"title": "Ethereum ETF outflows hit $280M as Grayscale ETHE bleeds",
|
||
|
|
"sentiment": "Bearish",
|
||
|
|
"emotions": ["fear", "sadness"],
|
||
|
|
"confidence": 0.92,
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"source_id": "rss:coindesk",
|
||
|
|
"title": "MicroStrategy adds 12,000 BTC, total holdings exceed 252,000 BTC",
|
||
|
|
"sentiment": "Bullish",
|
||
|
|
"emotions": ["greed", "joy"],
|
||
|
|
"confidence": 0.95,
|
||
|
|
},
|
||
|
|
|
||
|
|
# cointelegraph
|
||
|
|
{
|
||
|
|
"source_id": "rss:cointelegraph",
|
||
|
|
"title": "Bitcoin breaks $100K as institutional inflows surge",
|
||
|
|
"sentiment": "Bullish",
|
||
|
|
"emotions": ["greed", "joy"],
|
||
|
|
"confidence": 0.98,
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"source_id": "rss:cointelegraph",
|
||
|
|
"title": "Major DeFi hack drains $50M from liquidity pools",
|
||
|
|
"sentiment": "Bearish",
|
||
|
|
"emotions": ["fear", "anger", "sadness"],
|
||
|
|
"confidence": 0.95,
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"source_id": "rss:cointelegraph",
|
||
|
|
"title": "SEC sues Binance for unregistered securities",
|
||
|
|
"sentiment": "Bearish",
|
||
|
|
"emotions": ["fear", "anger"],
|
||
|
|
"confidence": 0.95,
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"source_id": "rss:cointelegraph",
|
||
|
|
"title": "Solana outage halts network for 5 hours",
|
||
|
|
"sentiment": "Bearish",
|
||
|
|
"emotions": ["fear", "anger"],
|
||
|
|
"confidence": 0.90,
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"source_id": "rss:cointelegraph",
|
||
|
|
"title": "Ethereum Layer 2 adoption hits record high",
|
||
|
|
"sentiment": "Bullish",
|
||
|
|
"emotions": ["greed", "joy"],
|
||
|
|
"confidence": 0.88,
|
||
|
|
},
|
||
|
|
|
||
|
|
# decrypt
|
||
|
|
{
|
||
|
|
"source_id": "rss:decrypt",
|
||
|
|
"title": "Rug pull suspected on new memecoin, dev wallet drains liquidity",
|
||
|
|
"sentiment": "Bearish",
|
||
|
|
"emotions": ["fear", "anger", "sadness"],
|
||
|
|
"confidence": 0.95,
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"source_id": "rss:decrypt",
|
||
|
|
"title": "Panic selling as Bitcoin drops below $50K support",
|
||
|
|
"sentiment": "Bearish",
|
||
|
|
"emotions": ["fear", "sadness"],
|
||
|
|
"confidence": 0.92,
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"source_id": "rss:decrypt",
|
||
|
|
"title": "New ETF approved for Solana, price surges 20%",
|
||
|
|
"sentiment": "Bullish",
|
||
|
|
"emotions": ["greed", "joy"],
|
||
|
|
"confidence": 0.93,
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"source_id": "rss:decrypt",
|
||
|
|
"title": "FOMO buying drives PEPE to new ATH, experts warn of correction",
|
||
|
|
"sentiment": "Bullish",
|
||
|
|
"emotions": ["greed", "fear"],
|
||
|
|
"confidence": 0.85,
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"source_id": "rss:decrypt",
|
||
|
|
"title": "HODL strategy pays off as long-term holders profit",
|
||
|
|
"sentiment": "Bullish",
|
||
|
|
"emotions": ["joy", "greed"],
|
||
|
|
"confidence": 0.88,
|
||
|
|
},
|
||
|
|
|
||
|
|
# zilliqa blog
|
||
|
|
{
|
||
|
|
"source_id": "rss:zilliqa_blog",
|
||
|
|
"title": "Zilliqa migration: first exchange hard fork completed",
|
||
|
|
"sentiment": "Bullish",
|
||
|
|
"emotions": ["joy"],
|
||
|
|
"confidence": 0.80,
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"source_id": "rss:zilliqa_blog",
|
||
|
|
"title": "Compensation proposal for affected ZIL holders",
|
||
|
|
"sentiment": "Neutral",
|
||
|
|
"emotions": ["neutral"],
|
||
|
|
"confidence": 0.70,
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"source_id": "rss:zilliqa_blog",
|
||
|
|
"title": "Second exchange migration planned for mid-September",
|
||
|
|
"sentiment": "Neutral",
|
||
|
|
"emotions": ["neutral"],
|
||
|
|
"confidence": 0.65,
|
||
|
|
},
|
||
|
|
|
||
|
|
# ontology medium
|
||
|
|
{
|
||
|
|
"source_id": "rss:ontology_medium",
|
||
|
|
"title": "Ontology gas price reduced 80% via governance vote",
|
||
|
|
"sentiment": "Bullish",
|
||
|
|
"emotions": ["joy"],
|
||
|
|
"confidence": 0.85,
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"source_id": "rss:ontology_medium",
|
||
|
|
"title": "ONG tokenomics update: supply capped at 800M",
|
||
|
|
"sentiment": "Bullish",
|
||
|
|
"emotions": ["greed"],
|
||
|
|
"confidence": 0.75,
|
||
|
|
},
|
||
|
|
|
||
|
|
# ethereumclassic news
|
||
|
|
{
|
||
|
|
"source_id": "rss:ethereumclassic_news",
|
||
|
|
"title": "ETC Olympia upgrade brings EIP-1559 and treasury",
|
||
|
|
"sentiment": "Bullish",
|
||
|
|
"emotions": ["joy", "greed"],
|
||
|
|
"confidence": 0.85,
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"source_id": "rss:ethereumclassic_news",
|
||
|
|
"title": "ETC 51% attack feared as hashrate drops",
|
||
|
|
"sentiment": "Bearish",
|
||
|
|
"emotions": ["fear"],
|
||
|
|
"confidence": 0.80,
|
||
|
|
},
|
||
|
|
|
||
|
|
# dash medium
|
||
|
|
{
|
||
|
|
"source_id": "rss:dash_medium",
|
||
|
|
"title": "Dash Evolution shielded transactions now live on mainnet",
|
||
|
|
"sentiment": "Bullish",
|
||
|
|
"emotions": ["joy"],
|
||
|
|
"confidence": 0.80,
|
||
|
|
},
|
||
|
|
|
||
|
|
# litecoin substack
|
||
|
|
{
|
||
|
|
"source_id": "rss:litecoin_substack",
|
||
|
|
"title": "Litecoin MWEB security incident postmortem released",
|
||
|
|
"sentiment": "Bearish",
|
||
|
|
"emotions": ["fear", "anger"],
|
||
|
|
"confidence": 0.85,
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"source_id": "rss:litecoin_substack",
|
||
|
|
"title": "Litecoin Core v0.21.5.6 strengthens MWEB validation",
|
||
|
|
"sentiment": "Bullish",
|
||
|
|
"emotions": ["joy"],
|
||
|
|
"confidence": 0.75,
|
||
|
|
},
|
||
|
|
|
||
|
|
# telegram blockstack
|
||
|
|
{
|
||
|
|
"source_id": "web:telegram:blockstack_update",
|
||
|
|
"title": "Stacks Genesis Bond starts at Bitcoin block 966350",
|
||
|
|
"sentiment": "Bullish",
|
||
|
|
"emotions": ["greed", "joy"],
|
||
|
|
"confidence": 0.90,
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"source_id": "web:telegram:blockstack_update",
|
||
|
|
"title": "Anchorage Digital brings institutional custody to Bitcoin staking",
|
||
|
|
"sentiment": "Bullish",
|
||
|
|
"emotions": ["greed", "joy"],
|
||
|
|
"confidence": 0.92,
|
||
|
|
},
|
||
|
|
|
||
|
|
# telegram fetch_ai
|
||
|
|
{
|
||
|
|
"source_id": "web:telegram:fetch_ai_announcements",
|
||
|
|
"title": "Fetch.ai launches Agent Launch platform for AI agents",
|
||
|
|
"sentiment": "Bullish",
|
||
|
|
"emotions": ["greed", "joy"],
|
||
|
|
"confidence": 0.90,
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"source_id": "web:telegram:fetch_ai_announcements",
|
||
|
|
"title": "ASI wallet sign-ups burn FET tokens, deflationary pressure",
|
||
|
|
"sentiment": "Bullish",
|
||
|
|
"emotions": ["greed"],
|
||
|
|
"confidence": 0.85,
|
||
|
|
},
|
||
|
|
|
||
|
|
# telegram tezos
|
||
|
|
{
|
||
|
|
"source_id": "web:telegram:tezos_announcements",
|
||
|
|
"title": "Tezos Seoul upgrade activated: native multisig, faster blocks",
|
||
|
|
"sentiment": "Bullish",
|
||
|
|
"emotions": ["joy"],
|
||
|
|
"confidence": 0.85,
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"source_id": "web:telegram:tezos_announcements",
|
||
|
|
"title": "Etherlink TVL growing, Ushuaia upgrade brings 15x bandwidth",
|
||
|
|
"sentiment": "Bullish",
|
||
|
|
"emotions": ["greed", "joy"],
|
||
|
|
"confidence": 0.82,
|
||
|
|
},
|
||
|
|
|
||
|
|
# telegram enjin
|
||
|
|
{
|
||
|
|
"source_id": "web:telegram:enjin_insights",
|
||
|
|
"title": "Enjin Platform v3 beta for developers and AI agents",
|
||
|
|
"sentiment": "Bullish",
|
||
|
|
"emotions": ["joy"],
|
||
|
|
"confidence": 0.80,
|
||
|
|
},
|
||
|
|
|
||
|
|
# telegram etc
|
||
|
|
{
|
||
|
|
"source_id": "web:telegram:etc_network",
|
||
|
|
"title": "Ethereum Classic Olympia upgrade: EIP-1559, treasury, governance",
|
||
|
|
"sentiment": "Bullish",
|
||
|
|
"emotions": ["joy", "greed"],
|
||
|
|
"confidence": 0.88,
|
||
|
|
},
|
||
|
|
|
||
|
|
# telegram tron
|
||
|
|
{
|
||
|
|
"source_id": "web:telegram:tron_official_en",
|
||
|
|
"title": "TRON VTRX ETN listed on Deutsche Boerse",
|
||
|
|
"sentiment": "Bullish",
|
||
|
|
"emotions": ["greed"],
|
||
|
|
"confidence": 0.80,
|
||
|
|
},
|
||
|
|
|
||
|
|
# telegram ontology
|
||
|
|
{
|
||
|
|
"source_id": "web:telegram:ontology_announcements",
|
||
|
|
"title": "Ontology gas reduction 80% live on mainnet",
|
||
|
|
"sentiment": "Bullish",
|
||
|
|
"emotions": ["joy"],
|
||
|
|
"confidence": 0.85,
|
||
|
|
},
|
||
|
|
|
||
|
|
# telegram dash
|
||
|
|
{
|
||
|
|
"source_id": "web:telegram:dash_news_bot",
|
||
|
|
"title": "Dash Evolution shielded transactions now live on mainnet",
|
||
|
|
"sentiment": "Bullish",
|
||
|
|
"emotions": ["joy"],
|
||
|
|
"confidence": 0.82,
|
||
|
|
},
|
||
|
|
|
||
|
|
# telegram litecoin
|
||
|
|
{
|
||
|
|
"source_id": "web:telegram:litecoin_crypto",
|
||
|
|
"title": "Litecoin MWEB hardening v0.21.5.6 released",
|
||
|
|
"sentiment": "Bullish",
|
||
|
|
"emotions": ["joy"],
|
||
|
|
"confidence": 0.78,
|
||
|
|
},
|
||
|
|
|
||
|
|
# telegram zilliqa
|
||
|
|
{
|
||
|
|
"source_id": "web:telegram:zilliqa_announcements",
|
||
|
|
"title": "Zilliqa migration progress: first exchange hard fork done",
|
||
|
|
"sentiment": "Bullish",
|
||
|
|
"emotions": ["joy"],
|
||
|
|
"confidence": 0.80,
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"source_id": "web:telegram:zilliqa_announcements",
|
||
|
|
"title": "Second ZIL exchange migration planned mid-September",
|
||
|
|
"sentiment": "Neutral",
|
||
|
|
"emotions": ["neutral"],
|
||
|
|
"confidence": 0.70,
|
||
|
|
},
|
||
|
|
|
||
|
|
# telegram near
|
||
|
|
{
|
||
|
|
"source_id": "web:telegram:near_announcements",
|
||
|
|
"title": "NEAR intents integration expands cross-chain swaps",
|
||
|
|
"sentiment": "Bullish",
|
||
|
|
"emotions": ["greed", "joy"],
|
||
|
|
"confidence": 0.80,
|
||
|
|
},
|
||
|
|
]
|
||
|
|
|
||
|
|
def save_labels():
|
||
|
|
with open("/mnt/dolphinng5_predict/sentiment_engine/data/labeled_real_world.jsonl", "w") as f:
|
||
|
|
for label in LABELS:
|
||
|
|
# Find matching sample
|
||
|
|
f.write(json.dumps({
|
||
|
|
**label,
|
||
|
|
"labeled_at": "2026-09-26T18:00:00",
|
||
|
|
"labeled_by": "manual_careful_analysis"
|
||
|
|
}) + "\n")
|
||
|
|
print(f"Saved {len(LABELS)} labels to labeled_real_world.jsonl")
|
||
|
|
|
||
|
|
if __name__ == "__main__":
|
||
|
|
import json
|
||
|
|
save_labels()
|