Introducere în vectorii de cuvinte

Procesarea limbajului natural cu spaCy

Azadeh Mobasher

Principal Data Scientist

Vectori de cuvinte (embeddings)

 

  • Reprezentări numerice ale cuvintelor
  • Metoda bag of words: {"I": 1, "got": 2, ...}

 

  • Metodele mai vechi nu permit înțelegerea sensului:
Propoziții    I       got      covid   coronavirus
I got covid    1     2     3
I got coronavirus    1     2        4
Procesarea limbajului natural cu spaCy

Vectori de cuvinte

  • Un număr predefinit de dimensiuni
  • Ține cont de frecvența cuvintelor și de prezența altor cuvinte în contexte similare

Exemple de vectori de cuvinte

Procesarea limbajului natural cu spaCy

Vectori de cuvinte

  • Mai multe abordări pentru generarea vectorilor de cuvinte:

    • word2vec, Glove, fastText și arhitecturi bazate pe transformere
  • Exemplu de vector de cuvânt:

Exemplu de vector de cuvânt

Procesarea limbajului natural cu spaCy

Vocabularul spaCy

 

  • Parte din multe modele spaCy.
  • en_core_web_md are vectori de 300 de dimensiuni pentru 20.000 de cuvinte.

 

import spacy
nlp = spacy.load("en_core_web_md")
print(nlp.meta["vectors"])
>>> {'width': 300, 'vectors': 20000, 'keys': 514157, 
'name': 'en_vectors', 'mode': 'default'}
Procesarea limbajului natural cu spaCy

Vectori de cuvinte în spaCy

  • nlp.vocab: pentru accesarea vocabularului (clasa Vocab)
  • nlp.vocab.strings: pentru accesarea ID-urilor cuvintelor din vocabular
import  spacy
nlp = spacy.load("en_core_web_md")
like_id = nlp.vocab.strings["like"]
print(like_id)
>>> 18194338103975822726
  • .vocab.vectors: pentru accesarea vectorilor de cuvinte ai unui model sau ai unui cuvânt, pe baza ID-ului corespunzător
print(nlp.vocab.vectors[like_id])
>>> array([-2.3334e+00, -1.3695e+00, -1.1330e+00, -6.8461e-01, ...])
Procesarea limbajului natural cu spaCy

Să exersăm!

Procesarea limbajului natural cu spaCy

Preparing Video For Download...