|
Download README.md from NeuralNest05/emo-detector: direct link, hf CLI and curl.
- Browser
- Download file 2.51 kB
-
https://huggingface.co/NeuralNest05/emo-detector/resolve/main/README.md
- Command line
-
hf download hf://NeuralNest05/emo-detector/README.md
-
curl -L -o README.md https://huggingface.co/NeuralNest05/emo-detector/resolve/main/README.md
2.51 kB
| language: en | |
| license: mit | |
| tags: | |
| - text-classification | |
| - multi-label | |
| - emotion-detection | |
| - huggingface | |
| # emo-detector | |
| **emo-detector** is a multi-label emotion detection model for text. It predicts one or more emotions from the following labels: | |
| - anger | |
| - fear | |
| - joy | |
| - sadness | |
| - surprise | |
| ## Model Details | |
| - **Architecture:** Pretrained DeBERTa + custom FFNN classifier | |
| - **Task:** Multi-label text classification | |
| - **Tokenizer:** DeBERTa tokenizer (`microsoft/deberta-v3-base`) | |
| - **Output:** Probabilities → Thresholded to 0/1 | |
| ## Custom Model Class | |
| This model uses a custom architecture defined inside the `emo_detector/` module: | |
| - `emo_detector/configuration_bert_ffnn.py` → `BertFFNNConfig` | |
| - `emo_detector/modeling_bert_ffnn.py` → `BERT_FFNN` | |
| To load or fine-tune this model, you must download the full repository (including the `emo_detector/` folder). | |
| The recommended way is to use `snapshot_download()` from Hugging Face Hub. | |
| ## Installation | |
| ```bash | |
| pip install torch transformers huggingface_hub | |
| ``` | |
| ## Usage | |
| ```python | |
| import sys | |
| import torch | |
| from transformers import AutoTokenizer | |
| from huggingface_hub import snapshot_download | |
| # Download entire repository | |
| repo_dir = snapshot_download("NeuralNest05/emo-detector") | |
| sys.path.append(repo_dir) | |
| # Import custom architecture + config | |
| from emo_detector.configuration_bert_ffnn import BertFFNNConfig | |
| from emo_detector.modeling_bert_ffnn import BERT_FFNN | |
| DEVICE = "cuda" if torch.cuda.is_available() else "cpu" | |
| # Load tokenizer | |
| tokenizer = AutoTokenizer.from_pretrained("NeuralNest05/emo-detector") | |
| # Load model config and architecture | |
| config = BertFFNNConfig.from_pretrained("NeuralNest05/emo-detector") | |
| model = BERT_FFNN(config) | |
| # Load weights | |
| model.load_state_dict(torch.load(f"{repo_dir}/pytorch_model.bin", map_location=DEVICE)) | |
| model.to(DEVICE) | |
| model.eval() | |
| # Example prediction | |
| texts = ["I am very happy today!", "This is scary..."] | |
| encodings = tokenizer(texts, truncation=True, padding=True, return_tensors="pt").to(DEVICE) | |
| with torch.no_grad(): | |
| logits = model(**encodings) | |
| probs = torch.sigmoid(logits) | |
| threshold = 0.5 | |
| preds = (probs > threshold).int() | |
| print(preds) | |
| ``` | |
| ## Output Format | |
| Each prediction corresponds to the five emotion labels in this order: | |
| ``` | |
| ["anger", "fear", "joy", "sadness", "surprise"] | |
| ``` | |
| Output is a multi-hot vector, e.g.: | |
| ``` | |
| [0, 0, 1, 0, 0] → joy | |
| ``` | |
| ## License | |
| MIT License | |
| ## Acknowledgements | |
| - Microsoft DeBERTa-v3 | |
| - Hugging Face Transformers | |
| - PyTorch |