CoolFace
Modelpublic

ISAAC-corpus/isaac-generalization

sourceHugging Facecc-by-4.0updated 5d agoView on Hugging Face
0likes22downloads
Model Card

ISAAC generalization — situation-entity classifier

Same weights as the public DiSCo release. This repository is the ISAAC-facing copy of `BabakScrapes/disco-se-classifier`; the checkpoints are identical. That card carries the full model description and the DiSCo corpus details. This one documents how the model is used inside the ISAAC pipeline and restates the performance figures reported in the ISAAC manuscript. Cite whichever matches your use; if you are using ISAAC labels, cite both.

Clause-level classifier that assigns one of 18 situation-entity types to an English clause, extending Smith's (2003) discourse-mode framework with boundedness distinctions. In the Illinois Social Attitudes Aggregate Corpus (ISAAC) the 18 types are collapsed into three linguistic features that together capture how generalized a statement is:

  • Genericity — is the main referent a generic category (gay people) or a specific individual (my neighbor)?
  • Eventivity — a stable state (God is benevolent) or a transient event (I went to Nebraska)?
  • Boundedness / habituality — for eventive clauses, temporally bounded (I ate this morning), unbounded (God loves us), or habitually recurring (I went there for years)?

The most anecdotal content is specific entities in bounded, non-habitual events; the most generalized is generic categories in stative or habitual clauses. This distinction matters for research on the persuasiveness of attitude-relevant communication, and no other corpus of social group discourse carries it.

Run this model after the clause segmenter, which splits text into the clauses this model scores.

Labels

The released config.json in this repository maps indices to readable names. The full mapping, and the three-feature decomposition ISAAC uses:

IndexSituation entityGenericityEventivityBoundedness
0BOUNDED EVENT (SPECIFIC)specificdynamicepisodic
1BOUNDED EVENT (GENERIC)genericdynamicepisodic
2UNBOUNDED EVENT (SPECIFIC)specificdynamicstatic
3UNBOUNDED EVENT (GENERIC)genericdynamicstatic
4BASIC STATEspecificstativestatic
5COERCED STATE (SPECIFIC)specificdynamicstatic
6COERCED STATE (GENERIC)genericdynamicstatic
7PERFECT COERCED STATE (SPECIFIC)specificdynamicepisodic
8PERFECT COERCED STATE (GENERIC)genericdynamicepisodic
9GENERIC SENTENCE (DYNAMIC)genericdynamichabitual
10GENERIC SENTENCE (STATIC)genericstativestatic
11GENERIC SENTENCE (HABITUAL)genericstativehabitual
12GENERALIZING SENTENCE (DYNAMIC)specificdynamichabitual
13GENERALIZING SENTENCE (STATIVE)specificstativehabitual
14QUESTIONNANANA
15IMPERATIVENANANA
16NONSENSENANANA
17OTHERNANANA

QUESTION, IMPERATIVE, NONSENSE, and OTHER are non-statements, for which the three features are undefined. ISAAC counts them separately rather than folding them into the proportions.

Usage

python
import torch
from transformers import AutoModelForSequenceClassification, AutoTokenizer

REPO = "ISAAC-corpus/isaac-generalization"
tokenizer = AutoTokenizer.from_pretrained("roberta-base", use_fast=True,
                                          add_prefix_space=True)
model = AutoModelForSequenceClassification.from_pretrained(REPO).eval()

clauses = ["Gay people are nice", "my gay neighbor watered my plants"]
enc = tokenizer(clauses, padding="max_length", truncation=True, max_length=128,
                return_tensors="pt")
with torch.no_grad():
    pred_ids = model(**enc).logits.argmax(dim=-1).tolist()

for clause, idx in zip(clauses, pred_ids):
    print(model.config.id2label[idx], "|", clause)

For the full text-to-features pipeline — segmentation, batching, long-text splitting, and per-text aggregation — see code/label_generalization.py in the project repository or generalization.py in the Space.

Training data

Pre-trained on the SitEnt corpus, then fine-tuned on the DiSCo corpus of opinionated, mixed-register English text (Hemmatian, 2022). See the DiSCo card for the corpus description.

Evaluation

Two FacebookAI/roberta-base models run in sequence: a clause segmenter, then a 18-way situation-entity classifier. Both are the same weights as the public DiSCo release — see the clause segmenter and situation-entity classifier cards for the full model description and the corpus they were trained on.

Segmentation. The segmenter covered most of the target clause span for 95.5% of human-verified clauses.

Classification, on the held-out 10% of the disco gold corpus (k ≈ 2,357):

TargetMacro F1Accuracy
Full situation entity (18-way).514.737
Genericity (2-way).852.860
Eventivity (2-way).879.894
Boundedness / habituality (4-way).804.850

The 18-way macro F1 of .514 is held down by heavy label imbalance across the rarer situation-entity types. The three collapsed features are what ISAAC actually reports, and they are the numbers to rely on.

Intended use

Clause-level annotation of English text for genericity, eventivity, and boundedness/habituality, in aggregate research designs — the role it plays in ISAAC, where it labels clauses across 527M posts.

Out-of-scope use

  • Clause-level, not document-level. Feed it clauses from the segmenter, not whole posts. Scoring an unsegmented paragraph will not give a meaningful label.
  • Not a measure of truth, quality, or bias. A generic statement is not thereby a stereotype, and a specific one is not thereby accurate.
  • Not for individual-level decisions. The 18-way macro F1 of .514 is far too low for any per-clause consequential use; the collapsed features are intended for aggregate proportions over large samples.

Limitations and bias

  • Heavy label imbalance. The rarer situation-entity types are poorly represented in training, which is why 18-way accuracy (.737) far exceeds 18-way macro F1 (.514). Per-class performance on rare types is correspondingly weak. Use the collapsed features.
  • Single-topic fine-tuning. DiSCo is opinionated, mixed-register text on one controversial policy topic. Cross-genre transfer is expected given the formal, content-agnostic nature of the target features, but it has not been separately quantified for Reddit discourse about social groups.
  • English only.
  • Errors compound. ISAAC's generalization columns are the product of two models in series; segmentation errors propagate into classification.

Links

Try it without codeISAAC Text Classifiers Space
Pipeline source, keyword lists, pattern setsGitHub
Corpus download, samples, SQL playgroundhttps://isaac.psychology.illinois.edu/
Data Use AgreementData_Use_Agreement.md

Citation

Please cite the ISAAC paper. One citation covers the whole project — the corpus, the pipeline, and every model. Please do not cite this model repository separately; keeping references in one place is what allows the project's citations to be found together.

bibtex
@article{hemmatian2026isaac,
  author = {Hemmatian, Babak and Hadjarab, Sarah and Chen, Jessica and Kurdi, Benedek},
  title  = {The {Illinois} Social Attitudes Aggregate Corpus ({ISAAC}): An Open Tool and Reproducible Pipeline for Analyzing Social Group Discourse at Scale},
  year   = {2026},
  note   = {Manuscript submitted for publication}
}

License

Released under a Creative Commons Attribution 4.0 International License. You may use, share, and adapt these weights, including commercially, provided you give appropriate credit — see Citation above.

The ISAAC corpus itself is governed separately by the project Data Use Agreement.