단어 벡터 소개

spaCy로 배우는 자연어 처리

Azadeh Mobasher

Principal Data Scientist

단어 벡터(임베딩)

 

  • 단어의 수치 표현
  • Bag of words 방법: {"I": 1, "got": 2, ...}

 

  • 과거 방법은 의미를 반영하지 못함:
문장    I       got      covid   coronavirus
I got covid    1     2     3
I got coronavirus    1     2        4
spaCy로 배우는 자연어 처리

단어 벡터

  • 고정된 차원 수
  • 단어 빈도, 공기 단어와의 유사 문맥을 고려

단어 벡터 예시

spaCy로 배우는 자연어 처리

단어 벡터

  • 단어 벡터를 만드는 여러 접근법:

    • word2vec, GloVe, fastText, 트랜스포머 기반 아키텍처
  • 단어 벡터 예:

단어 벡터 예

spaCy로 배우는 자연어 처리

spaCy 어휘집

 

  • 다수의 spaCy 모델에 포함됨
  • en_core_web_md20,000개 단어에 대해 300차원 벡터 제공

 

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로 배우는 자연어 처리

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, ...])
spaCy로 배우는 자연어 처리

연습해 봅시다!

spaCy로 배우는 자연어 처리

Preparing Video For Download...