本文主要是介绍transformers Tokenizer,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
☆ 问题描述
Tokenizer的学习笔记(Tokenizer is all you need)
Tokenizer用于数据预处理
- 分词
- 构建词典
- 数据转换
- 数据填充与截断
现在Tokenizer可以做到上面的所有事情。
★ 解决方案
Tokenizer的基本使用
# 导入Tokenizer
from transformers import AutoTokenizer# 模型加载
# 从HuggingFace加载,输入模型名称,即可加载对于的分词器
tokenizer = AutoTokenizer.from_pretrained("uer/roberta-base-finetuned-dianping-chinese")# tokenizer 保存到本地
tokenizer.save_pretrained("./roberta_tokenizer")# 从本地加载tokenizer
tokenizer = AutoTokenizer.from_pretrained("./roberta_tokenizer/")
tokenizer# 句子分词
tokens = tokenizer.tokenize("这是一个句子")# 查看字典
tokenizer.vocab# 查看字典大小
tokenizer.vocab_size# 将词序列转换为id序列
ids = tokenizer.convert_tokens_to_ids(tokens)# 将id序列转换为token序列
tokens = tokenizer.convert_ids_to_tokens(ids)# 将token序列转换为string
str_sen = tokenizer.convert_tokens_to_string(tokens)# 将字符串转换为id序列,又称之为编码
ids = tokenizer.encode(sen, add_special_tokens=True)# 将id序列转换为字符串,又称之为解码
str_sen = tokenizer.decode(ids, skip_special_tokens=False)# 填充
ids = tokenizer.encode(sen, padding="max_length", max_length=15)# 截断
ids = tokenizer.encode(sen, max_length=5, truncation=True)# 快速调用方式
inputs = tokenizer.encode_plus(sen, padding="max_length", max_length=15)
#或
inputs = tokenizer(sen, padding="max_length", max_length=15)# batch数据
sens = ["弱小的我也有大梦想","有梦想谁都了不起","追逐梦想的心,比梦想本身,更可贵"]
res = tokenizer(sens)# fast 和 slow Tokenizer
# fast
fast_tokenizer = AutoTokenizer.from_pretrained("uer/roberta-base-finetuned-dianping-chinese")
# slow
slow_tokenizer = AutoTokenizer.from_pretrained("uer/roberta-base-finetuned-dianping-chinese", use_fast=False)
✅ 总结
这篇关于transformers Tokenizer的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!