Introductie tot word vectors

Natural Language Processing met spaCy

Azadeh Mobasher

Principal Data Scientist

Woordvectoren (embeddings)

 

  • Numerieke representaties van woorden
  • Bag-of-words-methode: {"I": 1, "got": 2, ...}

 

  • Oudere methoden vatten de betekenis niet:
Zinnen    I       got      covid   coronavirus
I got covid    1     2     3
I got coronavirus    1     2        4
Natural Language Processing met spaCy

Woordvectoren

  • Een vast aantal dimensies
  • Houdt rekening met woordfrequenties en de aanwezigheid van andere woorden in vergelijkbare contexten

Voorbeelden van woordvectoren

Natural Language Processing met spaCy

Woordvectoren

  • Meerdere benaderingen om woordvectoren te maken:

    • word2vec, GloVe, fastText en transformer-architecturen
  • Voorbeeld van een woordvector:

Voorbeeldwoordvector

Natural Language Processing met spaCy

spaCy-woordenschat

 

  • Onderdeel van veel spaCy-modellen.
  • en_core_web_md heeft 300-dimensionale vectoren voor 20.000 woorden.

 

import spacy
nlp = spacy.load("en_core_web_md")
print(nlp.meta["vectors"])
>>> {'width': 300, 'vectors': 20000, 'keys': 514157, 
'name': 'en_vectors', 'mode': 'default'}
Natural Language Processing met spaCy

Woordvectoren in spaCy

  • nlp.vocab: toegang tot de vocabulaire (Vocab-klasse)
  • nlp.vocab.strings: toegang tot woord-ID's in de vocabulaire
import  spacy
nlp = spacy.load("en_core_web_md")
like_id = nlp.vocab.strings["like"]
print(like_id)
>>> 18194338103975822726
  • .vocab.vectors: toegang tot woordvectoren van een model of een woord via de bijbehorende ID
print(nlp.vocab.vectors[like_id])
>>> array([-2.3334e+00, -1.3695e+00, -1.1330e+00, -6.8461e-01, ...])
Natural Language Processing met spaCy

Laten we oefenen!

Natural Language Processing met spaCy

Preparing Video For Download...