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

  • 微博情绪是什么意思(微博情绪在哪里看)

    微博情绪是什么意思(微博情绪在哪里看)

  • 华为p50pro怎么开启防误触(华为P50pro怎么开启高清通话)

    华为p50pro怎么开启防误触(华为P50pro怎么开启高清通话)

  • 微博会员可以看到访客记录吗(微博会员可以看到谁浏览过我吗)

    微博会员可以看到访客记录吗(微博会员可以看到谁浏览过我吗)

  • 我的世界绊线钩怎么用(我的世界绊线钩英文名)

    我的世界绊线钩怎么用(我的世界绊线钩英文名)

  • 钉钉清除聊天记录还可以恢复吗(钉钉清除聊天记录云端还有吗)

    钉钉清除聊天记录还可以恢复吗(钉钉清除聊天记录云端还有吗)

  • 快手被暂时禁用多久恢复(快手被暂时禁用作品)

    快手被暂时禁用多久恢复(快手被暂时禁用作品)

  • wps功能介绍(wps office 功能介绍)

    wps功能介绍(wps office 功能介绍)

  • 天猫精灵怎么绑定微信(天猫精灵怎么绑定手机)

    天猫精灵怎么绑定微信(天猫精灵怎么绑定手机)

  • 网线插座分五六类吗(网线面板插座区分六类还是五类)

    网线插座分五六类吗(网线面板插座区分六类还是五类)

  • pe在电路中代表什么(在电源电路中pe表示什么线?)

    pe在电路中代表什么(在电源电路中pe表示什么线?)

  • qq隐身对方还能看到吗(qq隐身对方还能看到我的空间吗)

    qq隐身对方还能看到吗(qq隐身对方还能看到我的空间吗)

  • nova6充电器多少瓦(nova6原装充电器多少w)

    nova6充电器多少瓦(nova6原装充电器多少w)

  • 域名中的后缀gov代表(域名中的后缀cn代表)

    域名中的后缀gov代表(域名中的后缀cn代表)

  • 聚好看会员可以同时登录两个电视吗(聚好看会员可以看芒果吗)

    聚好看会员可以同时登录两个电视吗(聚好看会员可以看芒果吗)

  • 抖音私信有没有已读功能(抖音私信有没有自动回复)

    抖音私信有没有已读功能(抖音私信有没有自动回复)

  • 微信群邀请链接几天过期(微信群邀请链接打不开怎么回事)

    微信群邀请链接几天过期(微信群邀请链接打不开怎么回事)

  • word竖排字间距怎么调(word竖向字间距)

    word竖排字间距怎么调(word竖向字间距)

  • vue能否添加滚动字幕(vue实现滚动条)

    vue能否添加滚动字幕(vue实现滚动条)

  • 微信钱包被冻怎么回事(微信钱包被冻怎么解除)

    微信钱包被冻怎么回事(微信钱包被冻怎么解除)

  • 网易云在哪里看qq好友(网易云在哪里看播放次数)

    网易云在哪里看qq好友(网易云在哪里看播放次数)

  • 苹果手机怎么用蓝牙传软件(苹果手机怎么用副号拨打电话)

    苹果手机怎么用蓝牙传软件(苹果手机怎么用副号拨打电话)

  • 微信突然打不开怎么办(微信突然打不开文件)

    微信突然打不开怎么办(微信突然打不开文件)

  • 手机浏览器怎么设置成电脑版的(手机浏览器怎么改成电脑版)

    手机浏览器怎么设置成电脑版的(手机浏览器怎么改成电脑版)

  • vue-print-nb 实现页面打印(含分页打印)(vue print nb 教程)

    vue-print-nb 实现页面打印(含分页打印)(vue print nb 教程)

  • vue3中的配置代理(vue3.0配置)

    vue3中的配置代理(vue3.0配置)

  • 划拨土地使用权出租
  • 统一社会信用代码查询企业名称
  • 符合简易征收的条件
  • 独立核算与非独立核算区别
  • 企业运输没有发票
  • 在建无形资产入账
  • 电子税务局发票验旧怎么操作
  • 货物运费包含哪些项目
  • 应付账款不需要付怎样做会计分录
  • 销售部门快递费用怎么算
  • 保函费用是用来干什么的
  • 预付加油卡发票可以报销吗
  • 税控盘怎么注销需要带什么东西
  • 企业所得税的申报方式
  • 收益法评估的基本思路
  • 预算内往来款
  • 公司电子承兑汇票
  • 出口企业收入分录
  • 没收土地竞买保证金政策法律
  • 房产过户的相关问题
  • 关于转让费的问题
  • 专票开票出框可以改吗
  • 残保基金属税金怎么算
  • 劳务费发票可以含材料费吗
  • 收付实现制下预收款算收入吗
  • 预收美元和发票的关系
  • 非流动资产基金是什么意思
  • 库存现金进行清查
  • WIN10显示缩略图
  • bios报警声是怎样的
  • 临时工工资的会计处理
  • php数组函数题目
  • 租房交了押金
  • 预缴增值税少交了
  • 消费税的计税方法有
  • 员工离职的类型
  • 企业上交财政款分录
  • phpjson
  • 摇树的英文是什么
  • vmware17虚拟机安装教程
  • 利用html css javascript做一个网页
  • 预付账款和预收账款哪个是负债
  • 补交上年度的企业所得税税款计入什么科目
  • 营改增后发票管理办法
  • 抵押房产的保险费
  • 如何设置linux
  • 查看php
  • 投资收益记账
  • 小规模纳税人税率1%政策到什么时候
  • 房地产开发公司注册条件
  • 个人转租房需要注意什么
  • 多交的税费申请抵扣下期
  • 待摊费用年底能够有余额么
  • 利息支出税前扣除的规定
  • 其他业务收入的现金流量项目
  • 投资性房地房地产
  • 财税公司工作内容
  • Advanced Pagination for MySQL(mysql高级分页)
  • mysql调用数据库语句
  • fedora29
  • vista电脑密码忘了怎么解除
  • 华硕主板如何刷系统
  • msiexec.exe是什么进程介绍
  • shwiconem.exe - shwiconem是什么进程 有什么用
  • window8设置在哪里
  • win8快速启动怎么开启
  • unitysharder
  • jquery简单例子
  • cocos2d-js游戏开发
  • javascript的原型,原型链,有什么特点?
  • pycharm中文教程
  • Node.js中的construct
  • 使用vue开发手机app
  • python,字符串
  • TNet Tasharen Networking
  • 在windows中快捷键的作用
  • 医院票据怎么查询
  • 江苏税务电子税务局电话号码
  • 土地增值税鉴证业务的流程
  • 河北省国家税务总局云办税厅
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设