jvomiranda's picture
Add all relevant files
b964596
Raw
History Blame Contribute Delete
1.1 kB
from pathlib import Path
import joblib
ROOT = Path(__file__).resolve().parents[1]
MODEL_PATH = (
ROOT /
"train" /
"saved_models" /
"bow_pipeline.joblib"
)
class BowModel:
def __init__(self):
self.pipeline = joblib.load(MODEL_PATH)
def predict(self, text):
prediction = self.pipeline.predict([text])[0]
probabilities = self.pipeline.predict_proba([text])[0]
vectorizer = self.pipeline.named_steps["vectorizer"]
X = vectorizer.transform([text])
vector = X.toarray()[0]
vocab = vectorizer.get_feature_names_out()
representation = {}
for palavra, contagem in zip(vocab, vector):
if contagem > 0:
representation[palavra] = int(contagem)
return {
"prediction": prediction,
"probabilities": {
classe: float(prob)
for classe, prob in zip(
self.pipeline.classes_,
probabilities
)
},
"representation": representation
}