made a readme for info and clarity
Browse files
readme.md
CHANGED
|
@@ -1,7 +1,74 @@
|
|
| 1 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2 |
|
| 3 |
THIS IS SOLELY FOR SUBMISSION TO THE PRESIDENTIAL AI CHALLENGE!
|
| 4 |
|
| 5 |
-
This is deployed and final iteration of our submission
|
| 6 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 7 |
|
|
|
|
|
|
| 1 |
+
## SENTINEL-CHECK API
|
| 2 |
+
|
| 3 |
+
**Ensemble model fake review detection for small businesses.**
|
| 4 |
+
|
| 5 |
+
## Presidential AI Challenge Submission
|
| 6 |
|
| 7 |
THIS IS SOLELY FOR SUBMISSION TO THE PRESIDENTIAL AI CHALLENGE!
|
| 8 |
|
| 9 |
+
This is the deployed and final iteration of our submission. Any commits after the submission date are generally for maintenance purposes.
|
| 10 |
+
|
| 11 |
+
All documentation on the API can be found at the bottom of the "App" section of this space - look for the hyperlink button with the text **"use via API"**.
|
| 12 |
+
|
| 13 |
+
---
|
| 14 |
+
|
| 15 |
+
## Prediction Meanings:
|
| 16 |
+
|
| 17 |
+
- `"genuine"` - review is probably authentic
|
| 18 |
+
- `"fake"` - review is probably fake/fraudulent
|
| 19 |
+
- `"uncertain"` - models disagree (agreement < 67%); less than 2/3 models agree.
|
| 20 |
+
|
| 21 |
+
---
|
| 22 |
+
|
| 23 |
+
## Model Arch
|
| 24 |
+
|
| 25 |
+
The API uses an ensemble of three models:
|
| 26 |
+
|
| 27 |
+
1. **DistilBERT** (distilbert-base-uncased) - max 128 tokens
|
| 28 |
+
2. **RoBERTa** (roberta-base) - max 192 tokens
|
| 29 |
+
3. **BERT** (bert-base-uncased) - max 256 tokens
|
| 30 |
+
|
| 31 |
+
**Ensemble Strategy:** Equal weighting (0.333 each)
|
| 32 |
+
**Decision Threshold:** 0.45 for fake classification
|
| 33 |
+
**Uncertainty Threshold:** 0.67 model agreement req.
|
| 34 |
+
|
| 35 |
+
Models loaded from HuggingFace Hub here is the link: https://huggingface.co/codingcoolfun9ed/sentinelcheck-models
|
| 36 |
+
|
| 37 |
+
---
|
| 38 |
+
|
| 39 |
+
## Performance Metrics
|
| 40 |
+
|
| 41 |
+
- **Test Accuracy:** 78.26%
|
| 42 |
+
- **Validation Accuracy:** 84.64%
|
| 43 |
+
- **F1 Score:** 0.8531
|
| 44 |
+
- **Model Agreement:** 88.4%
|
| 45 |
+
|
| 46 |
+
Threshold optimized on validation set. Equal weighting outperformed an accuracy-based weighting approach.
|
| 47 |
+
|
| 48 |
+
---
|
| 49 |
+
|
| 50 |
+
## Tech Stack
|
| 51 |
+
|
| 52 |
+
- **Framework:** Flask + Flask-CORS
|
| 53 |
+
- **ML:** PyTorch, Transformers (HuggingFace)
|
| 54 |
+
- **Models:** BERT, RoBERTa, DistilBERT
|
| 55 |
+
- **Deployment:** Python 3
|
| 56 |
+
|
| 57 |
+
---
|
| 58 |
+
|
| 59 |
+
## Text Preprocessing
|
| 60 |
+
|
| 61 |
+
Reviews are automatically cleaned:
|
| 62 |
+
|
| 63 |
+
- URL removal
|
| 64 |
+
- HTML tag removal
|
| 65 |
+
- Punctuation normalization
|
| 66 |
+
- Whitespace normalization
|
| 67 |
+
|
| 68 |
+
---
|
| 69 |
+
|
| 70 |
+
## Author
|
| 71 |
+
|
| 72 |
+
**codingcoolfun9ed** (Aaban R.) | Submission Date: January 20, 2026
|
| 73 |
|
| 74 |
+
For API documentation and the live demo, visit the app interface and/or click **"use via API"** at the bottom.
|