electra-app-p9v2 / src /utils /vectorizer_utils.py
nounouille
Initial commit - Deploy Electra app
9a9b2ea
# src/utils/vectorizer_utils.py
import os
import joblib
from sklearn.feature_extraction.text import TfidfVectorizer
from typing import Tuple
import pandas as pd
def train_and_save_tfidf(X_train: pd.Series, save_path: str, max_features: int = 5000) -> TfidfVectorizer:
"""
Entraîne un TfidfVectorizer sur les textes fournis et le sauvegarde.
"""
X_train = X_train.fillna("").astype(str)
vectorizer = TfidfVectorizer(max_features = max_features)
vectorizer.fit(X_train)
joblib.dump(vectorizer, save_path)
return vectorizer
def load_tfidf_vectorizer(path: str) -> TfidfVectorizer:
"""
Charge un TfidfVectorizer sauvegardé depuis un fichier .joblib.
"""
if not os.path.exists(path):
raise FileNotFoundError(f"Vectorizer non trouvé à l'emplacement : {path}")
return joblib.load(path)
def vectorize_data(vectorizer: TfidfVectorizer, data: pd.Series):
"""
Applique un vectoriseur TF-IDF à des données textuelles, après nettoyage des NaN.
"""
return vectorizer.transform(data.fillna("").astype(str))