Introduzione ai word vector

Natural Language Processing con spaCy

Azadeh Mobasher

Principal Data Scientist

Word vector (embedding)

 

  • Rappresentazioni numeriche delle parole
  • Metodo bag of words: {"I": 1, "got": 2, ...}

 

  • I metodi più vecchi non colgono il significato:
Frasi    I       got      covid   coronavirus
I got covid    1     2     3
I got coronavirus    1     2        4
Natural Language Processing con spaCy

Word vector

  • Un numero di dimensioni predefinito
  • Considera frequenze delle parole e la presenza di altre parole in contesti simili

Esempi di word vector

Natural Language Processing con spaCy

Word vector

  • Più approcci per creare word vector:

    • word2vec, Glove, fastText e architetture basate su transformer
  • Un esempio di word vector:

Esempio di word vector

Natural Language Processing con spaCy

Vocabolario spaCy

 

  • Parte di molti modelli spaCy.
  • en_core_web_md ha vettori a 300 dimensioni per 20.000 parole.

 

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 con spaCy

Word vector in spaCy

  • nlp.vocab: per accedere al vocabolario (classe Vocab)
  • nlp.vocab.strings: per accedere agli ID delle parole nel vocabolario
import  spacy
nlp = spacy.load("en_core_web_md")
like_id = nlp.vocab.strings["like"]
print(like_id)
>>> 18194338103975822726
  • .vocab.vectors: per accedere ai vettori del modello o di una parola dato il relativo ID
print(nlp.vocab.vectors[like_id])
>>> array([-2.3334e+00, -1.3695e+00, -1.1330e+00, -6.8461e-01, ...])
Natural Language Processing con spaCy

Esercitiamoci!

Natural Language Processing con spaCy

Preparing Video For Download...