본문 바로가기

Study/ML 공부

워드 임베딩과 텍스트 벡터화 차이점

텍스트 벡터화와 워드 임베딩 차이점

  • 워드 임베딩과 텍스트 벡터화의 차이점보다 횟수 기반 임베딩예측 기반 임베딩 차이점으로 봐주시면 감사하겠습니다.
  • 텍스트 벡터화는 단순히 단어가 출현한 빈도를 고려하는 방법이고 워드 임베딩은 단어들 간의 의미를 고려해 예측하면서 단어를 벡터로 만드는 차이점을 가지고 있습니다.

텍스트 벡터화 Vectorization?

  • 텍스트를 수치형 텐서로 변환하는 과정
  • 자연어 처리(NLP : Natural Language Processing)에서 주로 사용
  • 특징을 추출하는 방법 중 하나임
  • 입력 데이터를 원시 형식(텍스트)에서 머신럴닝 모델이 지원하는 형식인 실수 벡터로 변환하는 방식에 대한 전문 용어

텍스트 벡터화 방식

  • 희소 표현 방식(Sparse Representation)
  • 밀집 표현 방식(Dense Representation)

벡터화 기술

Bag of Words
  • 밀집 표현 방식에서의 횟수 기반 임베딩
  • 가장 간단하게 많이 사용되는 기술
  • 단어 빈도수에 집중하며 단어들의 순서는 고려하지않고 수치화하는 방법

3가지 과정

1. Tokenization(토큰화)

  • 모든 입력 테스트에 대해 토큰화함

2. Vocabulary creation(어휘 생성)

  • 토큰화 단어 중 고유한 단어만 어휘를 생성하여 정렬

3. vector creation(벡터 생성)

  • 단어 토큰의 등장 횟수를 기록한 벡터를 생성

Scikit-Learn에서 제공하는 BoW 기반 벡터화(Vectorizer) 패키지

1. DictVectorizer

  • 단어 사용 빈도를 나타내는 Dictionary 입력받아 벡터 화

2. CountVectorizer

  • 문서를 토큰 리스트로 변환 후 출현 빈도를 세고 벡터 화

3. TF-IDF(Term Frequency - Inverse Document Frequency)

  • 단어를 갯수 그대로 세지 않음
  • 모든 문서에 공통적으로 들어있는 단어의 경우 문서 구별 능력이 떨어진다고 보고 가중치를 축소하는 방법

4. HashingVectorizer

  • 해시 함수를 사용해서 단어에 대해 인덱스 번호를 생성하여 메모리 및 실행 시간을 단축

Word Embedding

  • 자연어 처리에서의 워드 임베딩은 일반적으로 단어를 연속적인 벡터로 매핑하는 것
  • BOW에서는 단어 순서들을 고려하지 않고 벡터화해서 단어들 간의 의미를 고려하지 못함
  • 워드 임베딩은 원-핫 벡터가 아니라 연속된 숫자들의 표현으로 해당 문제를 해결
워드 임베딩 대표적인 방법
  • CBOW
  • Skip-gram

CBOW

  • 단어를 여러 개 나열한 후 이와 관련된 단어를 추정하는 방식

Skip-Gram

  • CBOW 방식과 반대로 특정한 단어에서 문맥이 될 수 있는 단어를 예측