Open TransformersWsz opened 4 years ago
还没实验过英文的,晚点我实验一下看看。
还没实验过英文的,晚点我实验一下看看。
苏神,有结果了吗
还没实验过英文的,晚点我实验一下看看。
苏神,有结果了吗
没。对英文任务没什么兴趣,拖着还没弄~倒不如你说说你改动了什么?英文和中文不一样,task_sequence_labeling_ner_crf.py肯定是不能直接套的,你列举一下你改动之处,咱们对比一下?
还没实验过英文的,晚点我实验一下看看。
苏神,有结果了吗
没。对英文任务没什么兴趣,拖着还没弄~倒不如你说说你改动了什么?英文和中文不一样,task_sequence_labeling_ner_crf.py肯定是不能直接套的,你列举一下你改动之处,咱们对比一下?
我是直接套的。。。,顶多就是把labels改改
还没实验过英文的,晚点我实验一下看看。
苏神,有结果了吗
没。对英文任务没什么兴趣,拖着还没弄~倒不如你说说你改动了什么?英文和中文不一样,task_sequence_labeling_ner_crf.py肯定是不能直接套的,你列举一下你改动之处,咱们对比一下?
我是直接套的。。。,顶多就是把labels改改
这应该不行吧。。。你好歹得观察一下data_generator的样本输出是不是正常吧,中文的脚本直接处理英文说不准会出现什么异常的呀。
还没实验过英文的,晚点我实验一下看看。
苏神,有结果了吗
没。对英文任务没什么兴趣,拖着还没弄~倒不如你说说你改动了什么?英文和中文不一样,task_sequence_labeling_ner_crf.py肯定是不能直接套的,你列举一下你改动之处,咱们对比一下?
我是直接套的。。。,顶多就是把labels改改
这应该不行吧。。。你好歹得观察一下data_generator的样本输出是不是正常吧,中文的脚本直接处理英文说不准会出现什么异常的呀。
你的代码我看过了,因为没有区分中英文,所以直接套了。data_generator输出的token_id, seg_id, labels是正常的
在做NER的时候,bert_base 微调人民日报f1能达到96%, 但在coNLL2003数据集上却停留在40%,所用的英文模型是 cased_L-12_H-768_A-12 不知道作者是否在英文语料上微调过?
人民日报数据, 第几个epoch F1能上来?? 我看刚开始的epoch, F1非常低
我尝试修改了load_data函数,使得conll03的每个单词之间存在一个空格,原先的中文是没有空格分割的。并且在tokenizer.py中修改了`def _tokenize(self, text, pre_tokenize=True): """基本分词函数 """ if self._do_lower_case: text = lowercase_and_normalize(text)
if pre_tokenize and self._pre_tokenize is not None:
tokens = []
for token in self._pre_tokenize(text):
if token in self._token_dict:
tokens.append(token)
else:
tokens.extend(self._tokenize(token, False))
return tokens
spaced = ''
if self._language == 'en':
text = text.split(' ')
for ch in text:
try:
if self._is_punctuation(ch) or self._is_cjk_character(ch):
spaced += ' ' + ch + ' '
elif self._is_space(ch):
spaced += ' '
elif ord(ch) == 0 or ord(ch) == 0xfffd or self._is_control(ch):
continue
else:
spaced += ch
except:
# ch是英文单词
ch += ' '
spaced += ch
tokens = []
for word in spaced.strip().split():
tokens.extend(self._word_piece_tokenize(word))
return tokens`
目的是将标签和索引与单词对齐,而不是字符。最后得到了正常的结果,10个epoch得到f1:0.82
环境为: tensorflow-gpu == 2.6.0 bert4keras == 0.9.9
在做NER的时候,bert_base 微调人民日报f1能达到96%, 但在coNLL2003数据集上却停留在40%,所用的英文模型是 cased_L-12_H-768_A-12 不知道作者是否在英文语料上微调过?