A Filipino fake news classifier built with Python, and SvelteKit — with by LIME for interpretability.
DEBUNKR addresses the urgent problem of fake news in the Philippines, especially in the lead-up to the May 2025 midterm elections. A Pulse Asia survey reports that 86% of Filipinos view fake news as a major issue, with 90% encountering political misinformation—primarily via social media and TV. Compounding the problem, 65% find it difficult to distinguish truth from falsehood, and 55% report frequent exposure to disinformation. The rise of AI-generated content (e.g., deepfakes) further complicates the landscape.
To combat this, we developed a Filipino fake news classifier to empower users with a tool that helps verify information and improve digital literacy. The backend leverages Python and multiple NLP libraries for model training, while the frontend is built using SvelteKit and TailwindCSS for optimized, scalable, and modular UI development.
DEBUNKR is a fake news detection web application focused on Filipino news content. It utilizes:
- Two datasets; one utilizing the Tagalog language, and one in English but is based in Filipino events.
- Ensemble learning with multiple ML algorithms
- A modern SvelteKit frontend
- LIME (Local Interpretable Model-Agnostic Explanations) for transparency and model interpretability
- Trafilatura for web-scraping of suspicious news content
This is a final project for our CCS 249 - Natural Language Processing course.
The classifier used in the web application is an ensemble learning technique, utilizing for high performing ML algorithms. Specifically, we utilized Logistic Regression, Multinomial NB, Random Forests Classifier, SGDC.
These algorithms were evaluated using the following metrics: Accuracy, Precision, Recall, and F-1 Score.
Combined in the ensemble with soft voting hyperparameter on, it achieved a 93% accuracy. See model_dev.ipynb notebook for more details.
To set up the project locally, follow the instructions below for both the frontend and backend components:
Install UV system-wide
# For windows users
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
# For Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Install required python version
uv python install 3.11.1
# To verify if correct python version is installed, run:
uv python listNavigate to the desired directory, then:
# Clone the project
git clone https://github.com/hydraadra112/Debunkr.git
# Navigate to the frontend directory
cd frontend
# Install dependencies
npm install
# Run the dev server
npm run dev -- --open
# Open a new terminal
# Navigate to the backend directory
cd backend
# Create a virtual environment with Python 3.11.1
uv venv --python 3.11.1
# Install all dependencies
uv sync
# To verify version (optional)
uv run python --version # Should output: Python 3.11.1
# Run the FastAPI server
uv run -- uvicorn main:app --reload --port 8000@inproceedings{cruz2020localization,
title={Localization of Fake News Detection via Multitask Transfer Learning},
author={Cruz, Jan Christian Blaise and Tan, Julianne Agatha and Cheng, Charibeth},
booktitle={Proceedings of The 12th Language Resources and Evaluation Conference},
pages={2596--2604},
year={2020}
}
@inproceedings{fernandez2019computing,
title={Computing the linguistic-based cues of fake news in the Philippines towards its detection},
author={Fernandez, Aaron Carl T and Devaraj, Madhavi},
booktitle={Proceedings of the 9th International Conference on Web Intelligence, Mining and Semantics},
pages={1--9},
year={2019}
}
