位置: IT常识 - 正文

BertTokenizer的使用方法(超详细)(bert multihead)

编辑:rootadmin
BertTokenizer的使用方法(超详细) 导入from transformers import BertTokenizerfrom pytorch_pretrained import BertTokenizer

推荐整理分享BertTokenizer的使用方法(超详细)(bert multihead),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:bert tokenizer 原理,bert tokenizer 原理,bert tokenizer,bert中的token,berttokenizer.from_pretrained,bert tokenize,bert tokenize,bert tokenize,内容如对您有帮助,希望把文章链接给更多的朋友!

以上两行代码都可以导入BerBertTokenizer,transformers是当下比较成熟的库,pytorch_pretrained是google提供的源码(功能不如transformers全面)

加载tokenizer = BertTokenizer.from_pretrained('bert_pretrain')数据

首先定义一些数据:

sents = [ '人工智能是计算机科学的一个分支。', '它企图了解智能的实质。', '人工智能是一门极富挑战性的科学。',]tokenize

将句子拆分为token,并不映射为对应的id

token = tokenizer.tokenize(sents[0])print(token)# 输出:['人', '工', '智', '能', '是', '计', '算', '机', '科', '学', '的', '一', '个', '分', '支', '。']convert_tokens_to_idsBertTokenizer的使用方法(超详细)(bert multihead)

将token映射为其对应的id(ids是我们训练中真正会用到的数据)

ids = tokenizer.convert_tokens_to_ids(token)print(ids)#输出:[8, 35, 826, 52, 10, 159, 559, 98, 147, 18, 5, 7, 27, 59, 414, 12043]

同理convert_ids_to_tokens,就是上述方法的逆过程

encode(从此方法开始,只有transformers可以实现)

convert_tokens_to_ids是将分词后的token转化为id序列,而encode包含了分词和token转id过程,即encode是一个更全的过程,另外,encode默认使用basic的分词工具,以及会在句子前和尾部添加特殊字符[CLS]和[SEP],无需自己添加。从下可以看到,虽然encode直接使用tokenizer.tokenize()进行词拆分,会保留头尾特殊字符的完整性,但是自己也会额外添加特殊字符。

token = tokenizer.tokenize(sents[0])print(token)ids = tokenizer.convert_tokens_to_ids(token)print(ids)ids_encode = tokenizer.encode(sents[0])print(ids_encode)token_encode = tokenizer.convert_ids_to_tokens(ids_encode)print(token_encode)# 输出结果:#['人', '工', '智', '能', '是', '计', '算', '机', '科', '学', '的', '一', '个', '分', '支', '。']#[8, 35, 826, 52, 10, 159, 559, 98, 147, 18, 5, 7, 27, 59, 414, 12043]#[1, 8, 35, 826, 52, 10, 159, 559, 98, 147, 18, 5, 7, 27, 59, 414, 12043, 2]#['[CLS]', '人', '工', '智', '能', '是', '计', '算', '机', '科', '学', '的', '一', '个', '分', '支', '。', '[SEP]']

从运行结果可以看到encode确实在首尾增加了特殊词元[cls]和[sep]也就是1和2

encode_plus

返回更多相关信息:

ids = tokenizer.encode_plus(sents[0])print(ids)# {'input_ids': [1, 8, 35, 826, 52, 10, 159, 559, 98, 147, 18, 5, 7, 27, 59, 414, 12043, 2], #'token_type_ids': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], #'attention_mask': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]}

相关参数介绍:

out = tokenizer.encode_plus( text=sents[0], text_pair=sents[1], #当句子长度大于max_length时,截断 truncation=True, #一律补零到max_length长度 padding='max_length', max_length=30, add_special_tokens=True, #可取值tf,pt,np,默认为返回list return_tensors=None, #返回token_type_ids return_token_type_ids=True, #返回attention_mask return_attention_mask=True, #返回special_tokens_mask 特殊符号标识 return_special_tokens_mask=True, #返回offset_mapping 标识每个词的起止位置,这个参数只能BertTokenizerFast使用 #return_offsets_mapping=True, #返回length 标识长度 return_length=True,)for k, v in out.items(): print(k, ':', v)#input_ids : [1, 8, 35, 826, 52, 10, 159, 559, 98, 147, 18, 5, 7, 27, 59, 414, 12043, 2, 380, 258, 429, 15, 273, 826, 52, 5, 79, 207, 12043, 2]#token_type_ids : [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]#special_tokens_mask : [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]#attention_mask : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]#length : 30batch_encode_plus

以 batch 的形式去编码句子

ids = tokenizer.batch_encode_plus([x for x in sents])print(ids)# {#'input_ids': [[1, 8, 35, 826, 52, 10, 159, 559, 98, 147, 18, 5, 7, 27, 59, 414, 12043, 2], [1, 380, 258, 429, 15, 273, 826, 52, 5, 79, 207, 12043, 2], [1, 8, 35, 826, 52, 10, 7, 232, 456, 595, 1373, 267, 92, 5, 147, 18, 12043, 2]], #'token_type_ids': [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], #'attention_mask': [[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]]}
本文链接地址:https://www.jiuchutong.com/zhishi/292321.html 转载请保留说明!

上一篇:格林内尔湖,蒙大拿州冰川国家公园 (© Pung/Shutterstock)(格林湖人)

下一篇:拉韦尔泰佐附近一条河里的石头,瑞士塞斯卡山谷 (© Robert Seitz/Offset by Shutterstock)(拉尔韦橡)

  • 微博超话的关注总天数在哪看(微博超话的关注总人数在哪看)

    微博超话的关注总天数在哪看(微博超话的关注总人数在哪看)

  • 苹果的回车键在哪里开(苹果的回车键在哪里输入法九宫格)

    苹果的回车键在哪里开(苹果的回车键在哪里输入法九宫格)

  • 抖音举报别人会被知道吗(抖音举报别人会不会暴露自己)

    抖音举报别人会被知道吗(抖音举报别人会不会暴露自己)

  • 小米cc9pro尊享版区别(小米cc9pro尊享版处理器)

    小米cc9pro尊享版区别(小米cc9pro尊享版处理器)

  • 抖音加了粉丝团怎么退(抖音加了粉丝团在哪里查看)

    抖音加了粉丝团怎么退(抖音加了粉丝团在哪里查看)

  • 微信群被投诉会不会影响群成员(微信群投诉会不会显示投诉人)

    微信群被投诉会不会影响群成员(微信群投诉会不会显示投诉人)

  • 罗马仕充电宝鼓包原因(罗马仕充电宝鼓起来怎么办)

    罗马仕充电宝鼓包原因(罗马仕充电宝鼓起来怎么办)

  • 苹果无线耳机电量怎么看(苹果无线耳机电池)

    苹果无线耳机电量怎么看(苹果无线耳机电池)

  • 红米儿童模式不见了(红米手机儿童锁如何设置)

    红米儿童模式不见了(红米手机儿童锁如何设置)

  • 电脑屏幕上有一块白色方块,怎么办(电脑屏幕上有一行字怎么去掉)

    电脑屏幕上有一块白色方块,怎么办(电脑屏幕上有一行字怎么去掉)

  • vega11相当于什么显卡(vega 11是哪个cpu)

    vega11相当于什么显卡(vega 11是哪个cpu)

  • 苹果手机的水印设置在哪里可以找到(苹果手机的水印相机在哪里设置)

    苹果手机的水印设置在哪里可以找到(苹果手机的水印相机在哪里设置)

  • 手机用了三年,现在太卡了怎么办(手机用了三年半需要换吗)

    手机用了三年,现在太卡了怎么办(手机用了三年半需要换吗)

  • 微信置顶文字别人能看到吗(微信的置顶文字别人能看见吗)

    微信置顶文字别人能看到吗(微信的置顶文字别人能看见吗)

  • 华为荣耀7x怎么分屏操作(华为荣耀7x怎么恢复出厂设置)

    华为荣耀7x怎么分屏操作(华为荣耀7x怎么恢复出厂设置)

  • 微信仅聊天限制哪些功能(微信聊天限制多久解除)

    微信仅聊天限制哪些功能(微信聊天限制多久解除)

  • 苹果11铃声怎么调大(苹果11铃声怎么设置自己的歌不用库乐队)

    苹果11铃声怎么调大(苹果11铃声怎么设置自己的歌不用库乐队)

  • 华为哪个手机是type-c(华为哪个手机是麒麟990)

    华为哪个手机是type-c(华为哪个手机是麒麟990)

  • p30pro夜景模式怎么调(华为p30pro夜景模式)

    p30pro夜景模式怎么调(华为p30pro夜景模式)

  • 淘宝预售提醒怎么取消(淘宝预售提醒怎么关闭)

    淘宝预售提醒怎么取消(淘宝预售提醒怎么关闭)

  • 小米4c电视能用语音吗(小米4c电视支持wifi吗)

    小米4c电视能用语音吗(小米4c电视支持wifi吗)

  • 抖音删作品会有什么影响(抖音删作品有没有影响)

    抖音删作品会有什么影响(抖音删作品有没有影响)

  • 如何增加vue视频时间(vue视频编辑速度怎么放慢)

    如何增加vue视频时间(vue视频编辑速度怎么放慢)

  • oppok3有什么功能(oppok3功能介绍)

    oppok3有什么功能(oppok3功能介绍)

  • iphonex绿屏闪烁(iphonex绿屏闪烁怎么办)

    iphonex绿屏闪烁(iphonex绿屏闪烁怎么办)

  • word图片批量调整大小(word图片批量调整格式)

    word图片批量调整大小(word图片批量调整格式)

  • 房产税计入管理费用了,汇算清缴怎么调
  • 股东撤资涉及到哪些税如何缴纳?
  • 进口增值税如何入账
  • 金蝶软件中怎么登记应该税费
  • 提供劳务应收未收的款项
  • 费用报销票跨月跨年可以吗
  • 固定资产直接计入成本的规定
  • 开票地址一定要写全吗
  • 财务报告与财务报表的联系与区别
  • 技术咨询服务开什么发票
  • 通行费机打发票税率
  • 企业停产是否需要自行监测
  • 增值税留抵退税政策2022
  • 注册资本未到位转让股权
  • 公司账户没有钱怎么办
  • 进口关税专用缴款书在哪里打印
  • 租入生物性资产如何入账
  • 公司为什么要成立工会委员会
  • 增值税发票当期能抵扣吗
  • 停车场如何申领车牌号
  • 预付账款和其他应收款可以抵消吗
  • 股东私人垫支公司支付零星材料的会计分录
  • 库存周转天数计算实例
  • 王者荣耀电脑版叫啥名字
  • 贴息费率
  • win7为什么这么多人用
  • ubuntu22.04更换RTX 4090显卡后,安装驱动和pytorch记录
  • 在win7系统中安装win10
  • win11dev预览版可以升级正式版吗
  • 包装物适用的税率是多少
  • 会计费用科目分类表
  • 所得税时间性差异与暂时性差异
  • 企业所得税如何更正申报
  • php请求接口数据
  • 债务重组亏损计入
  • 增值税免征与即征的区别
  • 期间费用计算公式
  • 允许加计扣除的委托境外研发费用
  • javascript网页自动化
  • js中的截取字符串
  • 报销借款分录怎么做
  • 不符合无形资产摊销条件
  • 收到保险赔款入什么科目
  • 公益性捐赠支出怎么算
  • 固定资产入账原值含税价吗
  • 事务所企业所得税
  • 如何查询继续教育ic卡号
  • 小规模纳税人免税政策2022
  • 未开票确认收入账务处理
  • 将购进的材料用于自制生产用设备
  • 如何确定费用归属哪个部门
  • 百望开发票
  • 公司被私募基金收购有啥影响 裁员
  • mysql图形
  • sql you
  • linux的df命令是什么单词的缩写
  • Linux设置jdk环境变量配置
  • u盘启动pe装机工具怎么用
  • ubuntu升级到21.04
  • linux 详解
  • centos7 ethtool
  • linux ultrasphinx Anonymous modules have no name to be referenced by
  • win7系统如何调节电脑屏幕亮度
  • Windows RT 8.1 Update 3九月发布 届时将加入改进版锁屏
  • win10更新中途怎么取消
  • win7电脑无法上网 连接正常
  • Visual Studio 2013 Tools for Unity安装目录,Visual Studio 2013 Tools.unitypackage
  • The graphics pipeline ,Open GL 渲染管线
  • 如何短时间内学会打字
  • cocos2djs
  • 批处理修改文件后缀名
  • 深入浅出python
  • cd弹出错误怎么回事
  • h5实现微信分享
  • python解析chunked
  • 宁波市税务网上营业厅
  • 江苏省国税务局严三国
  • 贵阳税务官网登录
  • 百旺税控人工客服电话
  • 山东省税务局地税苑宿舍是谁开发的?
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设