我正在看Keras IMDB 电影评论情感分类示例 https://keras.io/datasets/#imdb-movie-reviews-sentiment-classification (以及github上对应的模型 https://github.com/keras-team/keras/blob/master/examples/imdb_lstm.py),它学习决定评论是正面的还是负面的。
数据已经过预处理,以便每个评论都被编码为整数序列,例如评论“这部电影太棒了!”将会[11, 17, 6, 1187]
对于这个输入,模型给出的输出是“正”。
该数据集还提供了用于编码序列的单词索引,即我知道地图
This: 11
movie: 17
is: 6
awesome: 1187
...
我能否以某种方式将这些知识包含到模型中,使其输入是字符串,即它根据输入“这部电影太棒了!”给出预测?
首先,神经网络的输入从来都不是字符串,它实际上是词汇表中单词(或字符)索引的列表。模型通常做的第一件事就是嵌入变换(参见这个例子 https://github.com/keras-team/keras/blob/master/examples/imdb_lstm.py)进一步将这些索引转换为(可训练的)浮点向量。
你真正的意思是数据预处理将用户的原始输入(可以是文本、图像像素、录音等)转换为适合模型且方便的格式的步骤。数据预处理就像模型本身一样是机器学习应用程序的重要组成部分,应该单独存储。如果您打算使用 imdb 数据集,则词汇表已经过预处理。您可以致电imdb.get_word_index()
在 keras 中获取单词索引或者您可以使用词汇 json 文件 https://s3.amazonaws.com/text-datasets/imdb_word_index.json直接地。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)