Spaces:
Sleeping
Sleeping
File size: 1,083 Bytes
9a9b2ea | 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 26 27 28 29 30 31 32 33 34 35 36 | # 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))
|