BERT中文NER任务:如何标记其中的字母?

时间:2020-03-28 13:41:15

标签: tokenize cjk transformer ner huggingface-transformers

我正在从事中国NER项目。我不确定如何分割中文句子以对齐标签。具体来说,如何在汉语句子中拆分英语单词。

我的原始句子是句子1。我应用了不同的间距方案,并得到了不同的BERT标记化结果。

f(j) for odd j

这只是一个例子。在其他情况下,我看到了标记化的BPE结果:

from transformers import BertModel, BertConfig, BertTokenizer

tokenizer = BertTokenizer.from_pretrained('bert-base-chinese')
sentence1 = "维生素(Vitamin) D 100 IU"
sentence2 = "维生素 (Vitamin) D 100 IU"
sentence3 = "维 生 素 ( V i t a m i n ) D 1 0 0 I U"

print(tokenizer.tokenize(sentence1))
['维', '生', '素', '(', '[UNK]', ')', '[UNK]', '100', '[UNK]']

print(tokenizer.tokenize(sentence2))
['维', '生', '素', '(', '[UNK]', ')', '[UNK]', '100', '[UNK]']

print(tokenizer.tokenize(sentence3))
['维', '生', '素', '(', '[UNK]', 'i', 't', 'a', 'm', 'i', 'n', ')', '[UNK]', '1', '0', '0', '[UNK]', '[UNK]']

我知道BERT将根据其自己的方案重新组织输入文本和标签,但是显然,我如何预处理输入会影响结果。不知道该不该
1.根据句子2或句子3添加空间,并相应对齐标签。
2.首先使用BERT标记器,并相应地对齐我的标签。

有什么建议吗?谢谢!

0 个答案:

没有答案