Todo algoritmo que lida com dados de texto tem um vocabulário. No caso do word2vec, o vocabulário é composto por todas as palavras no corpus de entrada, ou pelo menos aquelas acima do limite de frequência mínima.
Os algoritmos tendem a ignorar as palavras que estão fora do seu vocabulário. No entanto, existem maneiras de reformular o seu problema, de modo que não haja essencialmente palavras fora do vocabulário.
Lembre-se de que as palavras são simplesmente "tokens" no word2vec. Eles podem ser ngrams ou podem ser letras. Uma maneira de definir seu vocabulário é dizer que toda palavra que ocorre pelo menos X vezes está no seu vocabulário. Em seguida, as "sílabas" mais comuns (ngrams de letras) são adicionadas ao seu vocabulário. Então você adiciona letras individuais ao seu vocabulário.
Dessa forma, você pode definir qualquer palavra como
- Uma palavra no seu vocabulário
- Um conjunto de sílabas no seu vocabulário
- Um conjunto combinado de letras e sílabas no seu vocabulário
O corpus de treinamento precisa ter todas as palavras das quais você deseja encontrar semelhança.
fonte
O word2Vec e o FastText falham se a palavra não estiver no vocabulário. Lança um erro. Ele fornece uma lista de pontuação para palavras relacionadas. Mas uma palavra invisível não estará no vocabulário, não é? Então, como ele resolve o problema de palavras invisíveis?
fonte