Вступ до векторів слів

Обробка природної мови (NLP) зі spaCy

Azadeh Mobasher

Principal Data Scientist

Вектори слів (embeddings)

 

  • Числові подання слів
  • Метод «мішок слів»: {"I": 1, "got": 2, ...}

 

  • Старі методи не розуміють значення:
Sentences    I       got      covid   coronavirus
I got covid    1     2     3
I got coronavirus    1     2        4
Обробка природної мови (NLP) зі spaCy

Вектори слів

  • Фіксована кількість вимірів
  • Враховує частоти слів і наявність інших слів у подібних контекстах

Приклади векторів слів

Обробка природної мови (NLP) зі spaCy

Вектори слів

  • Кілька підходів до побудови векторів слів:

    • word2vec, Glove, fastText і трансформерні архітектури
  • Приклад вектора слова:

Приклад вектора слова

Обробка природної мови (NLP) зі spaCy

Словник spaCy

 

  • Частина багатьох моделей spaCy.
  • en_core_web_md має 300-вимірні вектори для 20 000 слів.

 

import spacy
nlp = spacy.load("en_core_web_md")
print(nlp.meta["vectors"])
>>> {'width': 300, 'vectors': 20000, 'keys': 514157, 
'name': 'en_vectors', 'mode': 'default'}
Обробка природної мови (NLP) зі spaCy

Вектори слів у spaCy

  • nlp.vocab: доступ до словника (клас Vocab)
  • nlp.vocab.strings: доступ до ID слів у словнику
import  spacy
nlp = spacy.load("en_core_web_md")
like_id = nlp.vocab.strings["like"]
print(like_id)
>>> 18194338103975822726
  • .vocab.vectors: доступ до векторів слів моделі або слова за його ID
print(nlp.vocab.vectors[like_id])
>>> array([-2.3334e+00, -1.3695e+00, -1.1330e+00, -6.8461e-01, ...])
Обробка природної мови (NLP) зі spaCy

Давайте потренуємось!

Обробка природної мови (NLP) зі spaCy

Preparing Video For Download...