DianboWork / SPN4RE

161 stars 37 forks source link

评价指标的代码是否有问题?召回率可能大于1 #15

Closed sloth2012 closed 3 years ago

sloth2012 commented 3 years ago

举个例子: pred: [(0, 1, 2, 3, 4), (2, 1, 2,3,4)] gold: [(0, 1, 2, 3, 4)]

按照代码里面的结果:

rel_recall = 1/1 = 100% ent_recall = 2/1 = 200% (因为ent_num = 2)

这样会导致,当gold有很多组(假设N), 而pred只预测对一组实体,但是这组实体对应了不同关系,所以重复了多次(假设M),最后也会被认为ent_num+=1,真实召回应该是1/N,按照代码计算可能是 M/N

DianboWork commented 3 years ago

好像确实会这样,可能先做个set操作更好

sloth2012 commented 3 years ago

好像确实会这样,可能先做个set操作更好

嗯,不过这个只影响实体和关系的评价,不影响论文中的整体效果。