bert tokenizer

tokenizer 的选择

有 BertTokenizerFast 和 BertTokenizer, BertTokenizerFast 更快,因为使用了 tokenizer 库。
因为 tokenizer 库基于 RUST 所以多线程更好。而 BertTokenizer 基于 python 的。
所以,我们使用 BertTokenizerFast

from transformers import BertTokenizerFast

tokenizer 带来的问题

如果是做分类等问题,那么,tokenizer 并不会带来什么问题。但是如果做 ner 这种 span 抽取,会带来问题,就是
WordPiceTokenizer 对句子的切分并非是一一对应的。那么,如果对应这个位置会是很繁琐的一个问题。

  1. 首先将 多余出来的部分用 padding index,
    例如 going -> "go", "ing", 其中 "ing" 用 padding index 填充。在获取 span 的时候,忽略到 padding index 即可。
  2. 另外一种可能会变少比如: "6000" -> "600", "0", 那么种种情况怎么处理?
    2.1 进行 tokenizer 的时候一个字一个字进行,那么,就保证一定增加不会减少
    2.2 offset_mapping 来映射,变换前和变化后的 id. 理论上来说这个是通用的。

你可能感兴趣的:(bert tokenizer)