transformers基础组件tokenizer

数据预处理

1.分词

使用分词器对文本数据进行分词

2.构建词典

根据数据集分词的结果,构建词典映射

3.数据转换

根据构建好的词典,将分词处理后的数据做映射,将文本序列转换为数字序列

4.数据填充与截断

在以batch输入到模型的方式中,需要对过短的数据进行填充,对过长的数据进行截断,保证数据长度符合模型能接受的范围,同时batch内的数据维度一致

加载与保存

#从huggingFace加载,输入模型名称
tokenizer=AutoTokenizer.from_pretrained("uer/roberta-base-finetuned-dianping-chinese")
#保存到本地
tokenizer.save_pretrained("./roberta_tokenizer")
#从本地加载tokenizer
tokenizer=AutoTokenizer.from_pretrained("./roberta_tokenizer")

句子分词

from transformers import AutoTokenizer
san="弱小的我还有大梦想"
tokens=tokenizer.tokenize(sen)
#查看词典
tokenizer.vocab

索引转换

ids=toknizer.convert_tokens_to_ids(tokens)
ids

tokens=tokenizer.convert_ids_to_tokens(ids)
tokens

str_sen=tokenizer.connvert_tokens_to_string(tokens)
str_sen

更便捷的实现方式

ids=tokenizer.encode(sen)
ids
ids=tokenizer.encode(sen,add_special_tokens=False)
ids

#将id序列转成字符串,有称为解码
str_sen=tokenizer.decode(ids)
str_sen

填充和截断

ids=tokenizer.encode(sen,padding="max_length",max_length=15)
ids

ids=tokenizer.encode(sen,max_length=5,truncation=True)
ids

 快速调用方法

inputs=tokenizer.encode_plus(sen,padding="max_length",max_length=15)
inputs


inputs=tokenizer(sen,padding="max_length",max_length=15)
inputs

#处理batch数据
sens=["弱小的我也有大梦想",
     "有梦想的了不起"]
res=tokenizer(sens)
res

特殊tokenizer的加载

from transformers import AutoTokenizer
tokenizer=AutoTokenizer.from_pretrained("THUDM/chatglm-6b",trust_remote_code=True)
tokenizer

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值