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
Instructions de l’exercice
- Ajoutez des paramètres nommés
original_vocab, pourtfidf_vec.vocabulary_, ettop_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'auxtop_nmots. - Appelez la fonction en définissant
original_vocab=tfidf_vec.vocabulary_, en définissantvector_index=8pour récupérer la 9e ligne et en définissanttop_n=3pour 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, ____, ____))