tejasvichebrolu's picture
Update README.md
0502d84 verified
---
license: mit
language: en
tags:
- text-classification
- distilbert
- news-framing
- conflict-detection
- indian-elections
- computational-social-science
- websci2025
datasets:
- custom
model-index:
- name: Framing the Fray - Conflict Frame Classifier
results:
- task:
type: text-classification
name: Text Classification
dataset:
type: custom
name: Indian Election News Headlines
metrics:
- type: f1
value: 0.87
name: Macro F1-Score
args:
average: macro
---
# Conflict Frame Classifier for Indian Election News
This is a `distilbert-base-uncased-finetuned-sst-2-english` model fine-tuned to classify news headlines into one of two frames: **conflict** or **non-conflict** (miscellaneous).
This model is the official artifact for the research paper:
**"Framing the Fray: Conflict Framing in Indian Election News Coverage"** accepted at the **17th ACM Web Science Conference (WebSci '25)**.
## Citation
If you use this model or the associated code, please cite our paper:
```bibtex
@inproceedings{chebrolu2025framing,
title={Framing the Fray: Conflict Framing in Indian Election News Coverage},
author={Chebrolu, Tejasvi and Chowdhary, Rohan and Vardhan, N Harsha and Kumaraguru, Ponnurangam and Rajadesingan, Ashwin},
booktitle={Proceedings of the 17th ACM Web Science Conference 2025 (Websci '25)},
year={2025},
month={May},
address={New Brunswick, NJ, USA},
publisher={ACM},
doi={10.1145/3717867.3717900}
}
```
## How to Use
You can use this model directly with the ``pipeline`` function from the `transformers` library:
```python
from transformers import pipeline
# Replace with your actual model repo ID after uploading
classifier = pipeline("text-classification", model="tejasvichebrolu/conflict-frame-classifier")
headlines = [
"Days Before Polls, Kamal Haasan Meets Mamata Banerjee In Kolkata",
"SP-BSP alliance led to wave of happiness; BJP worried, says Akhilesh Yadav",
"Narendra Modi invoking Army for votes, says Tejashwi Yadav"
]
results = classifier(headlines)
for result in results:
print(f"Label: {result['label']}, Score: {result['score']:.4f}")
```
## Training Procedure
The model was fine-tuned on a dataset of **860 headlines** annotated for the presence of a *conflict frame*.
---
## Hyperparameters
| Hyperparameter | Value |
|---------------------------|---------------|
| Conflict Class Weight | 1.69 |
| Non-Conflict Class Weight | 9.01 |
| Learning Rate | 6.008 × 10⁻⁵ |
| Epochs | 9 |
---
## Evaluation Results
The model's performance was evaluated using **5-fold cross-validation**. The average metrics are reported below:
| Class | Precision | Recall | F1-Score |
|---------------|-----------|--------|----------|
| Conflict | 0.92 | 0.91 | 0.92 |
| Non-Conflict | 0.81 | 0.82 | 0.81 |
| Macro avg | 0.87 | 0.87 | **0.87** |