https://wikidocs.net/22883

 

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는 이에 대해 일정 수준의 성능을 보인다.

 

 

+ Recent posts