python - Keras IMDB 数据集数据是如何预处理的?

标签 python keras

我正在处理情绪分析问题,并且有一个数据集,它与 Kears imdb 数据集非常相似。 当我加载 Keras 的 imdb 数据集时,它返回了单词索引序列。

(X_train, y_train), (X_test, y_test) = imdb.load_data()
X_train[0]
[1, 14, 22, 16, 43, 530, 973, 1622, 1385, 65, 458, 4468, 66, 3941, 4, 173, 36, 256, 5, 25, 100, 43, 838, 112, 50, 670, 22665, 9, 35, 480, 284, 5, 150, 4, 172, 112, 167, 21631, 336, 385, 39, 4, 172, 4536, 1111, 17, 546, 38, 13, 447, 4, 192, 50, 16, 6, 147, 2025, 19, 14, 22, 4, 1920, 4613, 469, 4, 22, 71, 87, 12, 16, 43, 530, 38, 76, 15, 13, 1247, 4, 22, 17, 515, 17, 12, 16, 626, 18, 19193, 5, 62, 386, 12, 8, 316, 8, 106, 5, 4, 2223, 5244, 16, 480, 66, 3785, 33, 4, 130, 12, 16, 38, 619, 5, 25, 124, 51, 36, 135, 48, 25, 1415, 33, 6, 22, 12, 215, 28, 77, 52, 5, 14, 407, 16, 82, 10311, 8, 4, 107, 117, 5952, 15, 256, 4, 31050, 7, 3766, 5, 723, 36, 71, 43, 530, 476, 26, 400, 317, 46, 7, 4, 12118, 1029, 13, 104, 88, 4, 381, 15, 297, 98, 32, 2071, 56, 26, 141, 6, 194, 7486, 18, 4, 226, 22, 21, 134, 476, 26, 480, 5, 144, 30, 5535, 18, 51, 36, 28, 224, 92, 25, 104, 4, 226, 65, 16, 38, 1334, 88, 12, 16, 283, 5, 16, 4472, 113, 103, 32, 15, 16, 5345, 19, 178, 32]

但是,我想了解这个序列是如何构建的。 在我的数据集中,我使用 CountVectorizer,在我的数据集中使用 ngram_range=(1,2) 来标记单词,但我想尝试复制 Keras 方法。

最佳答案

imdb 数据集中的词被替换为一个整数,表示它们在数据集中出现的频率。当您第一次调用 load_data 函数时,它将下载数据集。

为了看这个值是如何计算的,我们从源码中截取一段代码(文末有链接)

idx = len(x_train)
x_train, y_train = np.array(xs[:idx]), np.array(labels[:idx])
x_test, y_test = np.array(xs[idx:]), np.array(labels[idx:])

x_train 是列表 xs 中长度为 x_train 的 numpy 数组;

xs 是由x_train 和x_test 中的所有单词组成的列表,首先从数据集中提取每个项目(电影评论),然后提取单词。然后将每个单词的位置添加到 index_from 中,它指定实际的索引开始(默认为 3),然后添加到起始字符(默认为 1,以便值从 1 开始,因为填充将用零完成)

numpy 数组 x_train、y_train、x_test、y_test 以类似的方式形成并由 load_data 函数返回。

此处提供源代码。

https://github.com/keras-team/keras/blob/master/keras/datasets/imdb.py

关于python - Keras IMDB 数据集数据是如何预处理的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49146529/

相关文章:

python - 在 python 中同时剥离和拆分

python - 表征股票市场神经网络的 Keras 损失和准确性

python - ReLU 和 LeakyRelu 的实现区别

python - 如何加载带有自定义损失的模型?

tensorflow - Keras 和 Tensorflow 的 NVIDIA GPU 使用率低

tensorflow - Keras后端: Difference between random_normal and random_normal_variable

python - Docker 和 pip 安装 : avoid installing all packages when some are already installed

python - 用于路径规划神经网络的 keras 自定义指标不起作用

python - Pandas 正则表达式提取网络IP地址子串

python - 增加 Matplotlib 中 x 轴标签的空间