Projectie van woordvectoren
Je kunt woordvectoren visualiseren in een scatterplot om beter te begrijpen hoe woorden in de woordenschat gegroepeerd zijn. Om woordvectoren te visualiseren, moet je ze projecteren naar een tweedimensionale ruimte. Dit kan door de twee hoofdcomponenten te extraheren met Principal Component Analysis (PCA).
In deze oefening ga je oefenen met het extraheren van woordvectoren en ze projecteren naar tweedimensionale ruimte met behulp van de PCA-bibliotheek uit sklearn.
Een korte lijst met woorden staat in de lijst words en het en_core_web_md-model is beschikbaar. Het model is geladen als nlp. Alle benodigde libraries en packages zijn al voor je geïmporteerd (PCA, numpy als np).
Deze oefening maakt deel uit van de cursus
Natural Language Processing met spaCy
Oefeninstructies
- Haal de woord-ID's op van de gegeven woorden en sla ze op in de lijst
word_ids. - Haal de eerste vijf elementen van de woordvectoren van de woorden op en stapel ze vervolgens verticaal met
np.vstack()inword_vectors. - Gegeven een
pca-object, bereken de getransformeerde woordvectoren met de functie.fit_transform()van depca-klasse. - Print de eerste component van de getransformeerde woordvectoren met
[:, 0]-indexering.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
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])