|
|
|
# Sentiment Analysis Longformer |
|
|
|
This model is a fine-tuned version of the Longformer base model for sentiment analysis. It classifies text into 5 sentiment categories. |
|
|
|
## Model Details |
|
- Model Type: Longformer |
|
- Task: Sentiment Analysis |
|
- Training Data: 4000 customer support tickets (Approx 1000 for each class) |
|
- Number of Parameters: 149M |
|
|
|
## Performance |
|
- Overall Accuracy: 74.84% |
|
|
|
Classification Report: |
|
``` |
|
precision recall f1-score support |
|
0 0.75 1.00 0.86 98 |
|
1 0.67 0.55 0.60 87 |
|
2 0.84 0.75 0.79 108 |
|
3 0.83 0.43 0.57 79 |
|
4 0.70 0.91 0.79 105 |
|
|
|
accuracy 0.75 477 |
|
macro avg 0.76 0.73 0.72 477 |
|
weighted avg 0.76 0.75 0.73 477 |
|
``` |
|
|
|
## Usage |
|
|
|
```python |
|
from transformers import AutoTokenizer, AutoModelForSequenceClassification |
|
import torch |
|
|
|
hf_model_name= 'Muddassar/longformer-base-sentiment-5-classes' |
|
model = AutoModelForSequenceClassification.from_pretrained(hf_model_name) |
|
tokenizer = AutoTokenizer.from_pretrained(hf_model_name) |
|
|
|
text = "Your text here" |
|
inputs = tokenizer(text, return_tensors="pt", truncation=True, max_length=1500) |
|
with torch.no_grad(): |
|
outputs = model(**inputs) |
|
prediction = torch.argmax(outputs.logits, dim=1).item() |
|
|
|
sentiment_map = {0: "Very Negative", 1: "Negative", 2: "Neutral", 3: "Positive", 4: "Very Positive"} |
|
print(f"Predicted sentiment: {sentiment_map[prediction]}") |
|
``` |
|
|
|
|
|
|
|
## License |
|
MIT |
|
|