NLP για Ανάλυση Αγοράς — Επεξεργασία Ειδήσεων και Κοινωνικού Συναισθήματος
Η επεξεργασία φυσικής γλώσσας έχει γίνει κρίσιμη στις συναλλαγές κρυπτονομισμάτων. Οι ανακοινώσεις ειδήσεων, το συναίσθημα των κοινωνικών δικτύων και οι φήμες για ρυθμιστικές αλλαγές κινούν τις αγορές πριν εμφανιστούν τα σήματα στην αλυσίδα. Αυτός ο οδηγός σας καθοδηγεί στην εξαγωγή δράσιμων πληροφοριών από αδόμητο κείμενο — οι ίδιες τεχνικές που ενισχύουν την βαθμολόγηση συναισθήματος στο Smart Money API.
Κύρια γνώση: Το συναίσθημα μόνο προβλέπει μόνο το 48% των βραχυπρόθεσμων κινήσεων. Αλλά όταν συνδυάζεται με την συναίνεση των φαλαινών και τα επιτόκια χρηματοδότησης; Οι συναλλαγές που επιβεβαιώνονται από το συναίσθημα επιτυγχάνουν ακρίβεια 61%. Αυτή είναι η δύναμη των πολυτροπικών σημάτων.
Βασικές Αρχές Ανάλυσης Συναισθήματος
Λεξιλογικές vs Προσεγγίσεις Μηχανικής Μάθησης
Λεξιλογικές: Λεξικό θετικών/αρνητικών λέξεων (VADER, TextBlob). Γρήγορο, ερμηνεύσιμο, αλλά δυσκολεύεται με την σαρκασμό και το πλαίσιο.
from nltk.sentiment import SentimentIntensityAnalyzer
analyzer = SentimentIntensityAnalyzer()
texts = [
"Το Bitcoin ανέβηκε 15% με νέα ανοδικής θεσμικής υιοθέτησης",
"Κραχ έρχεται — αναμένεται πτώση 40% με βάση τα αρνητικά fundrat",
"Μικτά σήματα αλλά οι φάλαινες συσσωρεύουν ETH"
]
for text in texts:
scores = analyzer.polarity_scores(text)
print(f"{text[:40]}... → {scores['compound']:.2f}")
Έξοδος: Οι βαθμοί compound κυμαίνονται από -1 (πιο αρνητικό) έως +1 (πιο θετικό). Ένας βαθμός 0.65 δείχνει θετικό συναίσθημα, -0.42 δείχνει αρνητικό.
ML-based: Εκπαιδεύστε classifiers (Naive Bayes, SVM) ή χρησιμοποιήστε προεκπαιδευμένους transformers (BERT, RoBERTa). Πιο ακριβές αλλά απαιτεί επισημασμένα δεδομένα.
Επεξεργασία Ειδήσεων Κρυπτονομισμάτων
Συγκέντρωση Ειδήσεων σε Πραγματικό Χρόνο
Τραβήξτε επικεφαλίδες από κύριες πηγές (CoinTelegraph, BlockBeats, Cointelegraph RSS, Reddit):
import feedparser
from datetime import datetime, timedelta
feeds = [
"https://cointelegraph.com/feed",
"https://www.coindesk.com/arc/outboundfeeds/rss/",
]
articles = []
for feed_url in feeds:
feed = feedparser.parse(feed_url)
for entry in feed.entries[:10]:
articles.append({
"title": entry.title,
"published": entry.published_parsed,
"summary": entry.summary,
})
Αναγνώριση Ονομασμένων Οντοτήτων (NER) για Κρυπτονομίσματα
Εξαγωγή ποια tokens/ανταλλακτήρια αναφέρονται:
import spacy
nlp = spacy.load("en_core_web_sm")
crypto_entities = {"Bitcoin", "BTC", "Ethereum", "ETH", "Solana", "SOL"}
text = "Το Bitcoin ανέβηκε 12% καθώς οι φάλαινες του Ethereum συσσώρευαν μεγάλα ποσά"
doc = nlp(text)
for token in doc:
if token.text in crypto_entities:
print(f"{token.text} βρέθηκε")
Εξόρυξη Κοινωνικού Συναισθήματος
Ενσωμάτωση Twitter/X API
Παρακολούθηση αναφορών, συναισθήματος και δέσμευσης για συγκεκριμένα assets:
import tweepy
from transformers import pipeline
sentiment_pipeline = pipeline("sentiment-analysis", model="distilbert-base-uncased-finetuned-sst-2-english")
client = tweepy.Client(bearer_token=TWITTER_BEARER)
query = "Bitcoin -is:retweet lang:en"
tweets = client.search_recent_tweets(query=query, max_results=100)
sentiments = []
for tweet in tweets.data:
result = sentiment_pipeline(tweet.text)[0]
sentiments.append({
"text": tweet.text,
"label": result["label"],
"score": result["score"]
})
avg_sentiment = sum(s["score"] for s in sentiments) / len(sentiments)
print(f"Bitcoin sentiment: {avg_sentiment:.2f}")
Reddit Community Sentiment
Παρακολουθήστε τα r/cryptocurrency, r/btc, r/ethtrader για αλλαγές στο συναίσθημα των χρηστών:
import praw
reddit = praw.Reddit(client_id=ID, client_secret=SECRET, user_agent=AGENT)
subreddit = reddit.subreddit("cryptocurrency")
for post in subreddit.hot(limit=50):
if post.created_utc > (time.time() - 86400):
sentiment = sentiment_pipeline(post.title)[0]
signal_strength = post.score * sentiment["score"]
Building a Production Sentiment Engine
Transformer-Based Sentiment (BERT)
Τα προεκπαιδευμένα μοντέλα BERT είναι πολύ πιο ακριβή από τις μεθόδους που βασίζονται σε λεξικά:
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch
model_name = "ProsusAI/finbert"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSequenceClassification.from_pretrained(model_name)
def get_finbert_sentiment(text):
inputs = tokenizer(text, return_tensors="pt")
with torch.no_grad():
outputs = model(**inputs)
logits = outputs.logits
probabilities = torch.softmax(logits, dim=1)
sentiment_idx = torch.argmax(probabilities)
confidence = probabilities[0, sentiment_idx].item()
return {"sentiment": ["negative", "neutral", "positive"][sentiment_idx], "confidence": confidence}
Real-Time Sentiment Aggregation
Συνδυάστε πολλαπλά σήματα σε ένα ημερήσιο σκορ συναισθήματος:
def compute_daily_sentiment(symbol):
news_articles = fetch_recent_news(symbol)
news_sentiments = [get_finbert_sentiment(a["title"]) for a in news_articles]
news_score = np.mean([s["confidence"] for s in news_sentiments])
tweets = fetch_tweets_last_6h(symbol)
twitter_sentiments = [get_finbert_sentiment(t) for t in tweets]
twitter_score = np.mean([s["confidence"] for s in twitter_sentiments])
reddit_posts = fetch_reddit_hot(symbol)
reddit_sentiments = [get_finbert_sentiment(p) for p in reddit_posts]
reddit_score = np.mean([s["confidence"] for s in reddit_sentiments])
composite = (news_score * 0.4 + twitter_score * 0.35 + reddit_score * 0.25)
return composite
Integrating with Smart Money API
Προσθέστε το συναίσθημα ως χαρακτηριστικό στο σύστημα επιβεβαίωσής σας:
def confirm_with_sentiment(symbol, direction):
response = requests.get(
f"https://api.smartmoneyapi.com/v1/confirm?symbol={symbol}&direction={direction}",
headers={"X-API-Key": API_KEY}
)
smart_money = response.json()
sentiment_score = compute_daily_sentiment(symbol)
if (direction == "long" and sentiment_score > 0.55):
boost = 0.05
elif (direction == "short" and sentiment_score < 0.45):
boost = 0.05
else:
boost = 0
final_composite = min(smart_money["composite"] + boost, 1.0)
return {"composite": final_composite, "sentiment_boost": boost}
Σύνθετες Τεχνικές NLP
Ανάλυση Συναισθήματος με Βάση την Πτυχή
Αντί για συνολικό συναίσθημα, εξάγετε συναίσθημα για συγκεκριμένες πτυχές: "Η τεχνολογία του Bitcoin είναι εξαιρετική, αλλά η υιοθέτηση είναι αργή." Εξάγετε γνώμες σε επίπεδο χαρακτηριστικών.
Εντοπισμός Αιτιότητας
Αναγνωρίστε αιτιατικές ισχυρισμούς: "Λόγω του XYZ, η τιμή θα κινηθεί." Εκπαιδεύστε έναν ταξινομητή για να διακρίνει την υπερβολή από τις θεμελιώδεις ειδήσεις.
Χρονοσειρά Συναισθήματος
Παρακολουθήστε την απόκλιση του συναισθήματος με την πάροδο του χρόνου. Μια ξαφνική αναστροφή από +0.65 σε -0.45 είναι ένα σήμα αναστροφής που αξίζει να σημειωθεί.
Συνδυάστε το συναίσθημα με τα σήματα του Smart Money
Το Smart Money API παρέχει βαθμολογίες εμπιστοσύνης που επικυρώνονται έναντι της συναίνεσης των φαλαινών και των μετρικών στην αλυσίδα. Προσθέστε ανάλυση συναισθήματος για να επιβεβαιώσετε την πλεονεκτική σας θέση και να αυξήσετε τα ποσοστά νίκης κατά 4-6%.
Ξεκινήστε Δωρεάν →