【问题标题】:How do I input doc2vec vectors of multiple text columns?如何输入多个文本列的 doc2vec 向量?
【发布时间】:2019-03-26 17:42:02
【问题描述】:

我有一个数据集,其中包含 3 个不同的相关文本信息列,我想将其转换为 doc2vec 向量,然后使用神经网络进行分类。我的问题是如何将这三列转换为向量并输入到神经网络中?

如何将连接的向量输入到神经网络中?

【问题讨论】:

  • 请发布您的数据集和标签的样本。

标签: python machine-learning nlp doc2vec


【解决方案1】:

一种方式是在定义 order上的所有三个文档中获取doc2vec vectoring。然后将结果矢量适合您的神经网络。

另一种方法是创建一个列,其中每行是3个字符串列表(表示三个文档)并获得所有三个文档的一个向量表示。请参阅下面的一些示例代码。

from gensim.test.utils import common_texts
from gensim.models.doc2vec import Doc2Vec, TaggedDocument
documents = [TaggedDocument(doc, [i]) for i, doc in enumerate(common_texts)]
model = Doc2Vec(documents, vector_size=5, window=2, min_count=1, workers=4)
model.infer_vector(['theis is a sentence1', 'here is another sentence', 'this represents the third sentence']).tolist()

一旦完成,您可以初始化您的模型并培训它。

适用于sklearn clasifier例如sgd,结帐下面的代码SN-PS。

from sklearn import svm
clf = svm.SVC(gamma=0.001, C=100.0)
d = pd.DataFrame({'vectors':[[1,2,3], [3,6,5], [9,2,4], [1,2,7]], "targets": ['class1', 'class1', 'class2', 'class2']})
d
>>>
      vectors   targets
0   [1, 2, 3]   class1
1   [3, 6, 5]   class1
2   [9, 2, 4]   class2
3   [1, 2, 7]   class2

您可以在向量上安装Sklearn Clasiifier,如下所示。

clf.fit(X = d.vectors.values.tolist(), y =d.targets)

>>>
SVC(C=100.0, cache_size=200, class_weight=None, coef0=0.0,
decision_function_shape='ovr', degree=3, gamma=0.001, kernel='rbf',
max_iter=-1, probability=False, random_state=None, shrinking=True,
tol=0.001, verbose=False)

然后,您可以使用此分类器来预测值。

【讨论】:

  • 附加完成。如何在Sklearn分类器和神经网络中喂养新形成的向量?任何参考文献? span>
  • 但这就是这三种文件的个性将丢失......不应该? span>
  • @ anmolnarang,这是真的,但它将在Doc2Vec表示中(不幸的是是黑匣子)。此外,如果我的答案在帮助你,请覆盖它。我也是编辑它包含更多信息。 span>
【解决方案2】:

我建议使用 doc2vec 将每个文本字段分别转换为一个向量,连接这些向量并将生成的向量输入神经网络。

【讨论】:

  • 在这种情况下连接三倍维度后,我得到与传递序列有关的错误
  • 我不知道你所处的确切情况,但如果你能够自己选择神经网络的形状,你可以选择一个允许神经网络处理三倍量的形状数据的。如果您使用的神经网络已经在其他数据上进行过训练(因此您无法更改其形状),则有两种选择:1)首先连接文本字段,通过 doc2vec 提供结果,最后通过神经网络.这可能会使您的模型难以考虑不同的列,因为所有列都被挤压在一起。 2) ...
  • ... 创建一个新的神经网络,将来自三个 doc2vec 操作的数据汇总为您可以通过神经网络提供的数据。
猜你喜欢
  • 1970-01-01
  • 2021-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多