如何组合不同的词嵌入集?

时间:2019-03-28 19:23:35

标签: python scikit-learn nlp word-embedding

我正在建立一个语义关系分类器。

“因果”关系示例:“ 对于生长和细胞分裂至关重要。”

为此,我正在使用Spacy提供的预训练词嵌入,因为我没有足够的数据来训练自己的词。我采取了两种方法:

  1. 选择两个相关的(或不相关的)单词,并使用它们的单词嵌入来计算它们的余弦相似度,并将其用作MLP分类器的特征向量。
  2. 获取整个句子的均值向量,并将其用作MLP分类器的特征向量。 但是测试数据的结果不是很好(精确度和召回率约为50%)。我认为同时使用这两种方法可以改善结果,但是我真的不知道该怎么做。

我正在使用一个具有150个节点的隐藏层的多层感知器。

这是第一种方法的代码:

nlp=spacy.load('en_core_web_md') #these are the embeddings

entities_vec=np.zeros((len(entity1), 300))
for i in range(len(entity1)):
    doc1=nlp(entity1[i])
    doc2=nlp(entity2[i])
    entities_vec[i,:]=(sum(doc1.vector, doc2.vector))*0.5

这是第二种方法的代码:

sentences_vec=np.zeros((len(sentences), 300))
for i in range(len(sentences)):
    doc=nlp(sentences[i])
    sentences_vec[i,:]=doc.vector

我尝试添加句子_vec和实体_vec,但是这对测试数据造成了甚至更糟的结果。改进模型的方法是什么?

0 个答案:

没有答案