位置: 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)(拉尔韦橡)

  • 抖音我关注的人怎么没有了(抖音我关注的人不让别人看到)

    抖音我关注的人怎么没有了(抖音我关注的人不让别人看到)

  • qq怎么取消封面设置(qq怎么取消封面?)

    qq怎么取消封面设置(qq怎么取消封面?)

  • 抖音直播不能说哪些违禁词(抖音直播不能说秒杀吗)

    抖音直播不能说哪些违禁词(抖音直播不能说秒杀吗)

  • 葡萄视频下载的视频在哪里(葡萄视频在哪儿下载)

    葡萄视频下载的视频在哪里(葡萄视频在哪儿下载)

  • 手机可以登两个微信吗(手机可以登两个千牛账号吗)

    手机可以登两个微信吗(手机可以登两个千牛账号吗)

  • 微云会员和超级会员区别(微云会员和微云超级会员)

    微云会员和超级会员区别(微云会员和微云超级会员)

  • 京东交易受到限制请更换支付方式(京东交易受到限制多久恢复)

    京东交易受到限制请更换支付方式(京东交易受到限制多久恢复)

  • 无线网卡需要宽带吗(无线网卡需要宽带密码吗)

    无线网卡需要宽带吗(无线网卡需要宽带密码吗)

  • 微信跳转失败怎么回事(微信转跳页面点击不进去)

    微信跳转失败怎么回事(微信转跳页面点击不进去)

  • 苹果哪一款笔记本是触摸屏(苹果哪一款笔记本剪辑比较好?)

    苹果哪一款笔记本是触摸屏(苹果哪一款笔记本剪辑比较好?)

  • 段后间距怎么设置12磅(段后间距怎么设置wps)

    段后间距怎么设置12磅(段后间距怎么设置wps)

  • 苹果7plus为什么老是闪退(苹果7plus为什么会发烫)

    苹果7plus为什么老是闪退(苹果7plus为什么会发烫)

  • 苹果x时间不对怎么调(苹果时间不对怎么调时间)

    苹果x时间不对怎么调(苹果时间不对怎么调时间)

  • 微信悬浮窗怎么使用(微信悬浮窗怎么打开)

    微信悬浮窗怎么使用(微信悬浮窗怎么打开)

  • 陌陌注销账号再注册信息还在吗(陌陌注销帐号后,别人还能看到吗)

    陌陌注销账号再注册信息还在吗(陌陌注销帐号后,别人还能看到吗)

  • 抖音共同关系是什么(抖音上共同关注和共同好友有什么区别)

    抖音共同关系是什么(抖音上共同关注和共同好友有什么区别)

  • 苹果手机可以设置来电视频吗(苹果手机可以设置通话录音吗)

    苹果手机可以设置来电视频吗(苹果手机可以设置通话录音吗)

  • qq空间屏蔽了对方 对方看得到吗(qq空间屏蔽了对方,特别关心能看到吗)

    qq空间屏蔽了对方 对方看得到吗(qq空间屏蔽了对方,特别关心能看到吗)

  • 抖音账号如何重置(抖音账号如何重制)

    抖音账号如何重置(抖音账号如何重制)

  • 组装机清单(组装机各个配件详解)

    组装机清单(组装机各个配件详解)

  • 系统升级为WIN10后,为什么桌面图标无法移动?(系统升级为win11)

    系统升级为WIN10后,为什么桌面图标无法移动?(系统升级为win11)

  • Win11如何关闭屏幕锁定 Win11关闭屏幕锁定的方法(Win11如何关闭屏保上的广告)

    Win11如何关闭屏幕锁定 Win11关闭屏幕锁定的方法(Win11如何关闭屏保上的广告)

  • phbase.exe是什么进程 有什么用 phbase进程查询(ph是什么文件)

    phbase.exe是什么进程 有什么用 phbase进程查询(ph是什么文件)

  • 简述YOLOv8与YOLOv5的区别(yolov3与yolov2)

    简述YOLOv8与YOLOv5的区别(yolov3与yolov2)

  • HTML旅游景点网页作业制作——旅游中国11个页面(HTML+CSS+JavaScript)(旅游景点html代码)

    HTML旅游景点网页作业制作——旅游中国11个页面(HTML+CSS+JavaScript)(旅游景点html代码)

  • python实现信息熵的计算代码(python 熵值法)

    python实现信息熵的计算代码(python 熵值法)

  • 装卸费属于什么费用
  • 待认证进项税额是什么情况下用的
  • 企业消费税会计处理案例
  • 无形资产175加计扣除会计如何处理
  • 出售固定资产不开票可以吗
  • 固定资产处置后账务处理
  • 外购软件用于销售的会计分录
  • 酒店怎么合理规划管理
  • 增值税销项税额在借方还是贷方
  • 支票遗失声明书范文
  • 增值税和消费税申报对比不符怎么处理
  • 一般纳税人吧
  • 收取职工房租 算收入吗
  • 付现金可以开专用发票吗
  • 企业自用房产出售怎么交税
  • 建筑工程预收款开票会计分录
  • 冲减多计提的费用
  • 基本社会保障性缴款包括什么
  • 一般商贸企业出口白酒要交税吗
  • 积分全部换购商品是什么
  • windows7的笔记本有哪些
  • 计提待摊费用怎么记账
  • 买入投资性房地产的会计处理
  • 出租的土地
  • 对公账户存款利息要交增值税吗
  • 固定资产处置的三种情况
  • 财务费用属于期间汇转账户吗
  • ekb install
  • 注册资本增加了
  • vue前端页面设计
  • 普通增值税发票会计科目怎么写?
  • 企业和单位往来怎么做账
  • 税金及附加的含义
  • thinkphp登录验证
  • 泛型 static
  • 汽车抵押贷款会上征信吗
  • 残疾人个税减免标准
  • 公司购买食品如何入账科目
  • 建设单位罚款
  • 银行余额调节表的作用
  • 对公允价值套期的认识
  • 农副产品收购分录
  • 撤回或减少投资所得税处理
  • 单位集体旅游算工资吗
  • 接受土地使用权的会计分录
  • 营改增后计算土地增值税收入公式
  • 营改增后出售土地如何缴纳增值税
  • 应收账款属于会计科目吗
  • 单独入账的土地为啥不提折旧
  • 委托加工的应税消费品是指
  • 发票 抬头个人
  • 所有者权益增加额怎么计算
  • 营业外支出包括哪些内容
  • 会计从业资格证取消了吗
  • mysql如何修改数据库名
  • win7自动变成win10
  • win10屏幕自动变黄
  • FreeBSD, Debian, CentOS一个网卡绑定多个IP
  • linux sed-i
  • Win10 Mobile/PC build 10586.589曝光:老机型有份
  • ims文件是什么意思
  • linux系统怎么切换到命令行
  • win10更新2021年6月
  • 戴尔笔记本自带win7系统盘重装系统
  • win8打开蓝牙设置
  • win8开始菜单全屏怎么调回去
  • win10预览在哪
  • 安卓调用系统相机
  • Javascript Global对象
  • python怎么用数组
  • JavaScript冒泡排序都不会写
  • js写一个类
  • Linux开发基于Qt的Android应用指定调试设备
  • android设置音量
  • 税务稽查项目书的填写
  • 上善若水 宁静致远,适合小学标语吗?
  • 进口酒类税收
  • 长沙的河西包含哪几个区
  • 交强险和车船税网上购买
  • 认缴制什么时候开始的?
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设