zhoujx4/NLP-Series-relation-extraction

请问E_num + 1 为什么老是+1?

Closed this issue · 9 comments

multi-selection中E_num+1 代表的是什么呢?是去重后的实体类型+2个间隔符吗?

self.linear_start = nn.Linear(config.hidden_size, E_num + 1)
self.linear_end = nn.Linear(config.hidden_size, E_num + 1)

好的,我阅读了《BERT-Based Multi-Head Selection for Joint Entity-Relation Extraction》这个论文。

  1. "+1"代表的是[CLS]
  2. subject_type_ids 是为了做soft label embed
    请问我理解的对吗?

好的,我阅读了《BERT-Based Multi-Head Selection for Joint Entity-Relation Extraction》这个论文。

  1. "+1"代表的是[CLS]
  2. subject_type_ids 是为了做soft label embed
    请问我理解的对吗?
  1. +1这个E_num,是实体标签的数量,跟【CLS】没关系的啊
  2. subject_type_ids,我没记错的话,是把这个token对应的实体信息作为输入的一部分,用于接下来的关系抽取

关于第一点,你的 E_num = len(args.s2id) 本就代表实体标签数量了,为什么无缘无故再加上1?
第2点一致,subje_type_ids 代表的确实是 subject 和 object 各自的尾下标打上实体label去做soft label embed,相当于结合了实体标签信息,因为默认的SPO联合抽取是不关注 SO的实体类型信息的

好的 谢谢

the same , why entities num plus 1 ?

got it, the plus 1 is for PAD

s2id = {'Date': 1, 'Number': 2, 'Text': 3, '人物': 4, '企业': 5, '企业/品牌': 6, '作品': 7, '历史人物': 8, '国家': 9, '图书作品': 10, '地点': 11, '城市': 12, '奖项': 13, '娱乐人物': 14, '学校': 15, '学科专业': 16, '影视作品': 17, '文学作品': 18, '景点': 19, '机构': 20, '歌曲': 21, '气候': 22, '电视综艺': 23, '行政区': 24, '语言': 25, '音乐专辑': 26}
下标是从1开始的,subject_label大小便为[Length, 2, len(s2id) + 1]