Créer un modèle « sac de mots »

Ingénierie des caractéristiques pour le NLP en Python

Rounak Banik

Data Scientist

Rappel sur le format des données pour les algorithmes de ML

Pour tout algorithme de Machine Learning,

  • Les données doivent être tabulaires
  • Les variables d'entraînement doivent être numériques
Ingénierie des caractéristiques pour le NLP en Python

Modèle « sac de mots »

  • Extraire les tokens de mots
  • Calculer la fréquence des tokens
  • Construire un vecteur de mots à partir de ces fréquences et du vocabulaire du corpus
Ingénierie des caractéristiques pour le NLP en Python

Exemple de modèle « sac de mots »

Corpus

"The lion is the king of the jungle"
"Lions have lifespans of a decade"
"The lion is an endangered species"
Ingénierie des caractéristiques pour le NLP en Python

Exemple de modèle « sac de mots »

Vocabulairea, an, decade, endangered, have, is, jungle, king, lifespans, lion, Lions, of, species, the, The

"The lion is the king of the jungle"
[0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 2, 1]
"Lions have lifespans of a decade"
[1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0]
"The lion is an endangered species"
[0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1]
Ingénierie des caractéristiques pour le NLP en Python

Prétraitement du texte

  • Lions, lionlion
  • The, thethe
  • Sans ponctuation
  • Sans mots vides
  • Réduit la taille du vocabulaire
  • Moins de dimensions améliore le rendement
Ingénierie des caractéristiques pour le NLP en Python

Modèle « sac de mots » avec sklearn

corpus = pd.Series([
    'The lion is the king of the jungle',
    'Lions have lifespans of a decade',
    'The lion is an endangered species'
])
Ingénierie des caractéristiques pour le NLP en Python

Modèle « sac de mots » avec sklearn

# Import CountVectorizer
from sklearn.feature_extraction.text import CountVectorizer

# Créer l'objet CountVectorizer vectorizer = CountVectorizer()
# Générer la matrice de vecteurs de mots bow_matrix = vectorizer.fit_transform(corpus) print(bow_matrix.toarray())
array([[0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 3],
       [0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0],
       [1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1]], dtype=int64)
Ingénierie des caractéristiques pour le NLP en Python

Passons à la pratique !

Ingénierie des caractéristiques pour le NLP en Python

Preparing Video For Download...