Wprowadzenie do wektorów słów

Przetwarzanie języka naturalnego z użyciem spaCy

Azadeh Mobasher

Principal Data Scientist

Wektory słów (embeddingi)

 

  • Numeryczne reprezentacje słów
  • Metoda worka słów: {"I": 1, "got": 2, ...}

 

  • Starsze metody nie pozwalają zrozumieć znaczenia:
Zdania    I       got      covid   coronavirus
I got covid    1     2     3
I got coronavirus    1     2        4
Przetwarzanie języka naturalnego z użyciem spaCy

Wektory słów

  • Z góry określona liczba wymiarów
  • Uwzględnia częstotliwości słów i obecność innych słów w podobnych kontekstach

Przykłady wektorów słów

Przetwarzanie języka naturalnego z użyciem spaCy

Wektory słów

  • Wiele metod tworzenia wektorów słów:

    • word2vec, GloVe, fastText i architektury oparte na transformerach
  • Przykład wektora słowa:

Przykład wektora słowa

Przetwarzanie języka naturalnego z użyciem spaCy

Słownik spaCy

 

  • Element wielu modeli spaCy.
  • en_core_web_md zawiera wektory 300-wymiarowe dla 20 000 słów.

 

import spacy
nlp = spacy.load("en_core_web_md")
print(nlp.meta["vectors"])
>>> {'width': 300, 'vectors': 20000, 'keys': 514157, 
'name': 'en_vectors', 'mode': 'default'}
Przetwarzanie języka naturalnego z użyciem spaCy

Wektory słów w spaCy

  • nlp.vocab: dostęp do słownika (klasa Vocab)
  • nlp.vocab.strings: dostęp do identyfikatorów słów w słowniku
import  spacy
nlp = spacy.load("en_core_web_md")
like_id = nlp.vocab.strings["like"]
print(like_id)
>>> 18194338103975822726
  • .vocab.vectors: dostęp do wektorów słów modelu lub słowa na podstawie jego identyfikatora
print(nlp.vocab.vectors[like_id])
>>> array([-2.3334e+00, -1.3695e+00, -1.1330e+00, -6.8461e-01, ...])
Przetwarzanie języka naturalnego z użyciem spaCy

Czas na ćwiczenia!

Przetwarzanie języka naturalnego z użyciem spaCy

Preparing Video For Download...