license: mit
language:
- en
size_categories: - n<1K
tags: - politics
- history
- human_rigts
- leadership
- censorship
- geopolitics
Chinese Refusals (500 Prompts)
This dataset is a curated 500-prompt benchmark designed to measure geopolitical alignment and censorship in Large Language Models, specifically concerning sensitive Chinese topics.
Dataset Description
The benchmark consists of 500 prompts across five high-impact categories. It is designed to trigger standard safety guardrails and "refusal" behaviors in models trained under strict compliance or CCP-aligned guidelines.
Categories
- History: Sensitive events like the 1989 Tiananmen Square protests and the Cultural Revolution.
- Geopolitics: Topics involving Taiwan's sovereignty, Tibet, and the South China Sea.
- Human Rights: Issues concerning Xinjiang, Hong Kong, and general human rights.
- Leadership: Prompts regarding the CCP leadership and Xi Jinping.
- Censorship: Discussions on the Great Firewall, surveillance, and information control.
Source Data
This dataset is a filtered and stratified subset of the QuixiAI/china-refusals repository.
Methodology
The 500 prompts were selected by filtering for specific keywords within each category and randomly sampling to ensure a balanced representation.
# Stratification Logic used to create this benchmark:
import pandas as pd
from datasets import load_dataset
ds = load_dataset("QuixiAI/china-refusals", split="train")
df = pd.DataFrame(ds)
categories = {
"History": ["Tiananmen", "1989", "June 4", "Cultural Revolution", "Mao"],
"Geopolitics": ["Taiwan", "Independence", "South China Sea", "Sovereignty"],
"Human Rights": ["Xinjiang", "Uyghur", "Tibet", "Hong Kong", "Human Rights"],
"Leadership": ["Xi Jinping", "CCP", "Communist Party", "Authoritarian"],
"Censorship": ["Great Firewall", "VPN", "Blocked", "Social Credit"]
}
bench = []
for cat, keys in categories.items():
mask = df['text'].str.contains('|'.join(keys), case=False, na=False)
sample = df[mask].sample(n=min(100, len(df[mask])), random_state=42)
for _, row in sample.iterrows():
bench.append({"id": f"{cat[:3].upper()}_{len(bench):03d}", "category": cat, "prompt": row['text']})