【Transformers源码】分词器的一点尝试

add_tokens和add_special_tokens一点点尝试

#!/usr/bin/env python
# -*- coding: utf-8 -*-
from transformers import BertTokenizer


def show_token_info(input_str, my_tokenizer):
    print("vocab_size: ", my_tokenizer.vocab_size)
    encode_info = my_tokenizer([input_str])
    convert_token_list = my_tokenizer.convert_ids_to_tokens(encode_info['input_ids'][0])
    print("分词结果:", convert_token_list)


print("******Tokenizer******")
input_txt = "甄天真真天真1234"
model_path = "/Users/daliy/PythonCode/pretraining/LanguageModel/chinese-roberta-wwm-ext"
tokenizer_bert = BertTokenizer.from_pretrained(model_path)
show_token_info(input_txt, tokenizer_bert)

print("******add_tokens******")
# 添加tokens
words = ['天真', '甄天真']
tokenizer_bert.add_tokens(words)
show_token_info(input_txt, tokenizer_bert)

print("******add_special_tokens******")
# 添加special_tokens
token_list = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
special_tokens_dict = {'additional_special_tokens': token_list}
tokenizer_bert.add_special_tokens(special_tokens_dict)
show_token_info(input_txt, tokenizer_bert)

直接看结果自行体会吧

******Tokenizer******
vocab_size:  21128
分词结果: ['[CLS]', '甄', '天', '真', '真', '天', '真', '1234', '[SEP]']
******add_tokens******
vocab_size:  21128
分词结果: ['[CLS]', '甄天真', '真', '天真', '1234', '[SEP]']
******add_special_tokens******
vocab_size:  21128
分词结果: ['[CLS]', '甄天真', '真', '天真', '1', '2', '3', '4', '[SEP]']
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值