我想使用字符嵌入为句子分类建立LSTM模型。
我知道如何使用单词嵌入来实现,其中模型可以从单词索引中学习嵌入,但是不确定如何使用字符嵌入来实现。
用于单词嵌入:
sentence_list = ['this is a dog', 'the cat and the mouse']
label = [1,0]
word_dict = {'this':1,
'is':2,
'a':3,
'dog':4,
'the':5,
'cat':6,
'and':7,
'mouse':8}
# set vector length = 9
vectors = [[1,2,3,4,0,0,0,0,0]
[0,0,0,0,5,6,7,5,8]]
model.fit(vectors,label)
因此可以随时将其安装到LSTM模型中。
对于基于字符的矢量我们该怎么做?
例如: 如果我有这个汉字字典:
char_dict = {'t':1,
'h':2,
'i':3,
's':4,
'a':5,
'd':6,
'o':7,
'g':8}
我该如何格式化LSTM分类模型以使其易于阅读? 更具体地说,我们如何组合多个字符向量以馈入LSTM模型?
答案 0 :(得分:1)
完全相同。完全没有区别。
将句子转换为索引向量并拟合。
重要的事情:
不要用0开头的句子,您的vectors
应该是:
vectors = [[1,2,3,4,0,0,0,0,0]
[5,6,7,5,8,0,0,0,0]]
具有空格(至少)和标点符号:
char_dict = {'t':1,
'h':2,
'i':3,
's':4,
'a':5,
'd':6,
'o':7,
'g':8
' ':9,
'.':10,
'c':11}
sentences = ['this is a dog', 'that is a cat.']
vectors = [
[char_dict[ch] for ch in sentence] for sentence in sentences
]
vectors = [
[1, 2, 3, 4, 9, 3, 4, 9, 5, 9, 6, 7, 8],
[1, 2, 5, 1, 9, 3, 4, 9, 5, 11, 5, 1, 10]
]