我在查看Keras IMDB电影评论情感分类示例(以及GitHub上对应的模型),该示例学习判断评论是正面还是负面的。
数据已经被预处理,每个评论都被编码为整数序列,例如评论“这部电影很棒!”会被编码为[11, 17, 6, 1187]
,对于这个输入,模型会输出“正面”。
数据集还提供了用于编码序列的词索引,即我知道映射关系
这: 11电影: 17是: 6很棒: 1187...
我能否将这种知识纳入模型,使其输入成为字符串,即根据输入“这部电影很棒!”进行预测?
回答:
首先,神经网络的输入永远不会是字符串,而是一组词(或字符)在词汇表中的索引列表。模型通常做的第一件事是嵌入转换(参见示例),这进一步将这些索引转换为(可训练的)浮点向量。
你真正想要的是将用户的原始输入(可以是文本、图像像素、声音录音等)转换为适合模型的格式的数据预处理步骤。数据预处理是机器学习应用中与模型本身一样重要的部分,应该单独存储。如果你打算使用imdb数据集,词汇表已经预处理。你可以调用imdb.get_word_index()
在keras中获取词索引,或者你可以直接使用词汇json文件。