我对 Doc2Vec 的一个方面有点困惑。基本上,我不确定我所做的是否有意义。我有以下数据集:
train_doc_0 --> label_0
... ...
train_doc_99 --> label_0
train_doc_100 --> label_1
... ...
train_doc_199 --> label_1
... ...
... ...
train_doc_239999 --> label_2399
eval_doc_0
...
eval_doc_29
wheretrain_doc_n
是一个简短的文档,属于某个标签。有 2400 个标签,每个标签有 100 个训练文档。eval_doc_0
是评估文档,我想最终预测它们的标签(使用分类器)。
我用这些训练文档和标签训练了一个 Doc2Vec 模型。训练模型后,我使用infer_vector
.
结果是一个矩阵:
X_train (240000,300) # doc2vec vectors for training documents
y_train (240000,) # corresponding labels
y_eval (30, 300) # doc2vec vectors for evaluation documents
我的问题如下:如果我在 and 上运行一个简单的交叉验证X_train
,y_train
我有一个不错的准确性。一旦我尝试对我的评估文档进行分类(即使只使用 50 个随机抽样的标签),我的准确度就会非常差,这让我质疑我解决这个问题的方式。
我按照本教程进行文档培训。
我的方法是否有意义,尤其是在使用 重新投影所有培训文档时infer_vector
?