Decoding the Rule Book: Extracting Hidden Moderation Criteria from Reddit Communities
Youngwoo Kim et al., Sep 2025arXiv:2509.02926PrecedentBuilt
Recovers each subreddit's unwritten moderation standard from its own history of removals, as an interpretable score table of lexical expressions. The extracted tables match the performance of neural moderators while making the criteria comparable across communities.
CodeScoreTables
from aiag import LM
from aiag.cases import ScoreTables
lm = LM("Qwen/Qwen2.5-1.5B-Instruct")
decisions = {
"r/politics": [("you idiot", True), ("what an idiot take", True), ("good point", False), ("thanks for the source", False)],
"r/crypto": [("buy cheap tokens now", True), ("buy now before it pumps", True), ("nice chart", False), ("good analysis", False)],
}
# Fit a sparse additive model to each community's removals, read off as a table of scored expressions
tables = ScoreTables(lm, ngrams=1)
print(tables(decisions)["r/crypto"]) # (expression, score, reach), the heaviest toward removal first
print(tables.score("r/crypto", ["buy my tokens"])) # P(removal) from the community's table- ScoreTablesProcedureaiag/cases/legal_pluralism.py:58 Decoding the rule book: each community's removals are fitted by a sparse additive model over word n-grams and read off as a score table of lexical expressions, comparable across communities in a criteria matrix and checked against a neural moderator (Kim et al., 2025).
pip install aiagEvery method in aiag Library on GitHub