首页 > 解决方案 > Word2Vec 模型中的大小是否等于句子的最大输入大小?

问题描述

对许多人来说,这似乎是一个微不足道的问题,但对我来说并不清楚。

所以我有一个看起来像这样的模型

w2v_model = gensim.models.word2vec.Word2Vec(size=300, 
                                        window=7, 
                                        min_count=10, 
                                        workers=8)

我也像这样标记我的 x_train 和 x_test

x_train = pad_sequences(tokenizer.texts_to_sequences(df_train.text), maxlen=300)
x_test = pad_sequences(tokenizer.texts_to_sequences(df_test.text), maxlen=300)

我的嵌入层看起来像这样

embedding_matrix = np.zeros((vocab_size, 300), dtype='float32')
 for word, i in tokenizer.word_index.items():
  if word in w2v_model.wv:
    embedding_matrix[i] = w2v_model.wv[word]

embedding_layer = Embedding(vocab_size, 300, weights=[embedding_matrix], input_length=300, 
trainable=False)

所以我知道模型中的 300 是维度大小,而 pad_sequences 中的 300 是最大序列长度,也就是最大句子长度

我还知道 embedding_matrix 定义中的 300 再次是 w2v 维度大小,并且 embedding_layer 中的前 300 指的是 w2v 维度大小

第二个 300 将是最大输入长度,也就是与 pad_sequences 中的最大长度相同,但我没有得到的是。

如果我的 w2v 模型的维度大小等于 240,这是否意味着我的 pad_sequences maxlen 也应该是 240,并且我的 embedding_layer 中的 input_length 也应该是 240?

例如,w2v 的大小是 300,但我要预测的句子长度是 360,而我的 pad_sequences maxlen 是 500。我的神经网络能够正确预测这个长度为 360 的句子吗?

标签: pythongensimword2vecword-embedding

解决方案


推荐阅读