텍스트 벡터화와 워드 임베딩 차이점
- 워드 임베딩과 텍스트 벡터화의 차이점보다 횟수 기반 임베딩과 예측 기반 임베딩 차이점으로 봐주시면 감사하겠습니다.
- 텍스트 벡터화는 단순히 단어가 출현한 빈도를 고려하는 방법이고 워드 임베딩은 단어들 간의 의미를 고려해 예측하면서 단어를 벡터로 만드는 차이점을 가지고 있습니다.
텍스트 벡터화 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 방식과 반대로 특정한 단어에서 문맥이 될 수 있는 단어를 예측
'Study > ML 공부' 카테고리의 다른 글
Bayesian Optimization(베이지안 최적화)란? (0) | 2022.08.14 |
---|---|
[Study] SVD vs TruncatedSVD 차이점 (0) | 2022.05.21 |
[Study] AdaBoosting vs GradientBoosting 차이점 (0) | 2022.04.17 |
[Study] ExtraTreesClassifier vs RandomForestClassifier 차이점 (0) | 2022.04.03 |
원핫인코더 fit은 한번만 할 껀데? (feat.check_is_fitted, try-except , if - else) (0) | 2022.03.23 |