return tensorflow 按字符串预测而不是数组

return tensorflow predict by string not an array

所以我用 3 个 class 和 y_label = {0:"negative",1:"neutral,2:"positive") 构建了一个用于情感分析的张量流。当我尝试预测一个句子时,它 return 是一个数组,如何更改它以便它根据预测结果 return 字符串?在我的理解中,预测值是否是数组的最大值?

sentence = ["kurir keren"]
sequences = tokenizer.texts_to_sequences(sentence)
padded = pad_sequences(sequences,maxlen=max_length,padding=padding_type,truncating=trunc_type)
predic = np.rint(model.predict(padded))
predic2 = model.predict(padded)
print(predic)
print(predic2)

输出

[[0. 0. 1.]]
[[0.3224687  0.45956263 0.5116373 ]]

您似乎在使用单热编码标签,其中 [1. 0. 0.] 代表 negative [0. 1. 0.] 代表 neutral[0. 0. 1.] 代表 positive,所以也许只使用 np.argmax 来获取最高预测的索引并使用该整数来获取相应的字符串:

import numpy as np

y_label = {0:"negative",1:"neutral",2:"positive"}

prediction = np.array([[0.3224687,  0.45956263, 0.5116373 ]])
print(y_label[np.argmax(prediction)])
positive