NLP for Market Analysis — সংবাদ এবং সামাজিক সেন্টিমেন্ট প্রক্রিয়াকরণ

প্রাকৃতিক ভাষা প্রক্রিয়াকরণ ক্রিপ্টো ট্রেডিংয়ে গুরুত্বপূর্ণ হয়ে উঠেছে। সংবাদ ঘোষণা, সামাজিক মিডিয়া সেন্টিমেন্ট এবং নিয়ন্ত্রক ফিসফিস চেইন সংকেত প্রকাশের আগেই বাজারকে নাড়িয়ে দেয়। এই গাইডটি আপনাকে অপ্রকৃত টেক্সট থেকে কার্যকরী বুদ্ধিমত্তা আহরণের মাধ্যমে পরিচালিত করবে — একই কৌশল যা Smart Money API-তে সেন্টিমেন্ট স্কোরিংকে শক্তি দেয়।

মূল অন্তর্দৃষ্টি: সেন্টিমেন্ট একা শুধুমাত্র 48% স্বল্পমেয়াদী চলাচল ভবিষ্যদ্বাণী করে। কিন্তু যখন তিমি ঐক্যমত এবং ফান্ডিং রেটের সাথে সংযুক্ত হয়? সেন্টিমেন্ট-নিশ্চিত ট্রেডগুলি 61% নির্ভুলতা অর্জন করে। এটি মাল্টি-মোডাল সংকেতের শক্তি।

সেন্টিমেন্ট বিশ্লেষণ ভিত্তি

লেক্সিকন-ভিত্তিক বনাম মেশিন লার্নিং পদ্ধতি

লেক্সিকন-ভিত্তিক: ইতিবাচক/নেতিবাচক শব্দের অভিধান (VADER, TextBlob)। দ্রুত, ব্যাখ্যাযোগ্য, কিন্তু ব্যঙ্গ এবং প্রসঙ্গের সাথে সংগ্রাম করে।

Python — লেক্সিকন-ভিত্তিক সেন্টিমেন্ট
থেকে nltk.sentiment আমদানি SentimentIntensityAnalyzer
analyzer = SentimentIntensityAnalyzer()
texts = [
"Bitcoin surged 15% on bullish institutional adoption news",
"Crash incoming — expect 40% dump based on fundrat neg",
"Mixed signals but whales are accumulating ETH"
]
জন্য text মধ্যে texts:
scores = analyzer.polarity_scores(text)
print(f"{text[:40]}... → {scores['compound']:.2f}")

আউটপুট: কম্পাউন্ড স্কোর -1 (সবচেয়ে নেতিবাচক) থেকে +1 (সবচেয়ে ইতিবাচক) পর্যন্ত। 0.65 স্কোর ইতিবাচক সেন্টিমেন্ট নির্দেশ করে, -0.42 নেতিবাচক।

ML-ভিত্তিক: ক্লাসিফায়ার প্রশিক্ষণ (Naive Bayes, SVM) বা প্রি-ট্রেনড ট্রান্সফর্মার ব্যবহার করুন (BERT, RoBERTa)। আরও নির্ভুল কিন্তু লেবেলযুক্ত ডেটা প্রয়োজন।

ক্রিপ্টোকারেন্সি সংবাদ প্রক্রিয়াকরণ

রিয়েল-টাইম সংবাদ সমষ্টি

প্রধান উৎস থেকে শিরোনাম টানুন (CoinTelegraph, BlockBeats, Cointelegraph RSS, Reddit):

Python — সংবাদ পাইপলাইন
আমদানি feedparser
থেকে datetime আমদানি datetime, timedelta
# RSS feeds for crypto news
feeds = [
"https://cointelegraph.com/feed",
"https://www.coindesk.com/arc/outboundfeeds/rss/",
]
articles = []
জন্য feed_url মধ্যে feeds:
feed = feedparser.parse(feed_url)
জন্য entry মধ্যে feed.entries[:10]:
articles.append({
"title": entry.title,
"published": entry.published_parsed,
"summary": entry.summary,
})

নামকৃত সত্তা স্বীকৃতি (NER) ক্রিপ্টো সম্পদের জন্য

কোন টোকেন/এক্সচেঞ্জ উল্লেখ করা হয়েছে তা বের করুন:

Python — ক্রিপ্টোর জন্য NER
আমদানি spacy
nlp = spacy.load("en_core_web_sm")
# ক্রিপ্টোর জন্য কাস্টম সত্তা প্যাটার্ন
crypto_entities = {"Bitcoin", "BTC", "Ethereum", "ETH", "Solana", "SOL"}
text = "Bitcoin surged 12% as Ethereum whales accumulated large amounts"
doc = nlp(text)
জন্য token মধ্যে doc:
যদি token.text মধ্যে crypto_entities:
print(f"{token.text} found")

সামাজিক সেন্টিমেন্ট খনন

Twitter/X API ইন্টিগ্রেশন

নির্দিষ্ট সম্পদের জন্য উল্লেখ, সেন্টিমেন্ট এবং জড়িততা ট্র্যাক করুন:

Python — Twitter সেন্টিমেন্ট স্ট্রিম
আমদানি tweepy
থেকে transformers আমদানি pipeline
sentiment_pipeline = pipeline("sentiment-analysis", model="distilbert-base-uncased-finetuned-sst-2-english")
# Twitter API v2 এর সাথে প্রমাণীকরণ
client = tweepy.Client(bearer_token=TWITTER_BEARER)
# গত ঘন্টা থেকে Bitcoin সম্পর্কে টুইট অনুসন্ধান করুন
query = "Bitcoin -is:retweet lang:en"
tweets = client.search_recent_tweets(query=query, max_results=100)
sentiments = []
জন্য tweet মধ্যে 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

Monitor r/cryptocurrency, r/btc, r/ethtrader for retail sentiment shifts:

Python — Reddit sentiment
import praw
reddit = praw.Reddit(client_id=ID, client_secret=SECRET, user_agent=AGENT)
subreddit = reddit.subreddit("cryptocurrency")
# Get hot posts from last 24h
for post in subreddit.hot(limit=50):
if post.created_utc > (time.time() - 86400):
sentiment = sentiment_pipeline(post.title)[0]
# High upvotes + positive sentiment = strong retail bullish
signal_strength = post.score * sentiment["score"]

Building a Production Sentiment Engine

Transformer-Based Sentiment (BERT)

Pre-trained BERT models are far more accurate than lexicon-based approaches:

Python — BERT sentiment pipeline
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch
model_name = "ProsusAI/finbert" # FinBERT trained on financial news
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)
# Returns: negative (0), neutral (1), positive (2)
sentiment_idx = torch.argmax(probabilities)
confidence = probabilities[0, sentiment_idx].item()
return {"sentiment": ["negative", "neutral", "positive"][sentiment_idx], "confidence": confidence}

Real-Time Sentiment Aggregation

Combine multiple signals into a daily sentiment score:

Python — Composite sentiment
def compute_daily_sentiment(symbol):
# 1. News sentiment (40% weight)
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])
# 2. Twitter sentiment (35% weight)
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])
# 3. Reddit sentiment (25% weight)
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
composite = (news_score * 0.4 + twitter_score * 0.35 + reddit_score * 0.25)
return composite

Integrating with Smart Money API

Add sentiment as a feature to your confirmation system:

Python — Sentiment + Smart Money
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}

অ্যাডভান্সড এনএলপি টেকনিক্স

অ্যাস্পেক্ট-বেসড সেন্টিমেন্ট অ্যানালাইসিস

সামগ্রিক সেন্টিমেন্টের বদলে, নির্দিষ্ট অ্যাস্পেক্ট সম্পর্কে সেন্টিমেন্ট বের করুন: "বিটকয়িন টেকনোলজি দারুণ, কিন্তু অ্যাডপশন ধীর।" ফিচার-লেভেল অপিনিয়ন বের করুন।

কজালিটি ডিটেকশন

কারণমূলক দাবি চিহ্নিত করুন: "XYZ এর কারণে, প্রাইস চলবে।" হাইপ এবং ফান্ডামেন্টাল নিউজ আলাদা করতে একটি ক্লাসিফায়ার ট্রেন করুন।

সেন্টিমেন্ট টাইম সিরিজ

সময়ের সাথে সেন্টিমেন্ট ড্রিফট ট্র্যাক করুন। +০.৬৫ থেকে -০.৪৫ এ হঠাৎ পরিবর্তন একটি রিভার্সাল সিগন্যাল যা নোট করার মতো।

সেন্টিমেন্টকে স্মার্ট মানি সিগন্যালের সাথে কম্বাইন করুন

স্মার্ট মানি API কনফিডেন্স স্কোর প্রদান করে যা হোয়েল কনসেনসাস এবং অন-চেইন মেট্রিক্সের বিরুদ্ধে ভ্যালিডেট করা। আপনার এজ কনফার্ম করতে এবং ৪-৬% দ্বারা উইন রেট বাড়াতে সেন্টিমেন্ট অ্যানালাইসিস যোগ করুন।

ফ্রি শুরু করুন →