duterscmy / ccks2019-ckbqa-4th-codes

中文知识库问答代码,CCKS2019 CKBQA评测第四名解决方案
476 stars 91 forks source link

关于tuple_filter.py中验证集的召回率 #48

Closed linspermen closed 3 years ago

linspermen commented 3 years ago

作者您好,我在运行您程序的时候遇到一个问题,在运行tuple_filter时,在验证集机上逻辑回归筛选后的top10召回率非常低,为0.04,其他指标看起来还算正常,我因为最近也学习问答系统所以才下载运行您的代码,代码应该是您最新上传的代码,前面的步骤都运行正常,但是在这里遇到这个问题,请问您在这一步验证集召回率也是这么低吗?我不知道我应该做什么,因为我也没改过您的任何代码,就照着步骤做了,还希望您能够解答我这个困惑,或者告诉我应该怎么做,非常感谢! 32e2079a304271608cb939ad6a19a5d

linspermen commented 3 years ago

找到原因了,是因为在训练那个逻辑回归模型时采用的特征不是Bert特征,是feature的第三的特征feature[2],这个特征是通过那个SogouLabDic.dic提取的entity mention词频,这个特征作用不大,而Bert特征是feature的最后一个,应该是feature[-1],还有一个点是训练集的负例样本应该按0.05比例来取,但是代码中好像为0.5,所以我将其改为了0.05

所以总该改了两个地方 1.GetData和GetData_train函数的feature[2]改为feature[-1] 2.GetData_train函数的if prop<0.5改为if prop<0.05 但还是发现一个问题,就是训练集对逻辑回归模型的训练似乎不起什么作用,因为我试着只改了GetData,即只改了验证集部分的特征,而GetData_train没有变,即训练集特征仍然是错误的特征,但是效果没有区别,不知道是什么原因

但是好在结果算是正常了,在这里也希望作者能够看到并更正一下,谢谢了! 图片1

callmeivy commented 3 years ago

您好,遇到与您一样的问题,也按照您上面建议的改了,验证集机上逻辑回归筛选后的top10召回率只有微弱提升,为0.34,其他结果都正常,如下: image tuple_filter.py代码其他地方无变动,不知是什么原因。

cheng940929 commented 1 year ago

您好,遇到与您一样的问题,也按照您上面建议的改了,验证集机上逻辑回归筛选后的top10召回率只有微弱提升,为0.34,其他结果都正常,如下: image tuple_filter.py代码其他地方无变动,不知是什么原因。

一共有四处feature[2]需要更改,盲猜你是忘记改验证集那里了吧