您正在从特定模型(bert base uncased)调用tokenize函数,这只考虑他的词汇表(如我所料)。为了防止分割某些标记,它们必须是词汇表的一部分(您可以使用方法add_tokens扩展词汇表)
我想下面的例子说明了我想说的:
from transformers import BertTokenizer
text = "lol That's funny lool"
tokenizer = BertTokenizer.from_pretrained('bert-base-uncased', never_split=['lol'])
#what you are doing
print(tokenizer.tokenize(text))
#how it is currently working
print(tokenizer.basic_tokenizer.tokenize(text))
#how you should do it
tokenizer.add_tokens('lol')
print(tokenizer.tokenize(text))
我认为这是一个bug,或者至少没有很好的文档记录。只有在使用BasicTokenizer(它是BertTokenizer的一部分)时,才会考虑
never_split
参数您正在从特定模型(bert base uncased)调用tokenize函数,这只考虑他的词汇表(如我所料)。为了防止分割某些标记,它们必须是词汇表的一部分(您可以使用方法add_tokens扩展词汇表)
我想下面的例子说明了我想说的:
输出:
相关问题 更多 >
编程相关推荐