tf.keras.datasets.imdb.load_数据的问题

tf.keras.datasets.imdb.load_数据的问题,keras,deep-learning,nlp,tf.keras,Keras,Deep Learning,Nlp,Tf.keras,我的问题是,我们已经将num_单词指定为10个,我们想要10个最常见的单词。 但是在集合s1=序列的开始,2=oov_char中,我们只有剩下的六个表示单词的索引(4到9) 当我们指定num\u单词数必须为10时,为什么我们最多只能得到6个单词? 除此之外,任何人都可以通过一个例子解释中的索引的含义以及如何在X\u序列中分配索引?您使用了imdb.load\u data()的默认输入。我认为返回的不是单词的数量,而是索引的数量。如果更改如下所示的默认输入模式,您将看到返回10个索引 from k

我的问题是,我们已经将
num_单词
指定为10个,我们想要10个最常见的单词。 但是在集合
s
1=序列的开始,2=
oov_char
中,我们只有剩下的六个表示单词的索引(4到9)

当我们指定
num\u单词数必须为10时,为什么我们最多只能得到6个单词?

除此之外,任何人都可以通过一个例子解释
中的
索引的含义以及如何在X\u序列中分配索引?

您使用了imdb.load\u data()的默认输入。我认为返回的不是单词的数量,而是索引的数量。如果更改如下所示的默认输入模式,您将看到返回10个索引

from keras.datasets import imdb
(X_train, y_train), (X_test, y_test) = imdb.load_data(path="imdb.npz",
                                                 num_words=10,
                                                 skip_top=0,
                                                 maxlen=None,
                                                 seed=42,
                                                 start_char=1,
                                                 oov_char=2,
                                                 index_from=3)

s = set()
for i in X_train:
  s.update(np.unique(i))
print(s)
>{1, 2, 4, 5, 6, 7, 8, 9}
输出:

from keras.datasets import imdb

(X_train, y_train), (X_test, y_test) = imdb.load_data(
    path="imdb.npz",
    num_words=10,
    skip_top=0,
    maxlen=None,
    seed=42,
    start_char=0,
    #oov_char="OOV",
    index_from=0,
)

Set = set()
for i in X_train:
    Set.update(np.unique(i))

print(Set)
print(len(Set))

在这个数据库中,num_字通常被赋予10000个,这与它是完全相同的数字还是稍多或稍少无关。

您使用了imdb.load_data()的默认输入。我认为返回的不是单词的数量,而是索引的数量。如果更改如下所示的默认输入模式,您将看到返回10个索引

from keras.datasets import imdb
(X_train, y_train), (X_test, y_test) = imdb.load_data(path="imdb.npz",
                                                 num_words=10,
                                                 skip_top=0,
                                                 maxlen=None,
                                                 seed=42,
                                                 start_char=1,
                                                 oov_char=2,
                                                 index_from=3)

s = set()
for i in X_train:
  s.update(np.unique(i))
print(s)
>{1, 2, 4, 5, 6, 7, 8, 9}
输出:

from keras.datasets import imdb

(X_train, y_train), (X_test, y_test) = imdb.load_data(
    path="imdb.npz",
    num_words=10,
    skip_top=0,
    maxlen=None,
    seed=42,
    start_char=0,
    #oov_char="OOV",
    index_from=0,
)

Set = set()
for i in X_train:
    Set.update(np.unique(i))

print(Set)
print(len(Set))
在这个数据库中,num_单词通常被赋予10000个,这与它是完全相同的数字还是稍多或稍少无关