使用keras对文本数据进行预测

2024-05-20 12:10:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我曾经训练和测试过CNN的情绪分析。训练和测试数据以同样的方式准备,标记句子并给出唯一的整数:

tokenizer = Tokenizer(filters='$%&()*/:;<=>@[\\]^`{|}~\t\n')
tokenizer.fit_on_texts(text)
vocab_size = len(tokenizer.word_index) + 1
sequences = tokenizer.texts_to_sequences(text)

然后预先训练手套模型,为CNN创建嵌入矩阵:

^{pr2}$

在这一点上,我还使用测试语句创建了这个矩阵,该矩阵后来作为权重传递到嵌入层:

e= Embedding(vocab_size, 200, input_length=maxSeqLength, weights=[embedding_matrix], trainable=False)(inp)

现在我想重新加载我的模型并用一些新数据进行测试,但这意味着嵌入矩阵不会包含新的单词数据。这个这让我想知道,即使在创建嵌入矩阵之前,我也不应该包含测试数据?如果没有,嵌入层是如何处理这些新词的?这一部分和这个问题相似,但我找不到答案: How does the Keras Embedding Layer work if word is not found? 谢谢


Tags: 数据text模型size方式矩阵embeddingcnn
1条回答
网友
1楼 · 发布于 2024-05-20 12:10:56

很简单。您提供的是vocab_大小,即嵌入层知道的单词数。如果您传递的索引超出了vocab_size(新词)的范围,它将被忽略,或者keras将抛出一个错误。在

这回答了您关于是否应该包含嵌入矩阵的所有数据的问题。是的,你应该。在

相关问题 更多 >