Je cours le code word2vec gensim sur un corpus de CV (mots d'arrêt enlevés) pour identifier des mots de contexte similaires dans le corpus à partir d'une liste de mots-clés prédéfinis.Pourquoi la fonction most_similar() de Word2Vec donne-t-elle des résultats insensés à l'entraînement?
Malgré plusieurs itérations avec paramètres d'entrée, suppression de mots vides, etc., les mots de contexte similaires n'ont aucun sens (en termes de distance ou de contexte) Par exemple. la corrélation et la matrice se produit dans la même fenêtre plusieurs fois matrix encore doesnt baisse des résultats most_similar pour la corrélation
Voici les détails du système et les codes gensim 2.3.0, Courir sur Python 2.7 Anaconda Formation CV: 55,418 phrases mots en moyenne par phrase: 3-4 mots (suppression de poste mots vides) code:
wordvec_min_count=int()
size = 50
window=10
min_count=5
iter=50
sample=0.001
workers=multiprocessing.cpu_count()
sg=1
bigram = gensim.models.Phrases(sentences, min_count=10, threshold=5.0)
trigram = gensim.models.Phrases(bigram[sentences], min_count=10, threshold=5.0)
model=gensim.models.Word2Vec(sentences = trigram[sentences], size=size, alpha=0.005, window=window, min_count=min_count,max_vocab_size=None,sample=sample, seed=1, workers=workers, min_alpha=0.0001, sg=sg, hs=1, negative=0, cbow_mean=1,iter=iter)
model.wv.most_similar('correlation')
Out[20]:
[(u'rankings', 0.5009744167327881),
(u'salesmen', 0.4948525130748749),
(u'hackathon', 0.47931140661239624),
(u'sachin', 0.46358123421669006),
(u'surveys', 0.4472047984600067),
(u'anova', 0.44710394740104675),
(u'bass', 0.4449636936187744),
(u'goethe', 0.4413239061832428),
(u'sold', 0.43735259771347046),
(u'exceptional', 0.4313117265701294)]
Je suis perdu pourquoi les résultats sont si aléatoires? Y at-il de toute façon de vérifier l'exactitude de word2vec?
Y a-t-il aussi une alternative de word2vec pour la fonction most_similar()? J'ai lu au sujet de gloVE mais n'a pas pu installer le paquet.
Toute information à cet égard serait utile