Introduction aux vecteurs de mots

Traitement du langage naturel avec spaCy

Azadeh Mobasher

Principal Data Scientist

Vecteurs de mots (plongements)

 

  • Représentations numériques des mots
  • Méthode sac de mots : {"I": 1, "got": 2, ...}

 

  • Les anciennes méthodes ne captent pas le sens :
Phrases    I       got      covid   coronavirus
I got covid    1     2     3
I got coronavirus    1     2        4
Traitement du langage naturel avec spaCy

Vecteurs de mots

  • Un nombre de dimensions prédéfini
  • Tient compte des fréquences et de la présence d'autres mots dans des contextes similaires

Exemples de vecteurs de mots

Traitement du langage naturel avec spaCy

Vecteurs de mots

  • Plusieurs approches pour produire des vecteurs de mots :

    • word2vec, GloVe, fastText et architectures à base de transformeurs
  • Exemple de vecteur de mot :

Exemple de vecteur de mot

Traitement du langage naturel avec spaCy

Vocabulaire spaCy

 

  • Intégrés à plusieurs modèles spaCy.
  • en_core_web_md contient des vecteurs en 300 dimensions pour 20 000 mots.

 

import spacy
nlp = spacy.load("en_core_web_md")
print(nlp.meta["vectors"])
>>> {'width': 300, 'vectors': 20000, 'keys': 514157, 
'name': 'en_vectors', 'mode': 'default'}
Traitement du langage naturel avec spaCy

Vecteurs de mots dans spaCy

  • nlp.vocab : pour accéder au vocabulaire (classe Vocab)
  • nlp.vocab.strings : pour accéder aux ID de mots du vocabulaire
import  spacy
nlp = spacy.load("en_core_web_md")
like_id = nlp.vocab.strings["like"]
print(like_id)
>>> 18194338103975822726
  • .vocab.vectors : pour accéder aux vecteurs de mots d'un modèle ou d'un mot, en utilisant son ID correspondant
print(nlp.vocab.vectors[like_id])
>>> array([-2.3334e+00, -1.3695e+00, -1.1330e+00, -6.8461e-01, ...])
Traitement du langage naturel avec spaCy

Passons à la pratique !

Traitement du langage naturel avec spaCy

Preparing Video For Download...