我有3个字嵌入:
有没有办法通过添加所有三个向量来获得第四个嵌入,其中包含来自所有三个向量的可训练权重,如:
?有没有办法在keras层中执行此操作?
问题
我想学习印尼语嵌入这个词。我计划通过使用LSTM训练序列预测机器来做到这一点。
然而,印尼语的语法与英语不同。特别是在印度尼西亚语中,您可以使用前缀和后缀修改单词。给定前缀时的名词单词可以成为动词,并且当给定后缀时可以成为形容词。您可以将这么多组合成一个单词,这样单个基本单词就可以有5个或更多变体。
例如:
通过在单词之间附加前缀而完成的语义转换在单词之间是一致的。例如:
因此,我计划将前缀和后缀表示为嵌入,这将用于添加基础词的嵌入,从而产生新的嵌入。因此,复合词的含义来源于基础词和词缀的嵌入,而不是作为单独的嵌入存储。但是,我不知道如何在Keras层中执行此操作。如果以前曾被问过,我找不到它。
答案 0 :(得分:0)
当你说"三个字嵌入"时,我看到三个嵌入层,例如:
input1 = Input((sentenceLength,))
input2 = Input((sentenceLength,))
input3 = Input((sentenceLength,))
emb1 = Embedding(...options...)(input1)
emb2 = Embedding(...options...)(input2)
emb3 = Embedding(...options...)(input3)
您可以使用简单的Add()
图层对三者进行求和:
summed = Add()([emb1,emb2,emb3])
然后你继续你的建模...
#after creating the rest of the layers and getting the desired output:
model = Model([input1,input2,input3],output)
如果你没有使用嵌入图层,但是你输入了三个向量:
input1 = Input((4,)) #or perhaps (sentenceLength,4)
input2 = Input((4,))
input3 = Input((4,))
added = Add()([input1,input2,input3])
剩下的就是一样。
如果这不是您的问题,请详细说明三个"字嵌入的位置"是来自哪,你打算如何选择它们等。