句子向量到句子

数据挖掘 nlp
2022-03-08 04:37:21

我已经实现了一个自动编码器,它将句子向量作为输入,在解码器的最后一层输出句子向量。我想将句子向量转换为句子。有没有办法将句子向量转换为句子?

class AutoEncoder(nn.Module):

def __init__(self, embedding_dim, hidden_dim):
    
    #Constructor
    super().__init__()          

    self.fc=nn.Linear(embedding_dim,hidden_dim)
    self.act1=nn.ReLU(0.2)
    self.fc1=nn.Linear(hidden_dim,hidden_dim)
    self.act2=nn.ReLU(0.2)
    self.fc2=nn.Linear(hidden_dim,hidden_dim)
    self.act3=nn.ReLU(0.2)
    self.fc3=nn.Linear(hidden_dim,hidden_dim)
    self.act4=nn.ReLU(0.2)
    self.fc4=nn.Linear(hidden_dim,hidden_dim)
    self.act5=nn.ReLU(0.2)
    self.fc5=nn.Linear(hidden_dim,embedding_dim)
def forward(self, X):     
    l1=self.fc(X)
    a1=self.act1(l1)
    l2=self.fc1(a1)
    a2=self.act2(l2)
    l3=self.fc2(a2)
    a3=self.act3(l3)
    l4=self.fc3(a3)
    a4=self.act4(l4)
    l5=self.fc4(a4)
    a5=self.act5(l5)
    l6=self.fc5(a5)
    return l6

在这里,我最初考虑了词嵌入,并通过平均将它们转换为句子向量。这些向量是为自动编码器模型给出的。

让我知道我们是否有任何其他方法可以生成句子。

任何类型的参考都是有帮助的。

1个回答

您可能需要一个可以使用两个 LSTM/GRU 模型实现的编码器-解码器框架。Encoder 接收第一个短语,输出最后一个(汇总)隐藏层,它被第一个 Decoder 状态与 BOS token 一起使用,输出第二个 token,用它来预测第三个 token,依此类推,直到你到达最后的(响应)短语。