PaddlePaddle / PaddleNLP

👑 Easy-to-use and powerful NLP and LLM library with 🤗 Awesome model zoo, supporting wide-range of NLP tasks from research to industrial applications, including 🗂Text Classification, 🔍 Neural Search, ❓ Question Answering, ℹ️ Information Extraction, 📄 Document Intelligence, 💌 Sentiment Analysis etc.
https://paddlenlp.readthedocs.io
Apache License 2.0
12.07k stars 2.93k forks source link

msra ner数据集test.tsv的句子切分貌似和原数据集不一样 #642

Closed qiningli closed 2 years ago

qiningli commented 3 years ago

很多句子切分和原数据集不一样,一般不影响NER任务,但主要是有很多句变成一句的,比如第三句有300多个字,后面还有两千多字一句的,直接做预测就截断了,用来和论文结果比较还需要自己预处理。

Steffy-zxf commented 3 years ago

@qiningli 你好!你指的原数据集 有数据集链接吗?

qiningli commented 3 years ago

@qiningli 你好!你指的原数据集 有数据集链接吗?

你好,这里有个分词格式的: https://github.com/buppt/ChineseNER/tree/master/data/MSRA 这里有个conll格式的: https://drive.google.com/open?id=1mDKkc2-8e4wXAuAnGiZMHI59UgVbl1q4 这两份的测试集切分是一样的。

Steffy-zxf commented 3 years ago

你好!使用paddlenlp.datasets.load_dataset("msra_ner", splits=['train', 'test'])接口返回的数据是原始数据。不清楚上面提到的

很多句子切分和原数据集不一样,一般不影响NER任务,但主要是有很多句变成一句的,比如第三句有300多个字,后面还有两千多字一句的,直接做预测就截断了,用来和论文结果比较还需要自己预处理。

是什么意思?

另外,PaddleNLP内置的MSRA-NER原始数据集参考:https://github.com/OYE93/Chinese-NLP-Corpus/tree/master/NER/MSRA

不太清楚上述提到的数据:

你好,这里有个分词格式的: https://github.com/buppt/ChineseNER/tree/master/data/MSRA 这里有个conll格式的: https://drive.google.com/open?id=1mDKkc2-8e4wXAuAnGiZMHI59UgVbl1q4 这两份的测试集切分是一样的。

qiningli commented 3 years ago

@Steffy-zxf 我自己检查了一下我引用的数据集,发现我描述的不准确: 关于第2个问题,其实我也不知道最原始的数据集是哪种,之前下载过另一份conll格式也没有dev set的,所用的句子切分也和上面两份一样,但是忘了哪里下载的了。只有paddle这份不一样,这份test里有85个后引号在下一句开头,我觉得不太像是原始版本: image

关于第1个问题,句子长度这个我发现不是paddlenlp数据的问题,因为刚发现另一个版本也有2个长句子。最初提出这个问题是因为模型有截断,这个数据集经常要和论文数据比较,必须截成短句子,我看到paddle这份长句子特别多,以为是数据版本不对造成的。现在看来无论用哪个版本都要自己截成短句子,那就没什么关系了。

但是文件版本还是建议确认一下,以防错误版本流传,有些任务可能结果会受影响的。我引用的那个版本就没有引号错误。

lvjiujin commented 3 years ago

你好!使用paddlenlp.datasets.load_dataset("msra_ner", splits=['train', 'test'])接口返回的数据是原始数据。不清楚上面提到的

很多句子切分和原数据集不一样,一般不影响NER任务,但主要是有很多句变成一句的,比如第三句有300多个字,后面还有两千多字一句的,直接做预测就截断了,用来和论文结果比较还需要自己预处理。

是什么意思?

另外,PaddleNLP内置的MSRA-NER原始数据集参考:https://github.com/OYE93/Chinese-NLP-Corpus/tree/master/NER/MSRA

不太清楚上述提到的数据:

你好,这里有个分词格式的: https://github.com/buppt/ChineseNER/tree/master/data/MSRA 这里有个conll格式的: https://drive.google.com/open?id=1mDKkc2-8e4wXAuAnGiZMHI59UgVbl1q4 这两份的测试集切分是一样的。

这个PaddleNLP内置的MSRA-NER数据集,不是MSRA原始的NER数据集,原始的MSRA-NER数据集有26个类别。不要动辄就用原始的两个字,它代表了原创和最早,ok不?

qiningli commented 2 years ago

这个PaddleNLP内置的MSRA-NER数据集,不是MSRA原始的NER数据集,原始的MSRA-NER数据集有26个类别。不要动辄就用原始的两个字,它代表了原创和最早,ok不?

我觉得如果你的目的不是解决数据集本身可能有的问题,而是跟我纠结原始两个字的含义,那这个讨论没有必要,也不是应该在git上issue的关注点。我说不是原始数据集的意思是,它可能有一些后来引入的错误,比如后引号跑到下一行开头,而网络上流传的其他MSRA数据集不是这样的,这个比较一下很明显,就是很简单的事情,如果不改就不改,我有什么ok不ok的?又不是我的数据集,有问题又跟我没关系。

我提出这个问题就是因为我自己用这个数据集去复现论文,发现结果不一致,才回去找其中的问题。因为这是benchmark数据集,如果数据集之间不一样,去跑evaluation可能丧失公正性。至于我原始两个字用的对不对,如果你觉得不对我道歉吧,我不说了就是了。