我是一名学习自然语言处理的韩国学生。
当我将一个句子输入到LSTM中时,我想将其放入一个三维数组中。我打算将句子나는 집에서 친구와 밥을 먹었다.
转换为[['나', '는'],['집','에서'],['친구','와'],['밥','을'],['먹','었','다','.']]
的形式
然后我会将单词转换为向量(嵌入),例如:
[[ [1,0,0,0, ... ], [0,1,0,0, ... ] ], [ [0,0,1,0, ... ], [0,0,0,1, ...] ], [...], ...]
因此,这里是一个序列中的三维数组。
我如何将三维数组输入到一个LSTM中????
或者,这是可能的吗????愚蠢的问题,很抱歉。
我不知道如何更改它。
class Tagger(nn.Module): def __init__(self, embedding_dim=43, n_layers=4, dropout=0.2, output_dim=11, bidirectional=False): super(WordTagger, self).__init__() self.lstm = nn.LSTM(embedding_dim, embedding_dim, num_layers=n_layers, bidirectional=bidirectional) self.hidden_dim = (embedding_dim * 2) if bidirectional else embedding_dim self.linear = nn.Linear(self.hidden_dim, output_dim) self.dropout = nn.Dropout(dropout) def forward(self, embedded): lstmed, _ = self.lstm(embedded) outputs = self.linear(self.dropout(lstmed)) scores = F.log_softmax(outputs, dim=1) return scores
回答:
首先使用英语。可能会更容易得到答案。
另外,查看这里可能会有帮助。
独热编码对于结构无序的矩阵很流行。用谷歌搜索韩语的’one hot encoding’,可能会找到相关信息。