tensorflow - 在 Keras IMDB 示例中使用字符串作为输入
问题描述
我正在查看Keras IMDB 电影评论情感分类示例(以及 github 上的相应模型),它学会了判断评论是正面的还是负面的。
数据已经过预处理,因此每个评论都被编码为整数序列,例如评论“这部电影太棒了!” 将是[11, 17, 6, 1187]
,对于这个输入,模型给出输出“正”。
数据集还提供用于编码序列的单词索引,即我知道地图
This: 11
movie: 17
is: 6
awesome: 1187
...
我能否以某种方式将这些知识包含到模型中,使其输入是一个字符串,即它根据输入“这部电影太棒了!”给出预测?
解决方案
首先,神经网络的输入绝不是字符串,它正是词汇表中单词(或字符)的索引列表。模型通常做的第一件事是嵌入转换(参见示例),它将这些索引进一步转换为(可训练的)浮点向量。
您真正的意思是数据预处理步骤,它将用户的原始输入(可以是文本、图像像素、录音等)转换为适合模型且方便使用的格式。与模型本身一样,数据预处理是机器学习应用程序的重要组成部分,应单独存储。如果您打算使用 imdb 数据集,则词汇表已经过预处理。您可以调用imdb.get_word_index()
keras 来获取单词索引,也可以直接使用词汇表 json 文件。
推荐阅读
- javascript - 默认状态在减速器内部被改变,没有任何作用
- c# - 捕获以编程方式生成的上下文菜单子菜单的单击事件
- sql-server - 在更改 Azure SQL 数据库表时调用外部 API
- python - 如何在 python 比萨程序上修复此错误
- javascript - 如何使用 Javascript 访问奇怪 Canvas 中的元素?
- python - “AttributeError:模块'enum'没有属性'IntFlag'”仅在Jupyter notebook python 3.6.7内核中?
- php - 使用 Post 方法分页搜索结果
- c++ - 为什么现在“{static const char a[]={...}”和“{const char a[]={...}”之间有区别?
- geometry - 碰撞检测和解决:在其他圆圈和多边形的运动场中的圆圈
- r - 在 R 中找不到数据(phiX174Phage)数据集