1、s和o未必是分词工具分出来的词,因此要对query做标注才能抽取出正确的s、o,而考虑到分词可能切错边界,因此应该使用基于字的输入来标注;
2、样本中大多数的抽取结果是“一个s、多个(p, o)”的形式,比如“《战狼》的主演包括吴京和余男”,那么要抽出“(战狼, 主演, 吴京)”、“(战狼, 主演, 余男)”;
3、抽取结果是“多个s、一个(p, o)”甚至是“多个s、多个(p, o)”的样本也占有一定比例,比如“《战狼》、《战狼2》的主演都是吴京”,那么要抽出“(战狼, 主演, 吴京)”、“(战狼2, 主演, 吴京)”;
4、同一对(s, o)也可能对应多个p,比如“《战狼》的主演和导演都是吴京”,那么要抽出“(战狼, 主演, 吴京)”、“(战狼, 导演, 吴京)”;
5、极端情况下,s、o之间是可能重叠的,比如“《鲁迅自传》由江苏文艺出版社出版”,严格上来讲,除了要抽出“(鲁迅自传, 出版社, 江苏文艺出版社)”外,还应该抽取出“(鲁迅自传, 作者, 鲁迅)”。
出自:https://kexue.fm/archives/6671
https://kexue.fm/archives/6671
答:有点想多轮问答来做关系抽取,他这里先抽取subject,然后来预测每个p的起始位置。
https://kexue.fm/archives/8373
答:类似于多头机制来做实体抽取,可以解决嵌套实体和非嵌套实体的问题,抽取的特征是头尾节点的点乘结果,TPlinker是加性特征,另外通过引入旋转位置编码RoPE大大提高了效果(+30%)。
https://kexue.fm/archives/8888
答:先利用Global Pointer抽取subject的首尾(i, j)和object的首尾位置(i, j),然后利用Global Pointer抽取每一种关系p的实体的head的match的位置(hi, hj)和实体的尾部tail的match的位置(ti, tj)组合,最终输出交集的结果。
答:直接利用Global Pointer抽取subject和object的实体了。
答:利用Global Pointer找到关系p的(hi, hj),代表起点为hi的实体和起点为hj的实体,他的一个关系是p,同理抽取(ti, tj),代表结束为止为ti的实体和结束为止为tj的实体的关系为p。因为可能存在嵌套实体的情况,所以需要同时指定起点和结束位置。