我是一名学习自然语言处理的韩国学生。
当我把一个句子放到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
1条答案
按热度按时间fxnxkyjh1#
首先用英语,这样能得到答案。
而且,请参阅here,它可能会有所帮助。
一个热门编码是流行的结构无序矩阵。搜索'一个热门编码'在韩国与谷歌。它可以找到。