Selon ce tutoriel github: gensim/docs/notebooks/doc2vec-lee.ipynb Je suis censé obtenir environ 96% de précision.gensim/docs/notebooks/doc2vec-lee.ipynb les résultats ne sont pas répétables
Voici le code utilisant le gensim 0.13.4 sur jupyter 4.3.1 tout d'Anaconda Navigator.
import gensim
import os
import collections
import smart_open
import random
# Set file names for train data
test_data_dir='{}'.format(os.sep).join \
([gensim.__path__[0],'test','test_data'])
lee_train_file = test_data_dir + os.sep + 'lee_background.cor'
def read_corpus(fname, tokens_only=False):
with smart_open.smart_open(fname, encoding="iso-8859-1") as f:
for i, line in enumerate(f):
if tokens_only:
yield gensim.utils.simple_preprocess(line)
else:
# For training data, add tags
yield gensim.models.doc2vec.TaggedDocument \
(gensim.utils.simple_preprocess(line), [i])
train_corpus = list(read_corpus(lee_train_file))
model = gensim.models.doc2vec.Doc2Vec(size=50, min_count=2, iter=10)
model.build_vocab(train_corpus)
model.train(train_corpus)
ranks = []
second_ranks = []
for doc_id in range(len(train_corpus)):
inferred_vector = model.infer_vector(train_corpus[doc_id].words)
sims = model.docvecs.most_similar([inferred_vector] \
, topn=len(model.docvecs))
rank = [docid for docid, sim in sims].index(doc_id)
ranks.append(rank)
second_ranks.append(sims[1])
collections.Counter(ranks)
Dans le tutoriel pour l'évaluation du modèle:
Leur sortie est:
Counter({0: 292, 1: 8})
Je reçois
Counter({0: 31,
1: 24,
2: 16,
3: 19,
4: 16,
5: 8,
6: 8,
7: 10,
8: 7,
9: 10,
10: 12,
11: 12,
12: 5,
13: 9,
...
Pourquoi je ne reçois pas quoi que ce soit près de leur précision?
Bienvenue sur SO! Votre question manque de formatage de base et il n'est pas clair ce que vous demandez. Essayez d'éditer la question et montrez les étapes que vous prenez pour résoudre le problème. Évitez également de faire référence à des liens externes, à moins que cela ne soit absolument nécessaire. S'il vous plaît lire: http://stackoverflow.com/help/how-to-ask – bman