1) 내부 단어의 학습
- FastText에서는 각 단어는 글자 단위 n-gram의 구성으로 취급한다.
- n을 몇으로 결정하는지에 따라서 단어들이 얼마나 분리되는지 결정된다.
# n = 3인 경우
<ap, app, ppl, ple, le>, <apple>
- 실제 사용할 때는 n의 최소값과 최대값으로 범위를 설정할 수 있는데, 기본값으로 각 3과 6으로 설정되어져 있다.
# n = 3 ~ 6인 경우
<ap, app, ppl, ppl, le>, <app, appl, pple, ple>, <appl, pple>, ..., <apple>
- 단어의 벡터 값 = 내부 단어들의 벡터값 총 합
apple =
<ap + app + ppl + ppl + le>
+
<app + appl + pple + ple>
+
<appl + pple>
+ , ..., +
<apple>
2) 모르는 단어 (Out Of Vocabulary, OOV)에 대한 대응
- FastText의 인공 신경망을 학습한 후에는 데이터 셋의 모든 단어의 각 n-gram에 대해서 워드 임베딩 된다.
- 데이터 셋만 충분하다면 내부 단어를 통해 모르는 단어에 대해서도 다른 단어와의 유사도를 계산할 수 있다.
- ex) 'birthplace'란 단어를 'birth', 'place'라는 내부 단어가 있었다면 'birthplace'의 벡터를 얻을 수 있다.
3) 단어 집합 내 빈도 수가 적었던 단어(Rare Word)에 대한 대응
- 희귀 단어라도, 단어의 n-gram이 다른 단어의 n-gram과 겹치는 경우라면 비교적 높은 임베딩 벡터값을 얻는다.
- 코퍼스에 오타나 맞춤법이 틀린 단어가 있는 경우, FastText는 이에 대해 일정 수준의 성능을 보인다.
'ML & DL & Data Science' 카테고리의 다른 글
[워드 임베딩] 워드 임베딩 (0) | 2022.08.08 |
---|---|
[텍스트 전처리] 패딩 (0) | 2022.08.07 |
[데이터마이닝] Pandas 기본 사용법 (0) | 2022.06.22 |
[데이터마이닝] Numpy 기본 사용법 (0) | 2022.06.22 |
[딥러닝] MNIST 손글씨 예측 (0) | 2022.06.22 |