TensorFlow三分类情感分析预测结果如何从数组转对应标签字符串
预测类别判定规则确认
三分类任务的标准判定逻辑就是取预测输出数组中数值最大的维度对应的索引作为预测类别,你这里的判定逻辑是正确的。你给出的输出中predic2的三个值分别对应索引0、1、2的预测得分,最大值为0.5116373对应索引2,和np.rint处理后得到的1所在位置完全匹配。
补充说明:你当前输出的三个得分总和大于1,说明模型最后一层激活函数用的是sigmoid而非多分类通用的softmax,如果是标准三分类任务建议把最后一层激活函数换成softmax,输出会归一化为和为1的概率值,判定逻辑更直观。
输出预测字符串的实现方法
直接用np.argmax提取最大值索引,再查你定义的y_label映射字典即可,参考代码如下:
# 原有预测逻辑 sentence = ["kurir keren"] sequences = tokenizer.texts_to_sequences(sentence) padded = pad_sequences(sequences,maxlen=max_length,padding=padding_type,truncating=trunc_type) predic2 = model.predict(padded) # 新增结果转换逻辑 y_label = {0:"negative",1:"neutral",2:"positive"} # 取预测概率最大值对应的索引 pred_idx = np.argmax(predic2, axis=-1)[0] # 映射为对应字符串结果 pred_result = y_label[pred_idx] print(pred_result) # 本测试用例输出为:positive
内容的提问来源于stack exchange,提问作者ddinfiwis
相关产品推荐
相关产品推荐

