Projektion von Wortvektoren
Du kannst Wortvektoren in einem Streudiagramm visualisieren, um besser zu verstehen, wie die Vokabeln gruppiert sind. Damit das funktioniert, musst du die Vektoren in einen zweidimensionalen Raum projizieren. Das geht, indem du die beiden Hauptkomponenten per Principal Component Analysis (PCA) extrahierst.
In dieser Übung übst du, wie du Wortvektoren extrahierst und sie mit der PCA-Bibliothek aus sklearn in einen zweidimensionalen Raum projizierst.
Eine kurze Wortliste steht in der Liste words bereit, außerdem ist das Modell en_core_web_md verfügbar und als nlp geladen. Alle benötigten Bibliotheken und Pakete sind bereits importiert (PCA, numpy als np).
Diese Übung ist Teil des Kurses
Natural Language Processing mit spaCy
Anleitung zur Übung
- Extrahiere die Wort-IDs der gegebenen Wörter und speichere sie in der Liste
word_ids. - Extrahiere die ersten fünf Elemente der Wortvektoren der Wörter und staple sie anschließend mit
np.vstack()vertikal inword_vectors. - Berechne mit einem gegebenen
pca-Objekt die transformierten Wortvektoren über die Funktion.fit_transform()derpca-Klasse. - Gib die erste Komponente der transformierten Wortvektoren mit dem Index
[:, 0]aus.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
words = ["tiger", "bird"]
# Extract word IDs of given words
word_ids = [nlp.____.____[w] for w in words]
# Extract word vectors and stack the first five elements vertically
word_vectors = np.vstack([nlp.____.____[i][:5] for i in word_ids])
# Calculate the transformed word vectors using the pca object
pca = PCA(n_components=2)
word_vectors_transformed = pca.____(____)
# Print the first component of the transformed word vectors
print(____[:, 0])