2017-07-14 2 views
0

Je voudrais utiliser des plongements faits par w2v afin d'obtenir les mots de substitution les plus probables DONNÉES un contexte (mots environnants), plutôt que de fournir un mot individuel.python word2vec similitude de contexte en utilisant les mots environnants

Exemple: phrase = « Je voudrais aller au parc demain après l'école »

Si je veux trouver des candidats similaires à « parc », généralement je voudrais simplement tirer parti de la fonction de similarité du modèle Gensim

model.most_similar('park') 

et d'obtenir des mots sémantiquement similaires. Cependant, cela pourrait me donner des mots similaires au verbe "park" au lieu du nom "park", que je recherchais.

Existe-t-il un moyen d'interroger le modèle et de le contextualiser en tant que contexte pour fournir de meilleurs candidats? Word2vec n'est pas, principalement, un algorithme de prédiction de mots.

Répondre

2

En interne, il essaie de faire des semi-prédictions, d'entraîner ses vecteurs de mots, mais habituellement ces prédictions de formation ne sont pas l'utilisation finale pour laquelle les vecteurs de mots sont recherchés. Cela dit, les versions récentes de gensim ont ajouté une méthode predict_output_word() qui (pour certains modes du modèle) se rapproche des prédictions faites pendant la formation. Cela pourrait être utile pour vos objectifs. Alternativement, vérifier les mots most_similar() à votre mot cible initial qui sont également quelque peu semblable aux mots de contexte pourrait aider. Il y a eu des recherches sur les moyens de désambiguïser plusieurs sens des mots (comme 'to/park/a car' versus 'walk in a/park /') pendant l'entraînement par mot-vecteur, mais je ne les ai pas vus implémenté dans des bibliothèques open source.