Úvod do slovních vektorů

Zpracování přirozeného jazyka s knihovnou spaCy

Azadeh Mobasher

Principal Data Scientist

Slovní vektory (embeddingy)

 

  • Číselné reprezentace slov
  • Metoda bag of words: {"I": 1, "got": 2, ...}

 

  • Starší metody neumožňují pochopit význam:
Věty    I       got      covid   coronavirus
I got covid    1     2     3
I got coronavirus    1     2        4
Zpracování přirozeného jazyka s knihovnou spaCy

Slovní vektory

  • Předem definovaný počet dimenzí
  • Zohledňuje frekvence slov a přítomnost jiných slov v podobných kontextech

Příklady slovních vektorů

Zpracování přirozeného jazyka s knihovnou spaCy

Slovní vektory

  • Více přístupů k vytváření slovních vektorů:

    • word2vec, Glove, fastText a architektury založené na transformerech
  • Příklad slovního vektoru:

Příklad slovního vektoru

Zpracování přirozeného jazyka s knihovnou spaCy

Slovník spaCy

 

  • Součást mnoha modelů spaCy.
  • en_core_web_md obsahuje 300-dimenzionální vektory pro 20 000 slov.

 

import spacy
nlp = spacy.load("en_core_web_md")
print(nlp.meta["vectors"])
>>> {'width': 300, 'vectors': 20000, 'keys': 514157, 
'name': 'en_vectors', 'mode': 'default'}
Zpracování přirozeného jazyka s knihovnou spaCy

Slovní vektory v spaCy

  • nlp.vocab: přístup ke slovníku (třída Vocab)
  • nlp.vocab.strings: přístup k ID slov ve slovníku
import  spacy
nlp = spacy.load("en_core_web_md")
like_id = nlp.vocab.strings["like"]
print(like_id)
>>> 18194338103975822726
  • .vocab.vectors: přístup k vektorům slov modelu nebo slova podle jeho ID
print(nlp.vocab.vectors[like_id])
>>> array([-2.3334e+00, -1.3695e+00, -1.1330e+00, -6.8461e-01, ...])
Zpracování přirozeného jazyka s knihovnou spaCy

Pojďme procvičovat!

Zpracování přirozeného jazyka s knihovnou spaCy

Preparing Video For Download...