Explorer les vecteurs de texte, partie 1
Développons la méthode d’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, nous allons enrichir la fonction vue dans les diapos. La fonction renverra une liste de nombres. Dans l’exercice suivant, nous écrirons une autre fonction pour rassembler les mots les plus fréquents sur l’ensemble des documents, les extraire, puis utiliser cette liste pour filtrer notre vecteur text_tfidf.
Cet exercice fait partie du cours
Prétraitement pour le Machine Learning en Python
Instructions
- Ajoutez des paramètres appelés
original_vocab, pourtfidf_vec.vocabulary_, ettop_n. - Appelez
pd.Series()sur le dictionnaire zippé. Cela facilitera les opérations. - Utilisez la fonction
.sort_values()pour trier la série et découper l’index jusqu’auxtop_nmots. - Appelez la fonction en définissant
original_vocab=tfidf_vec.vocabulary_,vector_index=8pour récupérer la 9e ligne, ettop_n=3pour récupérer les 3 mots les mieux pondérés.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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, ____, ____))