Добавить идентификаторы данных в модель Doc2Vec - PullRequest
0 голосов
/ 13 декабря 2018

Пожалуйста, вы можете мне помочь?Я обучил модель Doc2Vec для преобразования ввода «ключевые слова» в векторы.Я сделал прогнозы с моделью TensorFlow, используя эти векторы.Есть ли способ сохранить уникальные идентификаторы в модели Doc2Vec, чтобы соответствовать их предсказаниям в модели TensorFlow?

Вот мой код для генерации и обучения модели Doc2Vec:

from gensim.models import Doc2Vec
import gensim
from gensim.models.doc2vec import TaggedDocument

def label_sentences(corpus, label_type):
    labeled = []
    for i, v in enumerate(corpus):
        label = label_type + '_' + str(i)
        labeled.append(doc2vec.TaggedDocument(str(v.split()).split(';'), [label]))
    return labeled

X_data = label_sentences(test.keywords, 'Data')
model_dbow = Doc2Vec(dm=0, vector_size=300, negative=5, min_count=1, alpha=0.065, min_alpha=0.065)
model_dbow.build_vocab([x for x in tqdm(X_data)])
%time
for epoch in range(30):
    model_dbow.train(utils.shuffle([x for x in tqdm(X_data)]), total_examples=len(X_data), epochs=1)
    model_dbow.alpha -= 0.002
    model_dbow.min_alpha = model_dbow.alpha

Вот код вектора, который я поместил в модель TensorFlow:

all_data_vectors_dbow_test = get_vectors(model_dbow, len(X_data), 300, 'Data')
test = all_data_vectors_dbow_test

А вот код предсказаний:

test_pred = sess.run(activation_OP, feed_dict={X: test})
...