Sales Behaviour Classifier
A DistilBERT model fine-tuned for turn-level sales behaviour classification. Given a prospect message and salesperson response, it classifies the salesperson's behaviour into one of four categories.
Labels
- WC (Weak Concessive) - The salesperson loses frame control, uses uncertain language, or reduces price without being asked.
- OH (Objection Handling) - The salesperson addresses a specific prospect concern with a direct, structured response.
- FD (Feature Dumping) - The salesperson lists features or specs with no connection to the prospect's stated concern.
- AN (Anchoring) - The salesperson states a price or position confidently and early, framing it as the reference point.
How to Use
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch
model = AutoModelForSequenceClassification.from_pretrained("TomHarcus/sales-behaviour-classifier")
tokenizer = AutoTokenizer.from_pretrained("TomHarcus/sales-behaviour-classifier")
device = torch.device("cuda") if torch.cuda.is_available() else torch.device("cpu")
model.to(device)
model.eval()
def classify(prospect_message, salesperson_response):
tokens = tokenizer(prospect_message, salesperson_response, truncation=True, return_tensors="pt")
tokens = {k: v.to(device) for k, v in tokens.items()}
with torch.no_grad():
outputs = model(**tokens)
probs = torch.softmax(outputs.logits, dim=-1)[0].tolist()
return {"WC": probs[0], "OH": probs[1], "FD": probs[2], "AN": probs[3]}
Returns a dictionary of class probabilities rather than a single label, allowing you to apply your own confidence threshold for OOD detection.
Training Data
Trained on TomHarcus/sales-behaviour-classifier-dataset: 2,400 synthetically generated, human-labelled examples across 4 categories, balanced to within 1.3% across classes.
Evaluation
Evaluated on a held-out test set of 360 examples (70/15/15 train/val/test split, seed=42).
Macro F1: 0.991
Limitations
The 0.991 macro F1 is likely inflated as the test set comes from the same synthetic distribution as the training data. Performance on real sales call transcripts will be lower. The model has not been evaluated on real human conversations.
Trained on synthetic data generated by gemini-3.1-flash-lite. Language patterns may differ from real sales calls. Single annotator labelling with no inter-annotator agreement score.
- Downloads last month
- 8
Model tree for TomHarcus/sales-behaviour-classifier
Base model
distilbert/distilbert-base-uncased