Introduktion till ordvektorer

Naturlig språkbehandling med spaCy

Azadeh Mobasher

Principal Data Scientist

Ordvektorer (embeddings)

 

  • Numeriska representationer av ord
  • Bag of words-metoden: {"I": 1, "got": 2, ...}

 

  • Äldre metoder kan inte fånga betydelsen:
Meningar    I       got      covid   coronavirus
I got covid    1     2     3
I got coronavirus    1     2        4
Naturlig språkbehandling med spaCy

Ordvektorer

  • Ett fördefinierat antal dimensioner
  • Tar hänsyn till ordfrekvenser och förekomsten av andra ord i liknande sammanhang

Exempel på ordvektorer

Naturlig språkbehandling med spaCy

Ordvektorer

  • Flera metoder för att skapa ordvektorer:

    • word2vec, Glove, fastText och transformerbaserade arkitekturer
  • Ett exempel på en ordvektor:

Exempel på ordvektor

Naturlig språkbehandling med spaCy

spaCy-vokabulär

 

  • Ingår i många spaCy-modeller.
  • en_core_web_md har 300-dimensionella vektorer för 20 000 ord.

 

import spacy
nlp = spacy.load("en_core_web_md")
print(nlp.meta["vectors"])
>>> {'width': 300, 'vectors': 20000, 'keys': 514157, 
'name': 'en_vectors', 'mode': 'default'}
Naturlig språkbehandling med spaCy

Ordvektorer i spaCy

  • nlp.vocab: för att komma åt vokabulären (klassen Vocab)
  • nlp.vocab.strings: för att komma åt ord-ID:n i ett vokabulär
import  spacy
nlp = spacy.load("en_core_web_md")
like_id = nlp.vocab.strings["like"]
print(like_id)
>>> 18194338103975822726
  • .vocab.vectors: för att komma åt ordvektorer i en modell eller för ett enskilt ord via dess ID
print(nlp.vocab.vectors[like_id])
>>> array([-2.3334e+00, -1.3695e+00, -1.1330e+00, -6.8461e-01, ...])
Naturlig språkbehandling med spaCy

Nu kör vi en övning!

Naturlig språkbehandling med spaCy

Preparing Video For Download...