# FastText - 패스트텍스트

## 개요

![](https://728901758-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-L_Wo7SRUvbKJuPojzzZ%2F-LnbF3F-y57NcMBoUtfZ%2F-LnbF84gCgISX6sBhl17%2Fimage.png?alt=media\&token=5f8b5271-275b-427f-ab75-e6f5683e8c09)

**FastText**는 페이스북에서 개발한 **워드 임베딩 알고리즘**이다. 워드투벡터는 본 프로젝트의 목적에 매우 적합한 용도를 가지고 있지만, 고질적인 OOV 문제를 해결하지 못하여 고민하던  중, FastText가 워드투벡터 기반의 방법에서 N-gram 기법으로 **OOV 문제를 개선 모델**이 등장하게 되었다.

## FastText - 패스트텍스트

패스트텍스트 또한 워드투벡터와 같은 구조로 학습을 수행하며, 해당 라이브러리에는 CBOW, SKIPGRARM 기반의 기법이 존재한다.

![](https://728901758-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-L_Wo7SRUvbKJuPojzzZ%2F-LnbF3F-y57NcMBoUtfZ%2F-LnbI9L087YOmCrT-1G9%2Fimage.png?alt=media\&token=9f88a363-40cb-4580-ab5f-260714086c17)

&#x20;단, 패스트텍스트의 경우 OOV에 해당되는 단어 또한 기존의 단어를 조합하여 유사도를 측정하는 것이 가능한데, Dictionary에 수**집된 단어들을 N-gram으로 나눠서 보관하여, 기존 Dictionary에 존재하지 않는 단어에 대하여도 유사도 측정**을 가능하도록 한다.

## 단어 유사도 분석

완성된 모델을 통해 다음과 같은 기능을 수행할 수 있다. 아래는 특정 단어를 모델에 입력하여 해당 단어와 가장 가까운 의미를 가진 단어 목록을 호출한 것이다.

```coffeescript
# '영화'와 가장 유사한 단어
>>> model.most_similar('영화')
영화다, 영화였다, 작품, 영화임, 영화이다, 영화였음, 영화인듯, 영화에요, 영화네요…

#'쓰레기'와 가장 유사한 단어
>>> model.most_similar('쓰레기')
시간낭비, 삼류, 최악의, 최악, 아깝다, 쓰레기같은, 병신, 동, 졸작, 쓰레기를, 극혐…
```

## 패스트텍스트 모델 분석

본 프로젝트에서는 검색어 등의 단어의 의미를 분석하여 사용자가 모르는 키워드 또한 검색 결과에 포함시켜 관련된 정보를 도출할 수 있도록 돕는 모듈이 필요하다. \
이 과정에서 패스트 텍스트를 활용하여 각 단어의 유사도를 측정하여 해당 검색 키워드와 관련된 결과를 도출할 수 있을 것이라 기대한다.&#x20;

