Three challenges. Three optimized pipelines. One architecture built to win.
- π Performance Results
- π¬ Approach & Methodology
- π‘ Innovation & Creativity
- π Real-World Impact & Utility
- βοΈ Documentation & Reproducibility
- π Repository Structure
All models were evaluated on an 80/20 Stratified Train-Validation Split to ensure class-balanced, fair assessment. Metrics are reported exactly as specified per challenge.
Objective: Binary classification of social media text to rapidly identify real-world disaster events for emergency response.
Reported Metric: Macro F1-Score
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β Macro F1-Score β 0.8341 β
β β
β Split : 80/20 Stratified Train-Validation β
β Classes : Binary (Real Disaster / Not Disaster) β
β Handling: class_weight='balanced' (no SMOTE) β
β β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Validation Proof:
Objective: Classification of news articles as reliable or misleading based on combined title and body-text semantic analysis.
Reported Metric: Accuracy
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β Validation Accuracy β 0.9967 β
β 5-Fold CV Accuracy β 0.9981 β Cross-validated β
β β
β Split : 80/20 Stratified Train-Validation β
β CV Method : 5-Fold Stratified Cross-Validation β
β Classes : Binary (TRUE / FALSE) β
β β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Cross-validation was performed specifically to rule out overfitting and prove statistical stability across all data splits.
Validation Proof:
Cross-Validation Proof (5-Fold):
Objective: Binary classification to identify toxicity across mixed English and Hindi text using offline character-level boundary detection.
Reported Metric: ROC-AUC
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β Mean ROC-AUC Score β 0.9855 β
β β
β Split : 80/20 Stratified Train-Validation β
β Languages: English + Hindi (code-mixed) β
β Method : Offline β zero external API calls β
β β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Validation Proof:
All three challenges share a unified architectural philosophy, with targeted adaptations per task.
Raw Text
β
βΌ
βββββββββββββββββββββββββββββββββββ
β Text Preprocessing β β Lowercasing, noise removal,
β (preprocess.py) β URL stripping, normalization
βββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββ
β TF-IDF Vectorization β β Converts cleaned text into
β (Word N-gram or Char N-gram) β high-dimensional sparse features
βββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββ
β Soft-Voting Ensemble β β Combines probabilistic outputs
β LightGBM + LR + Naive Bayes β from multiple diverse learners
βββββββββββββββββββββββββββββββββββ
β
βΌ
Prediction (Binary Classification)
| Component | Challenge 1 | Challenge 2 | Challenge 3 |
|---|---|---|---|
| Vectorizer | Word N-gram TF-IDF | Word N-gram TF-IDF | Char N-gram TF-IDF |
| Max Features | 15,000 | 20,000 | 25,000 |
| Primary Model | LightGBM | LightGBM (300 trees) | LightGBM |
| Ensemble | LightGBM + LR + NB | LightGBM (solo) | LightGBM + LR |
| Ensemble Type | Soft-Voting | β | Soft-Voting |
| Class Imbalance | class_weight='balanced' |
N/A | N/A |
| Validation | 80/20 Stratified | 80/20 + 5-Fold CV | 80/20 Stratified |
A single, reusable preprocessing module is shared across all three challenges to ensure consistency. Key operations:
- Lowercasing and Unicode normalization
- URL, mention, and hashtag removal
- Punctuation and whitespace normalization
- Preserves character-level patterns needed for Challenge 3's char N-gram model
Rather than relying on a single model, Challenges 1 and 3 deploy a Soft-Voting Ensemble that combines learners with fundamentally different inductive biases:
- LightGBM β Captures complex non-linear feature interactions via gradient boosting
- Logistic Regression β Provides strong linear baseline, regularizes the ensemble
- Multinomial Naive Bayes (Ch-1) β Excels on sparse, high-dimensional text data
The soft vote averages predicted probabilities β not hard class labels β meaning the ensemble benefits from each model's confidence, not just its decision boundary. This approach statistically reduces variance without increasing bias.
This is the most architecturally significant decision in the submission. Instead of using a translation API (the naive approach), we use Character-level N-grams with char_wb analyzer and range (2, 5):
- Natively captures Hindi morphological roots and English abbreviations in the same vector space
- Handles Hinglish code-mixing (e.g.,
"yaar tu bahut toxic hai") without any language detection - Detects phonetic spelling variations and leetspeak that word-level models miss entirely
- Zero latency overhead β no network call, no API key, no rate limit
This eliminates the need for translation entirely β a deliberate architectural trade-off that improves latency, privacy, and reliability simultaneously.
Disaster tweet datasets have significant class imbalance. The common approach is SMOTE (synthetic oversampling), which introduces artificial data points and can skew the decision boundary. Instead, we apply class_weight='balanced' across all ensemble members, which mathematically adjusts loss functions to penalize minority-class errors more heavily β achieving balanced learning without altering the original data distribution.
A 5-Fold Stratified Cross-Validation was conducted in addition to the train-validation split β not because it was required, but because 0.9967 accuracy demands proof it isn't overfitting. The CV accuracy of 0.9981 across all folds confirms the model generalizes consistently. This level of rigor is an intentional design choice.
Modern NLP defaults to large transformer models (BERT, GPT, etc.). For the classification tasks in this datathon, that choice introduces:
- πΈ High cost β GPU inference at scale is expensive
- π’ High latency β Seconds per inference, unacceptable for real-time moderation
- π‘ API dependency β Failure modes outside your control
- π Privacy risk β Sending user content to external APIs
| Real-World Requirement | This Solution |
|---|---|
| Inference latency | < 10 milliseconds (TF-IDF + LightGBM) |
| Hardware needed | Standard CPU β no GPU required |
| Cloud cost | Free Tier eligible (AWS EC2 t2.micro / Oracle Cloud) |
| Offline capability | β Fully offline β no internet required at inference |
| RAM requirement | < 8 GB β runs on standard laptops and edge devices |
| Multilingual support | β Native β no translation API for Hindi/English |
| Containerization | β Docker-ready β stateless, dependency-pinned |
- π¨ Challenge 1 β Live disaster alert filtering for emergency response systems and social media monitoring dashboards
- π° Challenge 2 β Real-time news feed moderation pipeline for content platforms and fact-checking services
- π Challenge 3 β Inline comment moderation for Indian social media platforms handling Hindi-English code-mixed content
| Deliverable | Status | Location |
|---|---|---|
| Challenge 1 predictions | β | outputs/Disaster_no_label.csv |
| Challenge 2 predictions | β | outputs/FakeNews_no_labels.csv |
| Challenge 3 predictions | β | outputs/toxic_no_label_evaluation.csv |
| Validation metric screenshots | β | results/ directory |
| Executive summary visual | β | results/executive_summary.png |
| Dependency file | β | requirements.txt |
| Reusable preprocessing module | β | src/preprocess.py |
Prerequisites: Python 3.10+, Git
Step 1 β Clone the repository
git clone https://github.com/RootDeveloperDS/NeuroLogic26_Submission.git
cd NeuroLogic26_SubmissionStep 2 β Set up virtual environment
Windows:
python -m venv venv
venv\Scripts\activatemacOS / Linux:
python3 -m venv venv
source venv/bin/activateStep 3 β Install all dependencies
pip install -r requirements.txtStep 4 β Run the pipelines (from the project root)
# Challenge 1: Disaster Tweet Classification
python src/ch1_pipeline.py
# β Generates: outputs/Disaster_no_label.csv
# Challenge 2: Fake News Detection
python src/ch2_pipeline.py
# β Generates: outputs/FakeNews_no_labels.csv
# [Optional] Verify Challenge 2 Cross-Validation
python src/cv_check.py
# β Prints 5-Fold CV accuracy to console
# Challenge 3: Multilingual Toxicity Detection
python src/ch3_pipeline.py
# β Generates: outputs/toxic_no_label_evaluation.csvβ All three prediction files will appear in
outputs/ready for submission. No manual configuration. No secret environment variables. No external downloads.
NeuroLogic26_Submission/
β
βββ README.md β This file
βββ requirements.txt β All pinned dependencies
β
βββ data/
β βββ challenge_1/ β Disaster tweets (raw dataset)
β βββ challenge_2/ β Fake news (raw dataset)
β βββ challenge_3/ β Multilingual toxicity (raw dataset)
β
βββ src/
β βββ preprocess.py β Shared text cleaning (used by all pipelines)
β βββ ch1_pipeline.py β End-to-end pipeline for Challenge 1
β βββ ch2_pipeline.py β End-to-end pipeline for Challenge 2
β βββ cv_check.py β 5-Fold Cross-Validation verifier (Ch-2)
β βββ ch3_pipeline.py β End-to-end pipeline for Challenge 3
β
βββ outputs/
β βββ Disaster_no_label.csv β Final predictions: Challenge 1
β βββ FakeNews_no_labels.csv β Final predictions: Challenge 2
β βββ toxic_no_label_evaluation.csvβ Final predictions: Challenge 3
β
βββ results/
βββ executive_summary.png β Consolidated metric dashboard
βββ ch1_f1_scores.png β Validation proof: Challenge 1
βββ ch2_accuracy1.png β Validation proof: Challenge 2 (v1)
βββ ch2_accuracy2.png β Validation proof: Challenge 2 (v2)
βββ ch2_cv_proof.png β 5-Fold CV proof: Challenge 2
βββ ch3_roc_auc.png β Validation proof: Challenge 3
NeuroLogic '26 Β· Global NLP Datathon
Powered by the VISAR Edge Architecture
Lightweight. Rigorous. Deployable.




