Spico197 / DocEE

🕹️ A toolkit for document-level event extraction, containing some SOTA model implementations.
https://doc-ee.readthedocs.io/
MIT License
232 stars 36 forks source link

importance分数 #72

Closed miraitowa9 closed 10 months ago

miraitowa9 commented 10 months ago

importance

请问dueefin的每个类别的类中,RIGGERS 属性定义的不同触发器级别对应的关键字段列表的顺序是依据的什么?后面注释的importance分数是怎么得来的啊? image

Spico197 commented 10 months ago

嗨您好,这里的dict表示伪触发词的数量和具体的伪触发词role,后面的分数是通过计算existence和distinguishability得来的,可以参考论文2.3节 [link].

对应代码在:这里

WindSearcher commented 10 months ago

嗨您好,这里的dict表示伪触发词的数量和具体的伪触发词role,后面的分数是通过计算existence和distinguishability得来的,可以参考论文2.3节 [link].

对应代码在:这里

哈哈,正好我也有疑惑,我跑trigger.py文件直接报错

WindSearcher commented 10 months ago

嗨您好,这里的dict表示伪触发词的数量和具体的伪触发词role,后面的分数是通过计算existence和distinguishability得来的,可以参考论文2.3节 [link]. 对应代码在:这里

哈哈,正好我也有疑惑,我跑trigger.py文件直接报错

auto_select( tot_data, strategy="high", max_trigger_num=num_trigger_group, verbose=True, with_trigger=False, ) 这里要注意,如果是ChFinAll,with_trigger=False,因为这个参数是表明数据集中有无标注的触发词,而ChFinAll数据集无标注的触发词

Spico197 commented 10 months ago

嗨您好,这里的dict表示伪触发词的数量和具体的伪触发词role,后面的分数是通过计算existence和distinguishability得来的,可以参考论文2.3节 [link]. 对应代码在:这里

哈哈,正好我也有疑惑,我跑trigger.py文件直接报错

嗨,请问是会报什么错呀,可以再开一条issue,我看看是不是后来改代码的时候有哪里变动有问题。

WindSearcher commented 10 months ago

嗨您好,这里的dict表示伪触发词的数量和具体的伪触发词role,后面的分数是通过计算existence和distinguishability得来的,可以参考论文2.3节 [link]. 对应代码在:这里

哈哈,正好我也有疑惑,我跑trigger.py文件直接报错

嗨,请问是会报什么错呀,可以再开一条issue,我看看是不是后来改代码的时候有哪里变动有问题。

已经解决啦,在本条issue里面回复了解决方案,因为数据集的问题勒。

Spico197 commented 10 months ago

嗨您好,这里的dict表示伪触发词的数量和具体的伪触发词role,后面的分数是通过计算existence和distinguishability得来的,可以参考论文2.3节 [link]. 对应代码在:这里

哈哈,正好我也有疑惑,我跑trigger.py文件直接报错

嗨,请问是会报什么错呀,可以再开一条issue,我看看是不是后来改代码的时候有哪里变动有问题。

已经解决啦,在本条issue里面回复了解决方案,因为数据集的问题勒。

好嘞好嘞,谢谢您~

miraitowa9 commented 10 months ago

这个得分用"#"号注释后,模型如何知道这个得分?这个得分如何起作用?

WindSearcher commented 10 months ago

这个得分用"#"号注释后,模型如何知道这个得分?这个得分如何起作用? 得分是根据角色的存在性(是否非空)和区分性(其它事件实例没有这个角色对应的论元值)相乘得到分数,分数的作用是选取触发词,分数高的作为触发词。

Spico197 commented 10 months ago

这个得分用"#"号注释后,模型如何知道这个得分?这个得分如何起作用?

模型是不知道具体分值是多少的,这里的分值只是作为伪触发词importance的一个参考。

WindSearcher commented 10 months ago

我感觉完全图可能是更好的方式,因为选取的触发词可能存在共享,这样剪枝后的伪触发词(如果多个事件共享这个触发词)就会到事件缺失。当然大佬的论文里面实验表明触发词更有用,我感觉可能是因为判断是否连接的方式还不是最优导致的剪枝完全图更有效。

miraitowa9 commented 10 months ago

这个得分用"#"号注释后,模型如何知道这个得分?这个得分如何起作用? 模型是不知道具体分值是多少的,这里的分值只是作为伪触发词importance的一个参考。 不好意思哈,我可能还是不太理解这个得分怎么用的?是根据12345的顺序从小到达的得分吗?这个“参考”是给我们可视化看一下嘛? 我修改了一个事件类型,将它的格式改为Dueefin,但是用trigger.py文件生成的得分全是1.0, image

Spico197 commented 10 months ago

我感觉完全图可能是更好的方式,因为选取的触发词可能存在共享,这样剪枝后的伪触发词(如果多个事件共享这个触发词)就会到事件缺失。当然大佬的论文里面实验表明触发词更有用,我感觉可能是因为判断是否连接的方式还不是最优导致的剪枝完全图更有效。

嗯啊,我也是先做完全图的,只是发现完全图的连接判断做的不好,很多连接关系被误判了,才想到剪枝的方案,选择一部分论元作为伪触发词组。

Spico197 commented 10 months ago

这个得分用"#"号注释后,模型如何知道这个得分?这个得分如何起作用? 模型是不知道具体分值是多少的,这里的分值只是作为伪触发词importance的一个参考。 不好意思哈,我可能还是不太理解这个得分怎么用的?是根据12345的顺序从小到达的得分吗?这个“参考”是给我们可视化看一下嘛? 我修改了一个事件类型,将它的格式改为Dueefin,但是用trigger.py文件生成的得分全是1.0, image

如果您的数据里有标注trigger,并且每个trigger只对应一个事件实例,那么importance就会是1.0的。dict里面的1234 keys表示伪触发词的数量,是可以作为超参控制的。

WindSearcher commented 10 months ago

我感觉完全图可能是更好的方式,因为选取的触发词可能存在共享,这样剪枝后的伪触发词(如果多个事件共享这个触发词)就会到事件缺失。当然大佬的论文里面实验表明触发词更有用,我感觉可能是因为判断是否连接的方式还不是最优导致的剪枝完全图更有效。

嗯啊,我也是先做完全图的,只是发现完全图的连接判断做的不好,很多连接关系被误判了,才想到剪枝的方案,选择一部分论元作为伪触发词组。

嗯嗯,所以我尝试了网络分类的方式,五分类,连接效果上去了一些,但整体的抽取效果不行。二分类直接recall飘升,precision飞速下跌。目前在尝试其它方式建模。

miraitowa9 commented 10 months ago

这个得分用"#"号注释后,模型如何知道这个得分?这个得分如何起作用? 模型是不知道具体分值是多少的,这里的分值只是作为伪触发词importance的一个参考。 不好意思哈,我可能还是不太理解这个得分怎么用的?是根据12345的顺序从小到达的得分吗?这个“参考”是给我们可视化看一下嘛? 我修改了一个事件类型,将它的格式改为Dueefin,但是用trigger.py文件生成的得分全是1.0, image

如果您的数据里有标注trigger,并且每个trigger只对应一个事件实例,那么importance就会是1.0的。dict里面的1234 keys表示伪触发词的数量,是可以作为超参控制的。

非常感谢,我知道啦!