Problem
Fabricated news spreads because it's cheap to produce and hard to screen at volume — no newsroom can fact-check the entire feed by hand. A useful first line of defence isn't a verdict on truth (that needs human judgement) but a fast triage signal: a model that flags which articles read like fabrication and deserve a closer look, so reviewers spend their time where it counts.
Data
WELFake contains 72,134 articles aggregated from four public sources. The project uses a stratified split: 57,715 training articles and 14,419 held-out articles from the same aggregation.
Method
Title and article text are combined, cleaned with spaCy, and encoded with TF-IDF for an XGBoost classifier. The repository includes the training notebooks and a Streamlit interface for single-article predictions.
Finding
The project reports 97% macro F1 on the 14,419-article held-out WELFake split.
Macro F1 gives both classes equal weight; this result does not establish accuracy on independent news sources.
Recommendation
Treat the classifier as a benchmark experiment. Evaluate it on independent sources and later articles before considering a human-reviewed triage use case.
Limitations and next steps
Source and formatting artifacts may correlate with labels, allowing the model to learn shortcuts rather than evidence of misinformation. Their contribution to the score was not measured here. Next steps are independent-source or time-based evaluation and checks for boilerplate and duplicate articles. See the project README for the reported evaluation scope.