더북(TheBook)

사전에 없는 단어에 벡터 값을 부여하는 방법

패스트텍스트는 주어진 문서의 각 단어를 n-그램(n-gram)으로 표현합니다. 이때 n의 설정에 따라 단어의 분리 수준이 결정됩니다. 예를 들어 n을 3으로 설정(트라이그램(trigram))하면 ‘This is Deep Learning Book’은 This is Deep, is Deep Learning, Deep Learning Book으로 분리한 후 임베딩합니다. 즉, 다음 그림과 같이 분리됩니다.

▲ 그림 10-7 트라이그램

n 값에 따른 단어의 분리(부분 단어(subword))는 다음 표와 같습니다.

▼ 표 10-1 n 값에 따른 단어의 분리

문장

n 값

단어의 분리

This is Deep Learning Book

1

<This, is, Deep, Learning, Book>

2

<This is, is Deep, Deep Learning, Learning Book>

3

<This is Deep, is Deep Learning, Deep Learning Book>

패스트텍스트는 인공 신경망을 이용하여 학습이 완료된 후 데이터셋의 모든 단어를 각 n-그램에 대해 임베딩합니다. 따라서 사전에 없는 단어가 등장한다면 n-그램으로 분리된 부분 단어와 유사도를 계산하여 의미를 유추할 수 있습니다.

Note ≡ | n-그램

n-그램(n-gram)은 n개의 어절/음절을 연쇄적으로 분류하여 그 빈도를 따집니다. n이 1일 때를 유니그램(unigram)이라 하고, n이 2일 때를 바이그램(bigram)이라 하고, n이 3일 때를 트라이그램(trigram)이라고 합니다.

예를 들어 다음 문장에 대한 바이그램을 살펴볼 수 있습니다.

“소파 위에 있는 고양이가 낮잠을 자고 있습니다.”
                ↓ 바이그램 적용 결과
[‘소파’, ‘위에’], [‘위에’, ‘있는’], [‘있는’, ‘고양이가’], [‘고양이가’, ‘낮잠을’], [‘낮잠을’, ‘자고’], [‘자고’, ‘있습니다.’]

이와 같이 n-그램은 문자열에서 n개의 연속된 요소를 추출할 때 유용합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.