首页 文章

Keras:嵌入/向量的附加层?

提问于
浏览
1

我有3个字嵌入:

  • 嵌入#1:[w11,w12,w13,w14]

  • 嵌入#2:[w21,w22,w23,w24]

  • 嵌入#3:[w31,w32,w33,w34]

有没有办法通过添加所有三个向量来获得第四个嵌入,其中包含来自所有三个向量的可训练权重,例如:

  • 嵌入#4:[w11 w21 w31,w12 w22 w32,w13 w23 w33,w14 w24 w34]

?有没有办法在keras层中执行此操作?

Problem
我想学习印尼语嵌入这个词 . 我计划通过使用LSTM训练序列预测机器来做到这一点 .

但是,印尼语的语法与英语不同 . 特别是在印度尼西亚语中,您可以使用前缀和后缀修改单词 . 给定前缀时的名词单词可以成为动词,并且当给出后缀时可以成为形容词 . 您可以将这么多组合成一个单词,这样单个基本单词就可以有5个或更多变体 .

例如 :

  • tani表示农场(动词)

  • pe-tani意味着农民

  • per-tani-an表示农场(名词)

  • ber-tani表示农场(动词,含义略有不同)

通过在单词之间附加前缀而完成的语义转换在单词之间是一致的 . 例如 :

  • pe-tani是tani是pe-layan是什么,layar是什么,pe-layar是什么,tembak是什么,等等 .

  • per-main-an to main是per-guru-an is guru,per-kira-an是kira,per-surat-an是surat,等等 .

因此,我计划将前缀和后缀表示为嵌入,这将用于对基本单词的嵌入进行添加,从而生成新的嵌入 . 因此,复合词的含义来源于基础词和词缀的嵌入,而不是作为单独的嵌入存储 . 但是我不知道如何在Keras层中执行此操作 . 如果以前曾被问过,我找不到它 .

1 回答

  • 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])
    

    其余的都是一样的 .


    如果这不是您的问题,请详细说明三个“字嵌入”的来源,您打算如何选择它们等 .

相关问题