|
--- |
|
language: en |
|
tags: |
|
- text-classification |
|
- sentiment-analysis |
|
- transformers |
|
- pytorch |
|
- multilingual |
|
- xlm-roberta |
|
- Siyovush Mirzoev |
|
- Tajik |
|
- Tajikistan |
|
license: mit |
|
--- |
|
|
|
# advexon/multilingual-sentiment-classifier |
|
|
|
Multilingual text classification model trained on XLM-RoBERTa base for sentiment analysis across English, Russian, Tajik and other languages |
|
|
|
## Model Description |
|
|
|
This is a multilingual text classification model based on XLM-RoBERTa. It has been fine-tuned for sentiment analysis across multiple languages and can classify text into positive, negative, and neutral categories. |
|
|
|
## Model Details |
|
|
|
- **Base Model**: XLM-RoBERTa Base |
|
- **Model Type**: XLMRobertaForSequenceClassification |
|
- **Number of Labels**: 3 (Negative, Neutral, Positive) |
|
- **Languages**: Multilingual (English, Russian, Tajik, and others) |
|
- **Max Sequence Length**: 512 tokens |
|
- **Hidden Size**: 768 |
|
- **Attention Heads**: 12 |
|
- **Layers**: 12 |
|
|
|
## Performance |
|
|
|
Based on training metrics: |
|
- **Training Accuracy**: 58.33% |
|
- **Validation Accuracy**: 100% |
|
- **Training Loss**: 0.94 |
|
- **Validation Loss**: 0.79 |
|
|
|
## Usage |
|
|
|
### Using the Model |
|
|
|
```python |
|
from transformers import AutoTokenizer, AutoModelForSequenceClassification |
|
import torch |
|
|
|
# Load the model and tokenizer |
|
tokenizer = AutoTokenizer.from_pretrained("advexon/multilingual-sentiment-classifier") |
|
model = AutoModelForSequenceClassification.from_pretrained("advexon/multilingual-sentiment-classifier") |
|
|
|
# Example usage |
|
text = "This product is amazing!" |
|
inputs = tokenizer(text, return_tensors="pt", truncation=True, padding=True) |
|
outputs = model(**inputs) |
|
predictions = torch.softmax(outputs.logits, dim=-1) |
|
predicted_class = torch.argmax(predictions, dim=1).item() |
|
|
|
# Class mapping: 0=Negative, 1=Neutral, 2=Positive |
|
sentiment_labels = ["Negative", "Neutral", "Positive"] |
|
predicted_sentiment = sentiment_labels[predicted_class] |
|
print(f"Predicted sentiment: {predicted_sentiment}") |
|
``` |
|
|
|
### Example Predictions |
|
|
|
- "I absolutely love this product!" → Positive |
|
- "This is terrible quality." → Negative |
|
- "It's okay, nothing special." → Neutral |
|
- "Отличный сервис!" → Positive (Russian) |
|
- "Хунуки хуб нест" → Negative (Tajik) |
|
|
|
## Training |
|
|
|
This model was trained using: |
|
- **Base Model**: XLM-RoBERTa Base |
|
- **Optimizer**: AdamW |
|
- **Learning Rate**: 2e-5 |
|
- **Batch Size**: 16 |
|
- **Training Epochs**: 2 |
|
- **Languages**: English, Russian, Tajik |
|
|
|
## Model Architecture |
|
|
|
The model uses the XLM-RoBERTa architecture with: |
|
- 12 transformer layers |
|
- 768 hidden dimensions |
|
- 12 attention heads |
|
- 3 classification heads for sentiment analysis |
|
|
|
## Limitations |
|
|
|
- The model's performance may vary across different languages |
|
- It is recommended to fine-tune on domain-specific data for optimal performance |
|
- Maximum input length is 512 tokens |
|
- Performance may be lower on languages not well-represented in the training data |
|
|
|
## Citation |
|
|
|
If you use this model in your research, please cite: |
|
|
|
```bibtex |
|
@misc{multilingual-text-classifier, |
|
title={Multilingual Text Classification Model}, |
|
author={Advexon}, |
|
year={2024}, |
|
publisher={Siyovush Mirzoev}, |
|
journal={Hugging Face Hub}, |
|
howpublished={\url{https://huggingface.co/advexon/multilingual-sentiment-classifier}}, |
|
} |
|
``` |
|
## Contact me |
|
mirzoevsish@gmail.com / +992 710707777 WhatsApp |
|
|