在keras文本分类模型中预测时如何循环
Posted
技术标签:
【中文标题】在keras文本分类模型中预测时如何循环【英文标题】:How to loop when predicting in keras text classification model 【发布时间】:2019-07-02 05:01:25 【问题描述】:我是 keras 的新手。我编写了一个文本分类模型,在对一个输入进行预测时,我得到了正确的预测,如下所示:
text=["Cancelling insurance cover that is in excess of your needs"]
one_test = tokenize.texts_to_matrix(text)
text_array=np.array([one_test[0]])
preds = model.predict(text_array)
yhat1 = model.predict_classes(text_array)
yhat2 = model.predict_proba(text_array)
print(preds)
print(yhat1)
print(yhat2)
prediction1=np.argmax(preds)
print(prediction1)
输出: [[0.21625464 0.17296328 0.17964244 0.27282426 0.15831545]]
[3]
[[0.21625464 0.17296328 0.17964244 0.27282426 0.15831545]]
3
但是,想要发送输入列表来进行预测
prediction_list=[]
Actionlist= ["Cancelling insurance cover that is in excess of your
needs","Decrease loan payment","use your surplus cash reserves to pay for
holiday expense or travel"]
for text in Actionlist:
print(text)
one_test = tokenize.texts_to_matrix(text)
text_array=np.array([one_test[0]])
preds = model.predict(text_array)
print(preds)
yhat1 = model.predict_classes(text_array)
print(yhat1)
prediction=np.argmax(preds)
print(prediction)
prediction_list.append(prediction)
print(prediction_list)
我得到以下输出,而不是得到三个预测。
取消超出您需求的保险范围
[[0.20537896 0.20620751 0.1970055 0.1982517 0.19315639]]
[1]
1
减少贷款支付
[[0.20537896 0.20620751 0.1970055 0.1982517 0.19315639]]
[1]
1
使用您的剩余现金储备来支付假期费用或旅行
[[0.20537896 0.20620751 0.1970055 0.1982517 0.19315639]]
[1]
1
[1, 1, 1]
请帮忙 提前致谢
【问题讨论】:
【参考方案1】:问题是你需要一个 text_to_matrix() 的列表。因此,只需在将 text=[text]
输入到 text_to_matrix() 之前设置它即可。
【讨论】:
以上是关于在keras文本分类模型中预测时如何循环的主要内容,如果未能解决你的问题,请参考以下文章
有没有一种方法可以使用多标签分类,但当模型仅预测 keras 中的一个标签时认为是正确的?