在训练和拟合 RNN 序列模型后进行预测
Making a prediction after training and fitting a RNN Sequential model
我正在尝试从对 500 篇新闻文章进行分类的情绪分析模型中获得预测。模型验证损失和训练损失大致相同,并且它们的分数相对较高。但是,当我尝试对它们进行预测时,无论文本输入如何,我都会得到相同的分类结果。
我相信问题可能出在我试图做出预测的方式上(我用空格字符填充我的字符串)。我希望这里有人可以阐明这个问题(下面是我的代码)。感谢您的帮助
comment = 'SAMPLE TEXT STRING'
for i in range(300-len(comment.split(' '))):
apad += ' A'
comment = comment + apad
tok.fit_on_texts([comment])
X = tokenizer.texts_to_sequences([comment])
X = preprocessing.sequence.pad_sequences(X)
yhat = b.predict_classes(X)
print(yhat)
prediction = b.predict(X, batch_size=None, verbose=0, steps=None)
print(prediction)
此脚本的输出如下。 prediction 和 predicted 类,无论文本输入为何总是 0 出于某种原因:
[[0]][[0.00645966]]
问题似乎出在分词器上。
您不能再次 fit
分词器,因为每个词都有不同的分词器。您应该在训练前只安装一次标记器,然后保存标记以用于所有新文本。
我正在尝试从对 500 篇新闻文章进行分类的情绪分析模型中获得预测。模型验证损失和训练损失大致相同,并且它们的分数相对较高。但是,当我尝试对它们进行预测时,无论文本输入如何,我都会得到相同的分类结果。 我相信问题可能出在我试图做出预测的方式上(我用空格字符填充我的字符串)。我希望这里有人可以阐明这个问题(下面是我的代码)。感谢您的帮助
comment = 'SAMPLE TEXT STRING'
for i in range(300-len(comment.split(' '))):
apad += ' A'
comment = comment + apad
tok.fit_on_texts([comment])
X = tokenizer.texts_to_sequences([comment])
X = preprocessing.sequence.pad_sequences(X)
yhat = b.predict_classes(X)
print(yhat)
prediction = b.predict(X, batch_size=None, verbose=0, steps=None)
print(prediction)
此脚本的输出如下。 prediction 和 predicted 类,无论文本输入为何总是 0 出于某种原因:
[[0]][[0.00645966]]
问题似乎出在分词器上。
您不能再次 fit
分词器,因为每个词都有不同的分词器。您应该在训练前只安装一次标记器,然后保存标记以用于所有新文本。