CommencezCommencez gratuitement

Explorer les vecteurs de texte, partie 1

Poursuivons l'exploration des vecteurs de texte que nous venons d'apprendre, en utilisant les vecteurs tf/idf de title du jeu de données volunteer. Dans cette première partie sur l'exploration des vecteurs de texte, nous allons bonifier la fonction vue dans le diaporama. Nous ferons retourner une liste de nombres par la fonction. Dans le prochain exercice, nous écrirons une autre fonction pour rassembler les mots les plus fréquents dans l'ensemble des documents, les extraire, puis utiliser cette liste pour filtrer notre vecteur text_tfidf.

Cette activité fait partie du cours

Prétraitement pour le Machine Learning en Python

Voir le cours

Instructions de l’exercice

  • Ajoutez des paramètres nommés original_vocab, pour tfidf_vec.vocabulary_, et top_n.
  • Appelez pd.Series() sur le dictionnaire zippé. Cela facilitera les opérations à effectuer dessus.
  • Utilisez la fonction .sort_values() pour trier la série et tranchez l'index jusqu'aux top_n mots.
  • Appelez la fonction en définissant original_vocab=tfidf_vec.vocabulary_, en définissant vector_index=8 pour récupérer la 9e ligne et en définissant top_n=3 pour obtenir les 3 mots les mieux pondérés.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# Add in the rest of the arguments
def return_weights(vocab, ____, vector, vector_index, ____):
    zipped = dict(zip(vector[vector_index].indices, vector[vector_index].data))
    
    # Transform that zipped dict into a series
    zipped_series = ____({vocab[i]:zipped[i] for i in vector[vector_index].indices})
    
    # Sort the series to pull out the top n weighted words
    zipped_index = zipped_series.____(ascending=False)[:____].index
    return [original_vocab[i] for i in zipped_index]

# Print out the weighted words
print(return_weights(vocab, ____, text_tfidf, ____, ____))
Modifier et exécuter le code