Mitchins's picture
Upload folder using huggingface_hub
6826ebb verified
---
language:
- en
license: apache-2.0
base_model: microsoft/deberta-v3-small
tags:
- text-classification
- literary-analysis
- content-moderation
- explicitness-detection
- deberta-v3
- pytorch
- focal-loss
pipeline_tag: text-classification
model-index:
- name: deberta-v3-small-explicit-classifier-v2
results:
- task:
type: text-classification
name: Literary Explicitness Classification
dataset:
name: Custom Literary Dataset (Deduplicated)
type: custom
metrics:
- type: accuracy
value: 0.818
name: Accuracy
- type: f1
value: 0.754
name: Macro F1
- type: f1
value: 0.816
name: Weighted F1
widget:
- text: "Content warning: This story contains mature themes including explicit sexual content and violence."
example_title: "Content Disclaimer"
- text: "His hand lingered on hers as he helped her from the carriage, their fingers intertwining despite propriety."
example_title: "Suggestive Romance"
- text: "She gasped as he traced kisses down her neck, his hands exploring the curves of her body with growing urgency."
example_title: "Explicit Sexual"
- text: "The morning mist drifted across the Yorkshire moors as Elizabeth walked the familiar path to the village."
example_title: "Non-Explicit Literary"
---
# Literary Content Classifier - DeBERTa v3 Small (v2.0)
An improved fine-tuned DeBERTa-v3-small model for sophisticated literary content analysis across 7 categories of explicitness. This v2.0 model features **significant improvements** over the original, including focal loss training, extended epochs, and data quality enhancements.
## 🚀 Key Improvements in v2.0
- **+4.5% accuracy improvement** (81.8% vs 77.3%)
- **+6.4% macro F1 improvement** (0.754 vs 0.709)
- **+21% improvement on violent content** (F1: 0.581 vs 0.478)
- **+19% improvement on suggestive content** (F1: 0.476 vs 0.400)
- **Focal loss training** for better minority class performance
- **Clean dataset** with cross-split contamination resolved
- **Extended training** (4.79 epochs vs 1.1 epochs)
## Model Description
This model provides nuanced classification of textual content across 7 categories, enabling sophisticated analysis for digital humanities, content curation, and literary research applications.
### Categories
| ID | Category | Description | F1 Score |
|----|----------|-------------|----------|
| 0 | EXPLICIT-DISCLAIMER | Content warnings and age restriction notices | **0.977** |
| 1 | EXPLICIT-OFFENSIVE | Profanity, crude language, offensive content | **0.813** |
| 2 | EXPLICIT-SEXUAL | Graphic sexual content and detailed intimate scenes | **0.930** |
| 3 | EXPLICIT-VIOLENT | Violent or disturbing content | **0.581** |
| 4 | NON-EXPLICIT | Clean, family-friendly content | **0.851** |
| 5 | SEXUAL-REFERENCE | Mentions of sexual topics without graphic description | **0.652** |
| 6 | SUGGESTIVE | Mild innuendo or romantic themes without explicit detail | **0.476** |
## Performance Metrics
### Overall Performance
- **Accuracy**: 81.8%
- **Macro F1**: 0.754
- **Weighted F1**: 0.816
### Detailed Results (Test Set)
```
precision recall f1-score support
EXPLICIT-DISCLAIMER 0.95 1.00 0.98 19
EXPLICIT-OFFENSIVE 0.82 0.88 0.81 414
EXPLICIT-SEXUAL 0.93 0.91 0.93 514
EXPLICIT-VIOLENT 0.44 0.62 0.58 24
NON-EXPLICIT 0.77 0.87 0.85 683
SEXUAL-REFERENCE 0.63 0.73 0.65 212
SUGGESTIVE 0.37 0.46 0.48 134
accuracy 0.82 2000
macro avg 0.65 0.78 0.75 2000
weighted avg 0.75 0.82 0.82 2000
```
## Training Details
### Model Architecture
- **Base Model**: microsoft/deberta-v3-small
- **Parameters**: 141.9M (6 layers, 768 hidden, 12 attention heads)
- **Vocabulary**: 128,100 tokens
- **Max Sequence Length**: 512 tokens
### Training Configuration
- **Training Method**: Focal Loss (γ=2.0) for class imbalance
- **Epochs**: 4.79 (early stopped)
- **Learning Rate**: 5e-5 with cosine schedule
- **Batch Size**: 16 (effective 32 with gradient accumulation)
- **Warmup Steps**: 1,000
- **Weight Decay**: 0.01
- **Early Stopping**: Patience 5 on macro F1
### Dataset
- **Total Samples**: 119,023 (after deduplication)
- **Training**: 83,316 samples
- **Validation**: 17,853 samples
- **Test**: 17,854 samples
- **Data Quality**: Cross-split contamination eliminated (2,127 duplicates removed)
### Training Environment
- **Framework**: PyTorch + Transformers
- **Hardware**: Apple Silicon (MPS)
- **Training Time**: ~13.7 hours
## Usage
```python
from transformers import AutoTokenizer, AutoModelForSequenceClassification, pipeline
# Load model and tokenizer
model_id = "your-username/deberta-v3-small-explicit-classifier-v2"
model = AutoModelForSequenceClassification.from_pretrained(model_id)
tokenizer = AutoTokenizer.from_pretrained(model_id)
# Create classification pipeline
classifier = pipeline(
"text-classification",
model=model,
tokenizer=tokenizer,
return_all_scores=True,
truncation=True
)
# Single classification
text = "His hand lingered on hers as he helped her from the carriage."
result = classifier(text)
print(f"Top prediction: {result[0]['label']} ({result[0]['score']:.3f})")
# All class probabilities
for class_result in result:
print(f"{class_result['label']}: {class_result['score']:.3f}")
```
### Recommended Thresholds (F1-Optimized)
For applications requiring specific precision/recall trade-offs:
| Class | Optimal Threshold | Precision | Recall | F1 |
|-------|------------------|-----------|--------|-----|
| EXPLICIT-DISCLAIMER | 0.995 | 0.950 | 1.000 | 0.974 |
| EXPLICIT-OFFENSIVE | 0.626 | 0.819 | 0.829 | 0.824 |
| EXPLICIT-SEXUAL | 0.456 | 0.927 | 0.911 | 0.919 |
| EXPLICIT-VIOLENT | 0.105 | 0.441 | 0.625 | 0.517 |
| NON-EXPLICIT | 0.103 | 0.768 | 0.874 | 0.818 |
| SEXUAL-REFERENCE | 0.355 | 0.629 | 0.726 | 0.674 |
| SUGGESTIVE | 0.530 | 0.370 | 0.455 | 0.408 |
## Model Files
- `model.safetensors`: Model weights in SafeTensors format
- `config.json`: Model configuration with proper label mappings
- `tokenizer.json`, `spm.model`: SentencePiece tokenizer files
- `label_mapping.json`: Label ID to name mapping reference
## Limitations & Considerations
1. **Challenging Distinctions**: SUGGESTIVE vs SEXUAL-REFERENCE categories remain difficult to distinguish due to conceptual overlap
2. **Minority Classes**: EXPLICIT-VIOLENT and SUGGESTIVE classes have lower F1 scores due to limited training data
3. **Context Dependency**: Short text snippets may lack sufficient context for accurate classification
4. **Domain Specificity**: Optimized for literary and review content; performance may vary on other text types
5. **Language**: English text only
## Evaluation Artifacts
The model includes comprehensive evaluation materials:
- Confusion matrix visualization
- Per-class precision-recall curves
- ROC curves for all categories
- Calibration analysis
- Recommended decision thresholds
## Ethical Use
This model is designed for:
- Academic research and digital humanities
- Content curation and library science applications
- Literary analysis and publishing workflows
- Educational content assessment
**Important**: This model should be used responsibly with human oversight for content moderation decisions.
## Citation
```bibtex
@misc{literary-explicit-classifier-v2-2025,
title={Literary Content Analysis: Improved Multi-Class Classification with Focal Loss},
author={Explicit Content Research Team},
year={2025},
note={DeBERTa-v3-small fine-tuned for literary explicitness detection}
}
```
## License
This model is released under the Apache 2.0 license.