Closed DanqingZ closed 4 years ago
您好,
请问用attention_mask做crf的mask的话,一个word假设有多个sub tokens,那这些tokens都就都keep了。在bert for ner里面,是用一个词的第一个token做的classification。
https://github.com/lonePatient/BERT-NER-Pytorch/blob/master/models/bert_for_ner.py#L64 同时在decode的时候
https://github.com/lonePatient/BERT-NER-Pytorch/blob/38326e125696c5a34c54ada676930bee4a2d1693/run_ner_crf.py#L210
此处的mask也是attention mask。那么就会导致从CLS到SEP还有其中的所有token都会被keep,用于做decode。请问此处mask这样设置合理么?还是应该只保留每个word的第一个token呢?谢谢!
@DanqingZ 大部分中文NER数据都是char分开了,##token英文数据系多点,可以简单修改下就行了,短时间内可能没空去修改了,正在写论文。后续我对英文数据适配下 。
好的,明白了!那请问CLS和SEP应该keep么,如果是用attention mask这两个也传给CRF了。
您好,
请问用attention_mask做crf的mask的话,一个word假设有多个sub tokens,那这些tokens都就都keep了。在bert for ner里面,是用一个词的第一个token做的classification。
https://github.com/lonePatient/BERT-NER-Pytorch/blob/master/models/bert_for_ner.py#L64 同时在decode的时候
https://github.com/lonePatient/BERT-NER-Pytorch/blob/38326e125696c5a34c54ada676930bee4a2d1693/run_ner_crf.py#L210
此处的mask也是attention mask。那么就会导致从CLS到SEP还有其中的所有token都会被keep,用于做decode。请问此处mask这样设置合理么?还是应该只保留每个word的第一个token呢?谢谢!