IniziaInizia gratis

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

Visualizza il corso

Istruzioni dell'esercizio

  • Aggiungi i parametri chiamati original_vocab, per tfidf_vec.vocabulary_, e top_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 a top_n parole.
  • Chiama la funzione impostando original_vocab=tfidf_vec.vocabulary_, impostando vector_index=8 per prendere la 9ª riga e impostando top_n=3 per 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, ____, ____))
Modifica ed esegui il codice