File size: 1,313 Bytes
bf5fb5f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
37
38
39
40
41
# =================================
# 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