|
Download final_model/README.md from anpmts/sentiment-classifier: direct link, hf CLI and curl.
- Browser
- Download file 3.07 kB
-
https://huggingface.co/anpmts/sentiment-classifier/resolve/main/final_model/README.md
- Command line
-
hf download hf://anpmts/sentiment-classifier/final_model/README.md
-
curl -L -o README.md https://huggingface.co/anpmts/sentiment-classifier/resolve/main/final_model/README.md
3.07 kB
| language: multilingual | |
| license: apache-2.0 | |
| tags: | |
| - sentiment-analysis | |
| - text-classification | |
| - xlm-roberta | |
| - dual-head | |
| # Sentiment Classifier | |
| ## Model Description | |
| This is a dual-head sentiment classifier built on top of XLM-RoBERTa. The model performs two tasks simultaneously: | |
| 1. **Sentiment Classification:** Predicts sentiment labels (positive, neutral, negative) | |
| 2. **Sentiment Score Regression:** Predicts a continuous sentiment score in the range [0, 1] | |
| The model uses a weighted loss function combining cross-entropy (70%) for classification and MSE (30%) for regression, | |
| allowing it to capture both discrete sentiment categories and fine-grained sentiment intensity. | |
| ## Model Architecture | |
| - **Base Model:** xlm-roberta-base | |
| - **Task:** text-classification | |
| - **Number of Labels:** 3 | |
| - **Labels:** negative, neutral, positive | |
| ## Training Configuration | |
| - **Epochs:** 10 | |
| - **Batch Size:** 128 | |
| - **Learning Rate:** 2e-05 | |
| - **Warmup Ratio:** 0.1 | |
| - **Weight Decay:** 0.01 | |
| - **Max Seq Length:** 256 | |
| - **Mixed Precision:** FP16=False, BF16=True | |
| ## Performance Metrics | |
| - **Loss:** 0.6947 | |
| - **Accuracy:** 0.4901 | |
| - **Precision:** 0.2402 | |
| - **Recall:** 0.4901 | |
| - **F1:** 0.3224 | |
| - **F1 Macro:** 0.3289 | |
| - **F1 Negative:** 0.0000 | |
| - **Precision Negative:** 0.0000 | |
| - **Recall Negative:** 0.0000 | |
| - **Support Negative:** 900 | |
| - **F1 Neutral:** 0.6578 | |
| - **Precision Neutral:** 0.4901 | |
| - **Recall Neutral:** 1.0000 | |
| - **Support Neutral:** 865 | |
| - **Runtime:** 0.7012 | |
| - **Samples Per Second:** 2517.1350 | |
| - **Steps Per Second:** 9.9830 | |
| ## Model Outputs | |
| The model returns two outputs: | |
| - **Logits:** Classification logits for sentiment labels [batch_size, 3] | |
| - **Score Predictions:** Continuous sentiment scores [batch_size] | |
| Both outputs are computed from the same shared representation (CLS token) of the input text. | |
| ## Intended Use | |
| This model is intended for sentiment analysis tasks on multilingual text, particularly in scenarios where both | |
| categorical sentiment (positive/neutral/negative) and sentiment intensity are important. | |
| **Typical use cases:** | |
| - Product review analysis | |
| - Social media sentiment monitoring | |
| - Customer feedback classification | |
| ## Usage | |
| ```python | |
| from transformers import AutoTokenizer | |
| from src.models.sentiment_classifier import SentimentClassifier | |
| # Load model and tokenizer | |
| model = SentimentClassifier.from_pretrained("YOUR_USERNAME/sentiment-classifier") | |
| tokenizer = AutoTokenizer.from_pretrained("xlm-roberta-base") | |
| # Prepare input | |
| text = "Your input text here" | |
| inputs = tokenizer(text, return_tensors="pt", padding=True, truncation=True) | |
| # Make prediction | |
| outputs = model(**inputs) | |
| predictions = outputs["logits"].argmax(dim=-1) | |
| ``` | |
| ## Citation | |
| If you use this model, please cite: | |
| ```bibtex | |
| @misc{sentiment_classifier, | |
| title={Sentiment Classifier}, | |
| author={{Your Name}}, | |
| year={2025}, | |
| publisher={Hugging Face}, | |
| howpublished={{\url{{https://huggingface.co/YOUR_USERNAME/{model_name.lower().replace(' ', '-')}}}}} | |
| } | |
| ``` | |
| --- | |
| *This model card was automatically generated with [Claude Code](https://claude.com/claude-code)* |