Open wangbidong opened 3 years ago
你好,step1\eval_metrics.py line 115-127 生成pred_tag,line 115 for i in range(len(pred_aspect_tag)):此时pred_aspect_tag是前一步 batch处理后生成的,所以长度是最终batch数,且pred_aspect_tag内的数据是tensor形式而不是像前面的cur_quad是列表,cur_aspect_tag = ''.join(str(ele) for ele in pred_aspect_tag[i])是对一批tensor进行了拼接?这里是不是要将tensor转成列表,针对每句aspect id进行拼接并识别其中的“32”和“54”呢?
pred_aspect_tag的长度是样例数,在line 106~107 对batch里预测的aspect tag做了遍历; 这里的aspect tag是torchcrf输出的结果,因此是列表形式的输出。
感谢回复,line 106~107 logits_imp_aspect = np.argmax(logits[1].detach().cpu().numpy(), axis=-1).tolist() logits_imp_opinion = np.argmax(logits[2].detach().cpu().numpy(), axis=-1).tolist() 是对 logits[1] logits[2]预测implicit aspect opinion进行tolist,预测的aspect tag应该是在logits[0]中,并未见到对这部分有转为列表
从 Windows 版邮件发送
发件人: Hongjie Cai 发送时间: 2021年11月11日 17:19 收件人: NUSTM/ACOS 抄送: wangbidong; Author 主题: Re: [NUSTM/ACOS] issues for step1 eval_metrics.py (Issue #1)
你好,step1\eval_metrics.py line 115-127 生成pred_tag,line 115 for i in range(len(pred_aspect_tag)):此时pred_aspect_tag是前一步 batch处理后生成的,所以长度是最终batch数,且pred_aspect_tag内的数据是tensor形式而不是像前面的cur_quad是列表,cur_aspect_tag = ''.join(str(ele) for ele in pred_aspect_tag[i])是对一批tensor进行了拼接?这里是不是要将tensor转成列表,针对每句aspect id进行拼接并识别其中的“32”和“54”呢? pred_aspect_tag的长度是样例数,在line 106~107 对batch里预测的aspect tag做了遍历; 这里的aspect tag是torchcrf输出的结果,因此是列表形式的输出。 — You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or unsubscribe. Triage notifications on the go with GitHub Mobile for iOS or Android.
@wangbidong 106~107行对应的代码:https://github.com/NUSTM/ACOS/blob/f0622449f0f165a9604b47312e0078217fe2c684/Extrct-Classify-ACOS/step1/eval_metrics.py#L106-L107 是不是对原始文件做了修改?
你好,step1\eval_metrics.py line 115-127 生成pred_tag,line 115 for i in range(len(pred_aspect_tag)):此时pred_aspect_tag是前一步 batch处理后生成的,所以长度是最终batch数,且pred_aspect_tag内的数据是tensor形式而不是像前面的cur_quad是列表,cur_aspect_tag = ''.join(str(ele) for ele in pred_aspect_tag[i])是对一批tensor进行了拼接?这里是不是要将tensor转成列表,针对每句aspect id进行拼接并识别其中的“32”和“54”呢?