Esplorare i vettori di testo, parte 1
Approfondiamo il metodo di esplorazione dei vettori di testo che abbiamo appena visto, usando i vettori tf/idf del campo title del dataset volunteer. In questa prima parte dell’esplorazione dei vettori di testo, andremo ad ampliare la funzione vista nelle diapositive. Con la funzione restituiremo un elenco di numeri. Nel prossimo esercizio, scriveremo un’altra funzione per raccogliere le parole principali su tutti i documenti, estrarle e poi usare quell’elenco per filtrare il nostro vettore text_tfidf.
Questo esercizio fa parte del corso
Preprocessing per il Machine Learning in Python
Istruzioni dell'esercizio
- Aggiungi i parametri chiamati
original_vocab, pertfidf_vec.vocabulary_, etop_n. - Chiama
pd.Series()sul dizionario compresso con zip. Questo renderà le operazioni successive più semplici. - Usa la funzione
.sort_values()per ordinare la serie e affetta l’indice fino atop_nparole. - Chiama la funzione impostando
original_vocab=tfidf_vec.vocabulary_, impostandovector_index=8per prendere la 9ª riga e impostandotop_n=3per ottenere le prime 3 parole con peso maggiore.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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, ____, ____))