Textvektoren erkunden, Teil 1
Lass uns die Methode zur Erkundung von Textvektoren, die wir gerade gelernt haben, erweitern – mit den tf/idf-Vektoren der Spalte title aus dem volunteer-Datensatz. In diesem ersten Teil der Textvektor-Erkundung erweitern wir die Funktion, die wir in den Folien kennengelernt haben. Die Funktion gibt eine Liste von Zahlen zurück. In der nächsten Übung schreiben wir eine weitere Funktion, die die Top-Wörter über alle Dokumente sammelt, sie extrahiert und dann diese Liste nutzt, um unseren text_tfidf-Vektor zu filtern.
Diese Übung ist Teil des Kurses
Vorverarbeitung für Machine Learning in Python
Anleitung zur Übung
- Füge Parameter namens
original_vocabfürtfidf_vec.vocabulary_undtop_nhinzu. - Rufe
pd.Series()auf dem gezippten Dictionary auf. Das macht die Weiterverarbeitung einfacher. - Verwende die Funktion
.sort_values(), um die Series zu sortieren, und slice den Index bis zu dentop_nWörtern. - Rufe die Funktion auf, setze
original_vocab=tfidf_vec.vocabulary_, setzevector_index=8, um die 9. Zeile zu holen, und setzetop_n=3, um die 3 höchstgewichteten Wörter zu erhalten.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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, ____, ____))