Introduction to word vectors

การประมวลผลภาษาธรรมชาติด้วย spaCy

Azadeh Mobasher

Principal Data Scientist

Word vectors (embeddings)

 

  • การแทนคำด้วยตัวเลข
  • วิธี Bag of words: {"I": 1, "got": 2, ...}

 

  • วิธีเก่าไม่สามารถเข้าใจความหมายของคำได้:
ประโยค    I       got      covid   coronavirus
I got covid    1     2     3
I got coronavirus    1     2        4
การประมวลผลภาษาธรรมชาติด้วย spaCy

Word vectors

  • มีจำนวนมิติที่กำหนดไว้ล่วงหน้า
  • คำนึงถึงความถี่ของคำและการปรากฏของคำอื่นในบริบทที่คล้ายกัน

ตัวอย่าง word vectors

การประมวลผลภาษาธรรมชาติด้วย spaCy

Word vectors

  • มีหลายแนวทางในการสร้าง word vectors:

    • word2vec, Glove, fastText และสถาปัตยกรรม transformer
  • ตัวอย่าง word vector:

ตัวอย่าง word vector

การประมวลผลภาษาธรรมชาติด้วย 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'}
การประมวลผลภาษาธรรมชาติด้วย spaCy

Word vectors ใน 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: เข้าถึง word vectors ของโมเดลหรือของคำ โดยใช้ ID ที่ตรงกัน
print(nlp.vocab.vectors[like_id])
>>> array([-2.3334e+00, -1.3695e+00, -1.1330e+00, -6.8461e-01, ...])
การประมวลผลภาษาธรรมชาติด้วย spaCy

มาฝึกกันเถอะ!

การประมวลผลภาษาธรรมชาติด้วย spaCy

Preparing Video For Download...