131250208 / TPlinker-joint-extraction

438 stars 94 forks source link

关于TPLinker在SCIERC数据集的实验 #75

Closed shenhuahao closed 2 years ago

shenhuahao commented 2 years ago

作者您好,我正在使用你在github上的TPLinker模型在SCIERC数据集上进行实验,数据按照相应格式处理(我自己编写的脚本,我也人工对照过了),并且已经转换了rel2id.json。 参数方面,match_pattern为"whole_text",batch_size设置为6,一个epoch大概是300多step,跑了100个epoch(即总共30000多个step),f1值在20多。 我在TPLinker的github issues上看到了您与其他人关于在其他数据集上的讨论(https://github.com/131250208/TPlinker-joint-extraction/issues/8),请问最后讨论的结果是暂时在conll04和SCIERC数据集上效果不明显嘛? 还是我实验存在问题呢?后续有何改进

131250208 commented 2 years ago

你好,原始的TPLinker因为数据不均衡的问题收敛很慢(positive << negative),如果排除数据预处理和BERT设置的问题,不收敛的原因一般都是step数还不够,有一些数据集太小,需要设置很多个epoch才会收敛,比如你引用的这个issue里。batch_size, learning rate也会影响最终的效果,但是不会有很大差距,如果已经开始收敛而结果差很多,一般就是其他设置出了问题。比如预处理切词边界和entity不对应,BERT忘记设置(中英误用),或者切词时用的是中文bert,训练时用的英文bert...

131250208 commented 2 years ago

对于SCIERC数据集我没有亲自试过, 可以先用TPLinkerPLUS跑一遍看看是否是数据处理的问题,Plus收敛会快很多