# Explainable Cross-Lingual Fake News Detection for a Low-Resource African Language
**ICS4554 Natural Language Processing — Final Project**
> GitHub repository: ` `
> Team: ` `
## 1. What this project does
Fake news and health/political misinformation spreads readily on African social
media, but almost all automated fake-news detection research and tooling is
built for English. This project builds, evaluates, and critically analyzes a
misinformation detector for **Hausa** (~90M+ speakers, Nigeria/Niger/Chad/Ghana),
with three things most fake-news classifiers skip:
1. **A real low-resource baseline-to-transformer comparison** — TF-IDF/classical
ML vs. a fine-tuned multilingual transformer (AfroXLMR / mBERT), not just
"we fine-tuned BERT and got X% accuracy."
2. **Explainability that is actually evaluated, not just visualized** — LIME
token attributions plus an AOPC-style *faithfulness* check (does deleting
the highlighted tokens actually change the prediction more than deleting
random tokens?).
3. **Cross-lingual zero-shot transfer to Yoruba and Swahili**, using
machine-translation to construct an honestly-labeled *synthetic* test set,
because no labeled fake-news corpus exists yet in those languages.
4. **Ethical safeguards baked into the inference path**, not bolted on: a
confidence-based human-review flag, a bias audit across content sources,
and a non-negotiable disclaimer against using the model for automated
takedowns.
## 2. Repository structure
```
hausa-fake-news-xnlp/
├── README.md ← you are here
├── requirements.txt
├── LICENSE
├── data/
│ ├── external/ ← raw clone of the source dataset repo (gitignored)
│ ├── raw/ ← hausa_misinformation_dataset_v1.0.csv (gitignored, fetched at runtime)
│ └── processed/ ← train/val/test splits produced by src/data/preprocess.py
├── src/
│ ├── data/
│ │ ├── download.py ← fetches the dataset (git clone + fallback)
│ │ └── …