LeeSureman / Flat-Lattice-Transformer

code for ACL 2020 paper: FLAT: Chinese NER Using Flat-Lattice Transformer
1k stars 178 forks source link

请问下对于句长较长的句子是怎么处理的? #55

Closed Maybewuss closed 3 years ago

Maybewuss commented 3 years ago

没有在代码中找到明显的逻辑,msra数据集中有部分句子超过512,这部分句子应该怎么处理?

mirrorQAQ commented 3 years ago

在main里面有一个train_clip的参数,意思是你可以加载clip之后的预料。数据预处理的clip是写在preprocess里面。 但是这个预处理的clip 逻辑感觉是有问题的, 运行之后会发现并没有clip掉。 作者用的16G的卡,他的clip句长是200。可以根据自己的卡进行调整。 另一个回答里面贴了的我自己修改之后的预处理,可参考

Maybewuss commented 3 years ago

在main里面有一个train_clip的参数,意思是你可以加载clip之后的预料。数据预处理的clip是写在preprocess里面。 但是这个预处理的clip 逻辑感觉是有问题的, 运行之后会发现并没有clip掉。 作者用的16G的卡,他的clip句长是200。可以根据自己的卡进行调整。 另一个回答里面贴了的我自己修改之后的预处理,可参考

那最后evaluate的时候会考虑被切掉部分的答案吗?

LeeSureman commented 3 years ago

在main里面有一个train_clip的参数,意思是你可以加载clip之后的预料。数据预处理的clip是写在preprocess里面。 但是这个预处理的clip 逻辑感觉是有问题的, 运行之后会发现并没有clip掉。 作者用的16G的卡,他的clip句长是200。可以根据自己的卡进行调整。 另一个回答里面贴了的我自己修改之后的预处理,可参考

那最后evaluate的时候会考虑被切掉部分的答案吗?

对于evaluate的句子,我们也会做对应train集的切割,请注意不是丢弃句子超过一定长度的部分,而是把这个长句分成两个较短的句子

Maybewuss commented 3 years ago

在main里面有一个train_clip的参数,意思是你可以加载clip之后的预料。数据预处理的clip是写在preprocess里面。 但是这个预处理的clip 逻辑感觉是有问题的, 运行之后会发现并没有clip掉。 作者用的16G的卡,他的clip句长是200。可以根据自己的卡进行调整。 另一个回答里面贴了的我自己修改之后的预处理,可参考

那最后evaluate的时候会考虑被切掉部分的答案吗?

对于evaluate的句子,我们也会做对应train集的切割,请注意不是丢弃句子超过一定长度的部分,而是把这个长句分成两个较短的句子

这部分的逻辑在代码的哪一块体现?

Maybewuss commented 3 years ago

在main里面有一个train_clip的参数,意思是你可以加载clip之后的预料。数据预处理的clip是写在preprocess里面。 但是这个预处理的clip 逻辑感觉是有问题的, 运行之后会发现并没有clip掉。 作者用的16G的卡,他的clip句长是200。可以根据自己的卡进行调整。 另一个回答里面贴了的我自己修改之后的预处理,可参考

那最后evaluate的时候会考虑被切掉部分的答案吗?

对于evaluate的句子,我们也会做对应train集的切割,请注意不是丢弃句子超过一定长度的部分,而是把这个长句分成两个较短的句子

这部分的逻辑在代码的哪一块体现?

在main里面有一个train_clip的参数,意思是你可以加载clip之后的预料。数据预处理的clip是写在preprocess里面。 但是这个预处理的clip 逻辑感觉是有问题的, 运行之后会发现并没有clip掉。 作者用的16G的卡,他的clip句长是200。可以根据自己的卡进行调整。 另一个回答里面贴了的我自己修改之后的预处理,可参考

那最后evaluate的时候会考虑被切掉部分的答案吗?

对于evaluate的句子,我们也会做对应train集的切割,请注意不是丢弃句子超过一定长度的部分,而是把这个长句分成两个较短的句子

已经找到了,谢谢

LeeSureman commented 3 years ago

在main里面有一个train_clip的参数,意思是你可以加载clip之后的预料。数据预处理的clip是写在preprocess里面。 但是这个预处理的clip 逻辑感觉是有问题的, 运行之后会发现并没有clip掉。 作者用的16G的卡,他的clip句长是200。可以根据自己的卡进行调整。 另一个回答里面贴了的我自己修改之后的预处理,可参考

那最后evaluate的时候会考虑被切掉部分的答案吗?

对于evaluate的句子,我们也会做对应train集的切割,请注意不是丢弃句子超过一定长度的部分,而是把这个长句分成两个较短的句子

这部分的逻辑在代码的哪一块体现?

在preproess.py的43,47,51行可以看出,我们切割句子的方法是在conll格式的数据中添加额外的空行里来将一个example转成两个

Maybewuss commented 3 years ago

在main里面有一个train_clip的参数,意思是你可以加载clip之后的预料。数据预处理的clip是写在preprocess里面。 但是这个预处理的clip 逻辑感觉是有问题的, 运行之后会发现并没有clip掉。 作者用的16G的卡,他的clip句长是200。可以根据自己的卡进行调整。 另一个回答里面贴了的我自己修改之后的预处理,可参考

那最后evaluate的时候会考虑被切掉部分的答案吗?

对于evaluate的句子,我们也会做对应train集的切割,请注意不是丢弃句子超过一定长度的部分,而是把这个长句分成两个较短的句子

这部分的逻辑在代码的哪一块体现?

在preproess.py的43,47,51行可以看出,我们切割句子的方法是在conll格式的数据中添加额外的空行里来将一个example转成两个

感谢!