Downloads · 30 days
0
vishalpatil-18/heron-phishing
heron-phishing is a text classification model from vishalpatil-18. Use it when you need a label for a piece of text. It is set up for pytorch. The card lists the license as mit.
DualTowerFusionModel - a multimodal deep-learning model that classifies an email as legitimate or phishing from its text, embedded images (e.g. spoofed logos), and structural metadata.
Downloads · 30 days
0
Access
Public
Updated Jul 26, 2026
Repo size
143 MB
Likes
0
Public
Click a slice to open those files.
.pth143 MB · 97%
From the Hugging Face model README
DualTowerFusionModel - a multimodal deep-learning model that classifies an email as legitimate or phishing from its text, embedded images (e.g. spoofed logos), and structural metadata.
Product face: Heron - "Nothing swims past." Live scanner + write-up at the project repo.
Three towers fused into one classifier:
| Tower | Input | Output |
|---|---|---|
| Text CNN | Email subject + body (tokenized via vocab_text_1.json) | 256-d |
| Image CNN | Embedded images | 512-d |
| Metadata MLP | 20 structural signals | 20 → 64-d |
Concatenated 832-d → fusion classifier 512 → 256 → 128 → 2 → {legitimate, phishing}.
| Metric | Value |
|---|---|
| Accuracy | 99.45% |
| AUC-ROC | 0.999 |
| Precision | 99.5% |
| Recall | 99.4% |
| F1 | 99.4% |
Fusion beats every single-modality baseline (Text CNN 98.96, ResNet18 97.43, Image CNN 76.30, KNN 81.71, LogReg 80.00).
best_fusion_model.pth - trained weights (plain state_dict).vocab_text_1.json - text-tower vocabulary (stoi).Weights are a plain state_dict; load into the DualTowerFusionModel definition (see project src/fusion_models.py).
from huggingface_hub import hf_hub_download
import torch
weights = hf_hub_download("vishalpatil-18/heron-phishing", "best_fusion_model.pth")
vocab = hf_hub_download("vishalpatil-18/heron-phishing", "vocab_text_1.json")
model = DualTowerFusionModel() # from src/fusion_models.py
model.load_state_dict(torch.load(weights, weights_only=True, map_location="cpu"))
model.eval()
Or scan an email live via the Heron API / dashboard.
Detects phishing in HTML/plain-text emails. Trained on a fixed dataset; performance may drop on email styles or attack patterns outside that distribution. Use as a signal, not a sole gate.