Comment word2vec peut être utilisé pour identifier les mots invisibles et les relier à des données déjà formées


11

Je travaillais sur le modèle word2vec gensim et je l'ai trouvé très intéressant. Je suis intéressé à trouver comment un mot inconnu / invisible lorsqu'il est vérifié avec le modèle pourra obtenir des termes similaires du modèle formé.

Est-ce possible? Word2vec peut-il être modifié pour cela? Ou le corpus de formation doit avoir tous les mots dont je veux trouver la similitude.

Réponses:


9

Chaque algorithme qui traite des données de texte a un vocabulaire. Dans le cas de word2vec, le vocabulaire est composé de tous les mots du corpus d'entrée, ou au moins ceux au-dessus du seuil de fréquence minimale.

Les algorithmes ont tendance à ignorer les mots qui sont en dehors de leur vocabulaire. Cependant, il existe des moyens de recadrer votre problème de manière à ce qu'il n'y ait pratiquement pas de mots hors vocabulaire.

N'oubliez pas que les mots sont simplement des «jetons» dans word2vec. Il peut s'agir de ngrammes ou de lettres. Une façon de définir votre vocabulaire est de dire que chaque mot qui se produit au moins X fois se trouve dans votre vocabulaire. Ensuite, les "syllabes" les plus courantes (ngrammes de lettres) sont ajoutées à votre vocabulaire. Ensuite, vous ajoutez des lettres individuelles à votre vocabulaire.

De cette façon, vous pouvez définir n'importe quel mot comme

  1. Un mot dans votre vocabulaire
  2. Un ensemble de syllabes dans votre vocabulaire
  3. Un ensemble combiné de lettres et de syllabes dans votre vocabulaire

3

word2vec traite les mots comme des atomes. Pour obtenir des vecteurs significatifs pour des mots inconnus, vous devez soit

  • changer ce que sont ces atomes, par exemple passer à la lettre n-grammes comme dans la réponse de jamesmf, ou
  • utilisez un modèle différent qui examine explicitement ce qu'il y a dans vos mots, par exemple le modèle CWE sur https://github.com/Leonard-Xu/CWE est facile à utiliser.


oui, j'ai essayé mais ne fonctionne pas bien avec des tâches comme la segmentation morphologique.
gaurus


0

Le word2Vec et FastText échouent si le mot n'est pas dans le vocabulaire. Lance une erreur. Il donne une liste de score pour les mots apparentés Mais un mot invisible ne sera pas dans le vocabulaire n'est-ce pas? Alors, comment résout-il le problème des mots invisibles?

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.