我正在建立一个语义关系分类器。
“因果”关系示例:“ 锌对于生长和细胞分裂至关重要。”
为此,我正在使用Spacy提供的预训练词嵌入,因为我没有足够的数据来训练自己的词。我采取了两种方法:
我正在使用一个具有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,但是这对测试数据造成了甚至更糟的结果。改进模型的方法是什么?