为了账号安全,请及时绑定邮箱和手机立即绑定

运行系统时具有相同的输出

运行系统时具有相同的输出

qq_笑_17 2022-08-16 16:20:08
我已经实现了情感检测分析,我已经成功地训练了我的模型,然后我完成了预测部分,我在一个列表中得到了我的答案,现在我试图只有一个答案,我想有一个最大的答案,但我对每个输出都有相同的答案。有人可以帮我纠正我的错误吗?这是我的代码:        with open('output2.json', 'w') as f:            json.dump(new_data, f)selection1 = new_data['selection1']#creating empty list to be able to create a dataframenames = []dates = []commentss = []labels = []hotelname = []for item in selection1:    name = item['name']    hotelname.append(name)    #print ('>>>>>>>>>>>>>>>>>> ', name)    Date = item['reviews']    for d in Date:        names.append(name)        #convert date from 'january 12, 2020' to 2020-01-02        date = pd.to_datetime(d['date']).strftime("%Y-%m-%d")        #adding date to the empty list dates[]        dates.append(date)        #print('>>>>>>>>>>>>>>>>>> ', date)    CommentID = item['reviews']    for com in CommentID:        comment = com['review']        lcomment = comment.lower()  # converting all to lowercase        result = re.sub(r'\d+', '', lcomment)  # remove numbers        results = (result.translate(        str.maketrans('', '', string.punctuation))).strip()  # remove punctuations and white spaces        comments = remove_stopwords(results)        commentss.append(comment)        print('>>>>>>',comments)    #add the words in comments that are already present in the keys of dictionary        encoded_samples = [[word2id[word] for word in comments if word in word2id.keys()]]    # Padding        encoded_samples = keras.preprocessing.sequence.pad_sequences(encoded_samples, maxlen=max_words)     # Make predictions        label_probs, attentions = model_with_attentions.predict(encoded_samples)        label_probs = {id2label[_id]: prob for (label, _id), prob in zip(label2id.items(), label_probs[0])}        labels.append(label_probs)       #Get word attentions using attenion vector        print(label_probs)        print(max(label_probs))你能看到吗,它无处不在,它给了我“信任”,但是我希望显示列表中的最高分,我需要在我的代码中更正什么?
查看完整描述

1 回答

?
潇湘沐

TA贡献1816条经验 获得超6个赞

您正在字典label_probs上使用 max 函数,该函数返回字典中按字母顺序排列的最大键。

为了达到预期的结果,您必须,

取代:

print(max(label_probs))

跟:

print(max(label_probs, key=lambda k: label_probs[k]))


查看完整回答
反对 回复 2022-08-16
  • 1 回答
  • 0 关注
  • 130 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号