【发布时间】:2021-10-28 09:03:21
【问题描述】:
我是 NLP 和 doc2Vec 的新手。
- 我使用 doc2vec 为每个文档生成一个数组。
- 我想将数组和额外特征(例如收入)用作另一个模型(如逻辑回归)的特征。如何组合 doc 数组和额外功能?
def get_vectors(model, tagged_docs):
sents = tagged_docs.values
targets, regressors = zip(*[(doc.tags[0], model.infer_vector(doc.words)) for doc in sents])
return targets, regressors
model= Doc2Vec(dm=0, vector_size=300, negative=5, hs=0, min_count=2, sample = 0, workers=cores)
model.build_vocab(train_tagged.values)
model.train(train_tagged.values, total_examples=len(train_tagged.values), epochs=1)
y_train_doc , X_train_doc = get_vectors(model, train_tagged)
print(X_train_doc)
(array([ 0.168, -0.36 , -0.13], dtype=float32),
array([ 0.185, 0.17, 0.04], dtype=float32),....)
X_train_doc 是一个数组元组。那么对于每个数组,我是否将每个元素输入到 df 中的不同列中,如下所示?
doc | Income | doc_feature1 | doc_feature2| doc_feature3 |
1 | 10000 | 0.168 | -0.36 | -0.13 |
2 | 500 | 0.185 | 0.17 | 0.04 |
【问题讨论】:
标签: doc2vec