It was fine-tuned from
ProsusAI/finbert as part of a master's thesis on NLI-based cryptocurrency stance detection.
1from transformers import AutoTokenizer, AutoModelForSequenceClassification
2import torch
3
4model_name = "syahrezapratama/finbert-crypto-stance"
5tokenizer = AutoTokenizer.from_pretrained(model_name)
6model = AutoModelForSequenceClassification.from_pretrained(model_name)
7model.eval()
8
9tweet = "BTC [SEP] Bitcoin is going to the moon! $100k is just the beginning"
10inputs = tokenizer(tweet, return_tensors="pt", truncation=True, max_length=128)
11
12with torch.no_grad():
13 logits = model(**inputs).logits
14 probs = torch.softmax(logits, dim=-1)
15
16labels = {0: "Bearish", 1: "Neutral", 2: "Bullish"}
17predicted = labels[torch.argmax(probs, dim=-1).item()]
18print(f"Predicted stance: {predicted}")
Evaluated on a held-out test set of 450 tweets (70/15/15 train/val/test split, seed=42).
1@mastersthesis{pratama2026cryptostancenli,
2 title={An NLI-Based Approach to Asset-Specific Stance Detection in Cryptocurrency Tweets},
3 author={Pratama, Syahreza},
4 year={2026},
5}