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

请问老师怎么在自己的数据集上进行训练呢? #86

Open yzxx667 opened 6 months ago

yzxx667 commented 6 months ago

老师您好,目前我按照ChFin数据集的格式构建了一份自己的数据集,请问老师如何用模型来跑我的数据集呢?有哪些步骤?感谢老师!

Spico197 commented 6 months ago

嗨您好,感谢对本项目的关注。您需要先在dee/event_types里准备自己的event template,然后再参考readme中的方法跑实验:https://github.com/Spico197/DocEE?tab=readme-ov-file#to-reproduce-results-in-paper

yzxx667 commented 6 months ago

感谢老师回复!我已经仿照event_types中的template构建了类似的代码,但是论元角色的importance得分这部分需要怎么获得呢?以及我的数据集只有一种事件类型,这会影响PTPCG的效果吗?

Spico197 commented 6 months ago
yzxx667 commented 6 months ago

老师您好,我根据伪trigger的importance 得分构建了我数据集的template模板,成功运行了代码。但是经过100个epoch之后模型最终的F1指标很低,只有19.36 如图所示 image 相比之下,我是用DE-PPN的模型跑同样的数据集,最后的F1得分为40.1 请问老师在PTPCG这个模型中可能哪里需要调整一下呢?感谢老师!

Spico197 commented 6 months ago

看起来比较奇怪,cls和ent都是100%正确,但是combination差了好多。

试试ProcNet吧:https://github.com/xnyuwg/procnet

yzxx667 commented 6 months ago

感谢老师分享。cls是100的原因可能是我最后一个事件类型,所以分类的准确率很高。我也观察了模型输出的json文件,无论是单事件还是多事件的combination的F1得分都很低。由于我的数据集是篇章级别的,所以句子数比较多,但是实体数相对较少,可能会出现连续好几个句子没有实体的情况。并且虽然句子数量很多但是事件数量很少。请问老师这可能会是combination很低的一个原因吗?

yzxx667 commented 5 months ago

老师您好,现在模型在训练到第2个epoch的时候就达到了最佳的F1(60),从第三个epoch开始F1骤降到15,并且之后也一直在15-25徘徊。请问老师可能是什么原因呢?

Spico197 commented 5 months ago

可能数据量太少过拟合了。最佳F1指的是dev上的结果吗?

Spico197 commented 5 months ago

感谢老师分享。cls是100的原因可能是我最后一个事件类型,所以分类的准确率很高。我也观察了模型输出的json文件,无论是单事件还是多事件的combination的F1得分都很低。由于我的数据集是篇章级别的,所以句子数比较多,但是实体数相对较少,可能会出现连续好几个句子没有实体的情况。并且虽然句子数量很多但是事件数量很少。请问老师这可能会是combination很低的一个原因吗?

之前邮件发送的回复,在github页面上没显示,这里补个档:

  1. 嗷嗷了解。如果没有负例的话分类100%正确挺正常的
  2. 组合的部分,计算邻接矩阵时是只有实体参与计算的。如果实体也能100%正确,这个结果还挺奇怪的。你是划分了训练开发测试集的吗,可以比较下训练过程中dev和test结果的变化,看看是不是过拟合了
yzxx667 commented 5 months ago

可能数据量太少过拟合了。最佳F1指的是dev上的结果吗?

是的老师,是在DEV上的最佳结果。我们的数据集相比ChFinAnn确实小了很多,总计只有1000篇文章,还要划分train,dev,test。

yzxx667 commented 5 months ago

感谢老师分享。cls是100的原因可能是我最后一个事件类型,所以分类的准确率很高。我也观察了模型输出的json文件,无论是单事件还是多事件的combination的F1得分都很低。由于我的数据集是篇章级别的,所以句子数比较多,但是实体数相对较少,可能会出现连续好几个句子没有实体的情况。并且虽然句子数量很多但是事件数量很少。请问老师这可能会是combination很低的一个原因吗?

之前邮件发送的回复,在github页面上没显示,这里补个档:

  1. 嗷嗷了解。如果没有负例的话分类100%正确挺正常的
  2. 组合的部分,计算邻接矩阵时是只有实体参与计算的。如果实体也能100%正确,这个结果还挺奇怪的。你是划分了训练开发测试集的吗,可以比较下训练过程中dev和test结果的变化,看看是不是过拟合了

是的,我划分了训练开发测试集,接下来我去比较一下训练中dev和test的结果变化,观测是否有过拟合的存在。感谢老师回复,祝您生活愉快!

yzxx667 commented 5 months ago

老师,对于《Joint Document-Level Event Extraction via Token-Token Bidirectional Event Completed Graph》这篇论文,论文在ChFinAnn上和Duee-Fin上的F1都出其的好。我也在原作者的github上看到了老师您的评论,请问老师这篇论文的F1与Doc2EDAG中定义的F1是不是不同?

Spico197 commented 5 months ago

老师,对于《Joint Document-Level Event Extraction via Token-Token Bidirectional Event Completed Graph》这篇论文,论文在ChFinAnn上和Duee-Fin上的F1都出其的好。我也在原作者的github上看到了老师您的评论,请问老师这篇论文的F1与Doc2EDAG中定义的F1是不是不同?

嗯啊,根据作者在issue区的回复和论文中的说明,两个metrics不相同。

yzxx667 commented 3 months ago

老师您好,请问目前对于文档级别的DEE,在ChFinAnn数据集上表现为SOTA的模型有哪些呢?