|
|
--- |
|
|
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. |