bojone/bert4keras

震惊!!!task_relation_extraction.py数据生成时好像存在bug

FortuneStar opened this issue · 2 comments

在用苏神的examples/task_relation_extraction.py测试时,数据生成的时候,里面写到随机选择一个subject,但是按照里面的代码,反复测试,发现可能出现选择出来的start到end之间可能存在多个subject,因为只要保证end大于start,但是并未考虑end是否和start属于同一个元组
image

如果按照苏神的代码,下面的代码就会存在bug,因为如果找不到subject,那么object_labels全为0
‘’‘
object_labels = np.zeros((len(token_ids), len(predicate2id), 2))
for o in spoes.get(subject_ids, []):
object_labels[o[0], o[2], 0] = 1
object_labels[o[1], o[2], 1] = 1
’‘’

如果随机选择一个subject,这样写我觉得更加简洁
‘’‘
import random as random_
subject_ids = random_.choice(list(spoes.keys()))
’‘’

这只是一个来自小小菜鸟的个人看法哈!

我就是为了避免你这个提问,才特意加了一句“这里没有实现错误!这就是想要的效果!!”,想不到这还堵不住啊。。。

“因为如果找不到subject,那么object_labels全为0”,这句话没错啊,但为什么这个就一定是“bug”呢?我就是想要这个效果不行吗。。。

我就是为了避免你这个提问,才特意加了一句“这里没有实现错误!这就是想要的效果!!”,想不到这还堵不住啊。。。

“因为如果找不到subject,那么object_labels全为0”,这句话没错啊,但为什么这个就一定是“bug”呢?我就是想要这个效果不行吗。。。

是我肤浅了,受教了,感谢苏神的解答。