File size: 754 Bytes
30a2ab4 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# src/inference.py
import joblib
from src.preprocessing import clean_text
import os
MODEL_PATH = "model/saved_model.joblib"
VECT_PATH = "model/vectorizer.joblib"
def load():
if not os.path.exists(MODEL_PATH) or not os.path.exists(VECT_PATH):
raise FileNotFoundError("Model or vectorizer not found. Run src/train.py first.")
model = joblib.load(MODEL_PATH)
vect = joblib.load(VECT_PATH)
return model, vect
def predict(text: str):
model, vect = load()
text_clean = clean_text(text)
X = vect.transform([text_clean])
pred = model.predict(X)[0]
proba = None
if hasattr(model, "predict_proba"):
proba = model.predict_proba(X).tolist()[0]
return {"text": text, "label": pred, "probability": proba}
|