--- license: cc-by-4.0 language: - en metrics: - accuracy base_model: facebook/roberta-large pipeline_tag: text-classification tags: - framing --- # Sentence Frame Classifier A RoBERTa-based model for detecting media frames at the sentence level. This model can classify sentences into 10 different frame categories and works across both news articles and reader comments. ## Model Description This model was trained to identify media frames in text at the sentence level. It's based on the Media Frame Corpus [*Card et al. 2015*](https://aclanthology.org/P15-2072.pdf) and extends to online discussion contexts [*Hartmann et al., 2019*](https://arxiv.org/pdf/1904.03969), making it suitable for analyzing both professional journalism and user-generated content. **Key Features:** - Sentence-level frame classification - Cross-domain capability (news articles + comments) - 9 frame categories based on established political communication theory - Robust performance across different topics ## Frame Categories The model classifies sentences into these 9 frame categories: - Economic — Economic costs, benefits, or implications - Morality — Moral or ethical considerations - Fairness and Equality — Issues of fairness, equality, or discrimination - Legality and Crime — Legal aspects, constitutionality, crime, and punishment - Political and Policies — Political processes, policy prescriptions, and evaluations - Security and Defense — Security threats, defense, or public safety - Health and Safety — Health risks, safety concerns, or medical implications - Cultural Identity — Cultural values, traditions, or identity issues - Public Opinion — Public sentiment, polls, or popular support - Other/None ## Performance - Macro F1: 0.66 - Accuracy: 0.77 - Cross-topic generalization: Robust performance across different topics - Validation: Human-validated on 600 sentences ## Usage ```python from transformers import pipeline classifier = pipeline("text-classification", model="mattdr/cross-domain-frame-classifier") text = "The new policy will cost taxpayers millions of dollars while providing few benefits." result = classifier(text) print(result) # [{'label': 'Economic', 'score': 0.89}] examples = [ "The economy of the country is improving steadily.", "The public strongly supports this initiative according to recent polls.", "We must protect our children from these dangerous substances." ] for text in examples: result = classifier(text) print(f"Text: {text}") print(f"Frame: {result[0]['label']} (confidence: {result[0]['score']:.2f})") print()