NLP 기초 (3)

정원국·2022년 5월 23일
0

NLP 기초

목록 보기
3/7

FastText (패스트 텍스트)

  • FaceBook 에서 개발한 Word2Vec 알고리즘

  • 단어 단위에서 더 쪼깬 "subword" 의 개념을 도입
    - 글자 단위의 n-gram
    - mouse의 3-gram 표현은 = <mo, mou, ous, use, se> : 5개의 embedding vector 필요
    - Then, mouse = <mo + mou+ ous+ use+ se>

  • Why..?

    < OOV (Out-of-Vocabulary) 처리에 유리 >

    • 데이터세으로 학습하는 단어의 수 : 많아봐야 수만 ~ 수십만개
    • 한 언어의 모든 단어 학습이 불가능
    • 모르는 단어 (Out-of-Vocabulary, OOV) 가 등장할 경우 대처?

      - Word2Vec, GloVe에서는 처리 불가능 (처리 불가 error)
      - Ex) backdrop = back + drop : 이런식으로 느낌을 살려서 이해할수 있다.
      - Ex) downside = down + side


      < Rare Words >
    • 빈도 수가 적은 단어들은 전처리 과정에서 제외하기도 함 ( 정제, 추출 )
      - 이들은 Word2Vec 임베딩 결과도 좋지 않음

    • FastText는 Typo (오타)에 대해서도 강인함

사전 훈련 모델 (Pre-trained Word Embedding)

  • 지도학습에서 trainning dataset이 적을 경우 underfitting 발생 가능
  • 이를 해결하기 위해 사전에 훈련되어 있는 model을 가져와 사용
  • CBOW, GLoVe, FastText 등으로 훈련된 사전 모델들이 존재


    Pre-trained Word Embedding : Procedure
    - [1] 사전 훈련된 Word2Vec 데이터셋을 불러온다
    - [2] 데이터셋의 특성과 자료형을 파악한다 (visualization 등)
    - [3] 원하는 Task 수행


PCA: Principal Component Analysis

  • Word2Vec의 시각화를 위한 분석 방법 (차원축소)
  • 3D-world 에서 이해하기:
  • Word2Vec 임베딩 (100차원) → 2차원으로 줄이기 (평면 시각화)
from sklearn.decomposition import PCA 
pca = PCA(n_components = 2)
pcafit = pca.fit_transform(word_vec_list)
profile
Data scientist 지망생

0개의 댓글