# ================================= # Fichier: interfaces/vectorizer.py # ================================= from abc import ABC, abstractmethod from typing import Union import cupy as cp import cudf from scipy.sparse import csr_matrix class Vectorizer(ABC): """ Interface pour la classe responsable de la vectorisation du texte. Permet de convertir une série de textes en représentations numériques (matrice sparse ou dense). """ @abstractmethod def fit_transform(self, texts: cudf.Series) -> Union[cp.ndarray, csr_matrix]: """ Ajuste la vectorisation sur les textes de la série 'texts' puis renvoie la matrice vectorisée associée. :param texts: Série cudf contenant des chaînes de caractères. :return: Matrice vectorisée (cupy.ndarray ou scipy.sparse.csr_matrix). """ pass @abstractmethod def transform(self, texts: cudf.Series) -> Union[cp.ndarray, csr_matrix]: """ Applique la vectorisation déjà apprise à une nouvelle série de textes pour produire la matrice vectorisée. :param texts: Série cudf contenant des chaînes de caractères. :return: Matrice vectorisée (cupy.ndarray ou scipy.sparse.csr_matrix). """ pass