【问题标题】:Use string as input in Keras IMDB example在 Keras IMDB 示例中使用字符串作为输入
【发布时间】:2018-10-19 09:58:56
【问题描述】:

我在看Keras IMDB Movie reviews sentiment classification example (and the corresponding model on github),它学会了判断评论是正面还是负面。

数据已经过预处理,因此每条评论都被编码为整数序列,例如评论“这部电影很棒!”将是[11, 17, 6, 1187],对于这个输入,模型给出输出“正”。

数据集还提供用于编码序列的单词索引,即我知道地图

This: 11
movie: 17
is: 6
awesome: 1187
...

我能否以某种方式将这些知识包含到模型中,使其输入是一个字符串,即它根据输入“这部电影太棒了!”给出预测?

【问题讨论】:

    标签: tensorflow machine-learning nlp keras tensorflow-serving


    【解决方案1】:

    首先,神经网络的输入绝不是字符串,它只是词汇表中单词(或字符)的索引列表。模型通常做的第一件事是嵌入转换(参见the example),它进一步将这些索引转换为(可训练的)浮点向量。

    您真正的意思是 数据预处理 步骤,它将用户的原始输入(可以是文本、图像像素、录音等)转换为适合和方便的格式该模型。与模型本身一样,数据预处理是机器学习应用程序的重要组成部分,应单独存储。如果您打算使用 imdb 数据集,则词汇表已经过预处理。您可以在 keras 中调用imdb.get_word_index() 获取单词索引,也可以直接使用vocabulary json file

    【讨论】:

    • 好的,我希望有类似 categorical vocabulary column 的东西,这样我就可以在 Google Cloud ML Engine 中提供模型并在那里发送字符串。
    • 如果你看看tf.categorical_column_with_vocabulary_file在做什么,它是一样的:词汇文件必须单独存储,特征列正在将输入转换为int索引。区别在于预处理步骤的责任。无论如何,keras 不提供类似的功能。
    猜你喜欢
    • 1970-01-01
    • 2020-01-12
    • 2021-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多