Views
No views yet
1import torch
2from transformers import BertForSequenceClassification, AutoTokenizer
3from torch.nn import functional as F
4
5
6tokenizer = AutoTokenizer.from_pretrained('houmanrajabi/CoinPulse')
7model = BertForSequenceClassification.from_pretrained('houmanrajabi/CoinPulse')
8model.eval()
9
10def predict_sentiment(text, temperature=2.0):
11 inputs = tokenizer(text, return_tensors="pt", truncation=True, max_length=512)
12 with torch.no_grad():
13 outputs = model(**inputs)
14 label_map = {0: 'negative', 1: 'neutral', 2: 'positive'}
15 logits = outputs.logits / temperature
16 predicted_class_id = logits.argmax().item()
17 confidence = F.softmax(logits, dim=1)[0, predicted_class_id].item()
18 return label_map[predicted_class_id].capitalize() , confidence
19
20sample_texts = [
21 "The company reported record profits and exceeded all expectations.",
22 "Stock prices plummeted after the disappointing earnings report.",
23 "The quarterly results were in line with market forecasts."
24]
25for i, text in enumerate(sample_texts):
26 sentiment, confidence = predict_sentiment(text)
27 print(f"{i+1}) {text}\nSentiment: {sentiment}\nConfidence: {round(confidence,2)}\n")
28