Como o word2vec pode ser usado para identificar palavras invisíveis e relacioná-las a dados já treinados

11

Eu estava trabalhando no modelo word2vec gensim e achei realmente interessante. Estou interessado em descobrir como uma palavra desconhecida / invisível, quando verificada com o modelo, poderá obter termos semelhantes do modelo treinado.

Isso é possível? O word2vec pode ser ajustado para isso? Ou o corpus de treinamento precisa ter todas as palavras das quais quero encontrar semelhança.

gaurus
fonte

Respostas:

9

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

  1. Uma palavra no seu vocabulário
  2. Um conjunto de sílabas no seu vocabulário
  3. Um conjunto combinado de letras e sílabas no seu vocabulário
jamesmf
fonte
3

O word2vec trata as palavras como átomos. Para obter vetores significativos para palavras desconhecidas, você precisa

  • altere o que esses átomos são, por exemplo, mude para a letra n-gramas como na resposta de jamesmf, ou
  • use um modelo diferente que analise explicitamente o que está dentro de suas palavras, por exemplo, o modelo CWE em https://github.com/Leonard-Xu/CWE é fácil de usar.
Joachim Wagner
fonte
1
github.com/facebookresearch/fastText parece funcionar bem
Joachim Wagner
sim, tentei isso, mas não funciona bem com tarefas como segmentação morfológica.
gaurus
2

O corpus de treinamento precisa ter todas as palavras das quais você deseja encontrar semelhança.

Franck Dernoncourt
fonte
0

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?

Sam
fonte