language: en
license: cc-by-nc-nd-4.0
tags:
- text-classification
- bert
- scam-detection
- fraud-detection
- call-transcripts
datasets:
- scam-and-non-scam-call-conversation-dataset
metrics:
- accuracy
- precision
- recall
- f1
pipeline_tag: text-classification
widget:
- text: >-
Hello, this is your bank calling. We noticed suspicious activity and need
your card number and PIN immediately to secure your account.
example_title: Scam example
- text: >-
Hi, this is Dr. Smith's office confirming your dental appointment for next
Tuesday at 10am.
example_title: Non-scam example
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.