bert-scam-call-classifier
A fine-tuned bert-base-uncased binary text classifier that flags phone-call transcripts as scam or non_scam, based on conversational/behavioral patterns rather than topic keywords alone.
Model description
- Base model:
bert-base-uncased - Task: Binary sequence classification (
0 = non_scam,1 = scam) - Fine-tuning framework: Hugging Face
transformers.Trainer - Max sequence length: 256 tokens
Training data
Fine-tuned on the Scam and Non-Scam Call Conversation Dataset (Kaggle), built for the paper "Classifying Scam Calls through Content Analysis with Dynamic Sparsity Top-k Attention Regularization" (IEEE Access).
| Split | Count | |---| | Total conversations | 800 | | Scam | 400 | | Non-scam | 400 | | Train | 640 | | Validation | 80 | | Test | 80 |
(Exact split counts will vary slightly depending on your run โ the notebook fills these in automatically from train_df/val_df/test_df.)
The dataset is released under CC BY-NC-ND 4.0 โ non-commercial use only, and this model inherits that restriction.
Training procedure
- Optimizer: AdamW (via
Trainerdefaults) - Learning rate: 2e-5
- Epochs: 4 (with early stopping on validation F1)
- Batch size: 16 (train) / 32 (eval)
- Precision: fp16 (if a GPU was available), else fp32
Evaluation results (held-out test set)
| Metric | Score | |---| | Accuracy | 1.0000 | | Precision | 1.0000 | | Recall | 1.0000 | | F1 | 1.0000 |
How to use
from transformers import pipeline
clf = pipeline("text-classification", model="your-hf-username/bert-scam-call-classifier")
clf("Hello, this is your bank calling. We need your card number and PIN to verify your account immediately.")
Citation
If you use this dataset, please cite the original paper:
Classifying Scam Calls through Content Analysis with Dynamic Sparsity Top-k Attention Regularization, IEEE Access.
*Model card generated for this fine-tuning run.
- Downloads last month
- 31