Giới thiệu về vector từ

Xử lý ngôn ngữ tự nhiên với spaCy

Azadeh Mobasher

Principal Data Scientist

Vector từ (embedding)

 

  • Biểu diễn số của từ
  • Phương pháp túi từ: {"I": 1, "got": 2, ...}

 

  • Các phương pháp cũ không nắm bắt được nghĩa:
Câu    I       got      covid   coronavirus
I got covid    1     2     3
I got coronavirus    1     2        4
Xử lý ngôn ngữ tự nhiên với spaCy

Vector từ

  • Số chiều cố định
  • Xét tần suất từsự xuất hiện của từ khác trong ngữ cảnh tương tự

Ví dụ vector từ

Xử lý ngôn ngữ tự nhiên với spaCy

Vector từ

  • Nhiều cách để tạo vector từ:

    • word2vec, GloVe, fastText và kiến trúc dựa trên transformer
  • Ví dụ về một vector từ:

Ví dụ vector từ

Xử lý ngôn ngữ tự nhiên với spaCy

Từ vựng trong spaCy

 

  • Là một phần của nhiều mô hình spaCy.
  • en_core_web_md có vector 300 chiều cho 20.000 từ.

 

import spacy
nlp = spacy.load("en_core_web_md")
print(nlp.meta["vectors"])
>>> {'width': 300, 'vectors': 20000, 'keys': 514157, 
'name': 'en_vectors', 'mode': 'default'}
Xử lý ngôn ngữ tự nhiên với spaCy

Vector từ trong spaCy

  • nlp.vocab: truy cập từ vựng (lớp Vocab)
  • nlp.vocab.strings: truy cập ID từ trong từ vựng
import  spacy
nlp = spacy.load("en_core_web_md")
like_id = nlp.vocab.strings["like"]
print(like_id)
>>> 18194338103975822726
  • .vocab.vectors: truy cập vector từ của mô hình hoặc của một từ theo ID tương ứng
print(nlp.vocab.vectors[like_id])
>>> array([-2.3334e+00, -1.3695e+00, -1.1330e+00, -6.8461e-01, ...])
Xử lý ngôn ngữ tự nhiên với spaCy

Hãy luyện tập!

Xử lý ngôn ngữ tự nhiên với spaCy

Preparing Video For Download...