2023. 11. 3. 10:22ㆍML&DL/NLP
벡터화 (Vectorization)
1. 신경망 사용하지 않을 경우
- 단어 : 원-핫 인코딩
- 문서 : Document Term Matrix, TF-IDF
2. 신경망 사용할 경우
- 단어 : 워드 임베딩 (Word2Vec, GloVe, FastText, Embedding layer)
- 문서 : Doc2Vec, Sent2Vec
3. 문맥을 고려한 벡터 표현 방법
- ELMo,BERT,GPT,T5 (Pre-trained model)
단어의 벡터화 : 원-핫 인코딩
- 전체 단어 집합의 크기를 벡터의 차원으로 가진다 (0 과 1로 이루어져있음)
- 각 단어에 고유한 정수 인덱스를 부여, 해당 인덱스의 원소는 1로 나머지 원소는 0을 가지는 벡터
ex) 다음과 같이 정수 인코딩이 되었다면,
과일이 | 0 |
길고 | 1 |
노란 | 2 |
먹고 | 3 |
바나나 | 4 |
과일이 = [0,0,0,0,0]
길고 = [0,1,0,0,0]
노란 = [0,0,1,0,0]
먹고 = [0,0,0,1,0]
바나나 = [0,0,0,0,1]
각 단어는 이러한 원-핫 벡터를 가짐
원-핫 인코딩의 한계
- 각 단어 벡터 간의 유사도를 구할 수 없음
=> 워드 임베딩 방법은 가능
단어의 벡터화 : 워드 임베딩
- 인공 신경망을 이용하여 단어의 벡터값을 얻는 방법
- 학습 후에는 각 단어 벡터 간의 유사도를 계산할 수 있음
문서의 벡터화 : Document Term Matrix
- DTM은 마찬가지로 벡터가 단어 집합의 크기를 가지며 대부분의 원소가 0을 가진다
- 각 단어는 고유한 정수 인덱스를 가지며, 해당 단어의 등장 횟수를 해당 인덱스의 값을 가진다.
- Bag of Words 가설 기반 방법론 => 순서는 무시하고 단어의 빈도수에만 집중함
문서의 벡터화 : TF-IDF
- DTM에서 추가적으로 중요한 단어에 가중치를 주는 방식
- 중요한 단어는 값 ↑ 중요하지 않은 단어는 값 ↓
- 모든 문서에서 자주 등장하는 단어는 중요도가 낮다고 판단, 특정 문서에서만 자주 등장하는 단어는 중요도가 높다고 판단
- 문서를 벡터화한다면 각 문서간의 유사도를 구할 수 있다.
문서간의 유사도를 구할 수 있다면? 이런 것이 가능
1. 문서 클러스팅
2.유사한 문서 찾기
3. 문서 분류 문제
'ML&DL > NLP' 카테고리의 다른 글
[NLP] 텍스트 벡터화 : 워드 임베딩(Word embedding) 실습 (1) | 2023.11.03 |
---|---|
[NLP] 텍스트 벡터화 : TF-IDF 실습 (1) | 2023.11.03 |
[NLP] 데이터 전처리 - 정수 인코딩 / 패딩 실습 (0) | 2023.11.02 |
[NLP] 데이터 전처리 - 정제 / 정규화 (0) | 2023.09.27 |
[NLP] 데이터 전처리 - 영어/ 한국어 토큰화 실습 (0) | 2023.09.21 |