A production-grade IT support ticket classification system
using sentence-transformers embeddings and Logistic Regression.
Classifies tickets into 5 categories with 99.2% weighted F1.
Input text
│
▼
sentence-transformers (all-MiniLM-L6-v2)
384-dimensional embedding
│
▼
LogisticRegression classifier
│
▼
label + confidence score
1 from sentence_transformers import SentenceTransformer
2 import joblib
3 import numpy as np
4
5 # Load models
6 encoder = SentenceTransformer ( "sentence-transformers/all-MiniLM-L6-v2" )
7 classifier = joblib . load ( "classifier.joblib" )
8
9 def predict ( text : str ) - > dict :
10 embedding = encoder . encode ( [ text ] )
11 label = classifier . predict ( embedding ) [ 0 ]
12 proba = classifier . predict_proba ( embedding ) [ 0 ]
13 confidence = float ( np . max ( proba ) )
14 return { "label" : label , "confidence" : round ( confidence , 4 ) }
15
16 # Example
17 result = predict ( "My laptop screen is flickering and won't turn on" )
18 print ( result )
19 # {"label": "Hardware", "confidence": 0.971}
1 from sentence_transformers import SentenceTransformer
2 from sklearn . linear_model import LogisticRegression
3 from sklearn . model_selection import train_test_split
4 from sklearn . metrics import f1_score
5 import mlflow
6
7 mlflow . set_experiment ( "ticket-classifier" )
8
9 with mlflow . start_run ( ) :
10 encoder = SentenceTransformer ( "all-MiniLM-L6-v2" )
11 embeddings = encoder . encode ( texts , batch_size = 64 )
12
13 X_train , X_test , y_train , y_test = train_test_split (
14 embeddings , labels , test_size = 0.2 ,
15 random_state = 42 , stratify = labels
16 )
17
18 clf = LogisticRegression ( max_iter = 1000 , C = 1.0 )
19 clf . fit ( X_train , y_train )
20
21 f1 = f1_score ( y_test , clf . predict ( X_test ) , average = "weighted" )
22 mlflow . log_metric ( "f1_weighted" , f1 )
23 # F1: 0.9924
1,320 synthetic IT support tickets with realistic class
imbalance and cross-category ambiguity — deliberately
designed to prevent perfect scores by including tickets
that overlap between Security/Account and Network/Software
categories.