Closed mazicwong closed 5 years ago
嗯,一般来说若start>end,则可以表示无答案,但Dureader是不存在无答案的情况。
感谢您的回答, 我对最后这个抽取方法进行测试后, 发现了一个有趣的结论, 对于您代码里的方法, 可以得到的BLEU值约为45%, 如果直接用DP得到全局最优, 并且不限定答案长度的情况下, BLEU值会变成非常小, 约5%, 我检查了具体的原因, 发现改用DP后, 整体上得到的答案都非常短, 想请教下这个问题是否还有其他比较可行的算法?
举个BLEU值降低的例子:
问题:
嗅觉失灵的治疗方法
原答案:
"1)药物治疗:药物治疗可配合原因治疗。对于非呼吸阻塞性嗅> 觉失灵,尚缺乏十分有效的药物,临床上试用药物有:维生素类,激素类,锌治疗,营养治疗等。嗅觉失灵的治疗方法(2)解除鼻腔阻塞性病灶,恢复鼻腔通气功能:呼吸性嗅觉乃在于含有嗅素的空气不能到达嗅区,阻塞原因去除后"
DP得到的全局最优答案:
"积极治疗肿瘤或内分泌疾病"
答案抽取的我试过相加、相乘的,其它没怎么试;对于这来个说,相加要好些
懂了, 感谢回答, 我尝试了几种方法后都没有github这个方法好
您好, 在这个目录下
Dureader-Bert/Dureader/predict/predicting.py
, 有一段代码没看懂 在find_best_answer_for_passage
函数中,while True
跑三个循环这里是为什么这么定义的, 每次预测出的start跟end位置相反就全部置为0重来, 似乎讲不通.. 感觉跟其他模型中用动态规划的思路求最大score的区间方式不太一样.附上代码: