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

  • vivox70怎么设置自动关机(vivox70怎么设置定时开关机)

    vivox70怎么设置自动关机(vivox70怎么设置定时开关机)

  • 微博怎么发带播放键的音乐(微博怎么发带播放键的音乐QQ音乐)

    微博怎么发带播放键的音乐(微博怎么发带播放键的音乐QQ音乐)

  • 华为p40能控制空调吗(华为p40能控制空调遥控吗)

    华为p40能控制空调吗(华为p40能控制空调遥控吗)

  • 苹果输入密码错误多次停用忘记密码怎么办(苹果输入密码错误抹除数据)

    苹果输入密码错误多次停用忘记密码怎么办(苹果输入密码错误抹除数据)

  • 苹果计算器上的百分号怎么按出来(苹果计算器上的rand)

    苹果计算器上的百分号怎么按出来(苹果计算器上的rand)

  • 12306错误代码43003是什么(12306错误代码43003)

    12306错误代码43003是什么(12306错误代码43003)

  • 华为手机音乐怎么下载(华为手机音乐怎么删除音乐储存)

    华为手机音乐怎么下载(华为手机音乐怎么删除音乐储存)

  • android是开发语言吗(android开发技术的基本概念)

    android是开发语言吗(android开发技术的基本概念)

  • 手机wps语音朗读不见了(手机wps语音朗读怎么换声音)

    手机wps语音朗读不见了(手机wps语音朗读怎么换声音)

  • 简述计算机的主要特点和主要用途(简述计算机的主要特点)

    简述计算机的主要特点和主要用途(简述计算机的主要特点)

  • 苹果手机不能用万能钥匙吗(苹果手机不能用wifi的原因)

    苹果手机不能用万能钥匙吗(苹果手机不能用wifi的原因)

  • 电视可以连接蓝牙耳机吗(电视可以连接蓝牙手柄吗)

    电视可以连接蓝牙耳机吗(电视可以连接蓝牙手柄吗)

  • 抖音作品能批量删除吗(抖音作品能批量隐藏吗)

    抖音作品能批量删除吗(抖音作品能批量隐藏吗)

  • 小米10支持65w吗(小米10支持50w吗)

    小米10支持65w吗(小米10支持50w吗)

  • 抖音里点赞的视频怎么批量删除(抖音里点赞的视频删除了还有赞吗)

    抖音里点赞的视频怎么批量删除(抖音里点赞的视频删除了还有赞吗)

  • opporeno充多久才充满(opporeno充满电要多久时间)

    opporeno充多久才充满(opporeno充满电要多久时间)

  • oppo手机有没有隐藏空间(oppo手机有没有定位追踪功能)

    oppo手机有没有隐藏空间(oppo手机有没有定位追踪功能)

  • 怎样将文字方向变为竖行(如何把文字方向反过来)

    怎样将文字方向变为竖行(如何把文字方向反过来)

  • vivox23魅影紫是幻彩版吗(vivox23幻影紫)

    vivox23魅影紫是幻彩版吗(vivox23幻影紫)

  • 体重秤ib什么意思(体重秤lb什么意思)

    体重秤ib什么意思(体重秤lb什么意思)

  • 华为aloox什么型号(华为al00x手机价格是多少钱)

    华为aloox什么型号(华为al00x手机价格是多少钱)

  • 苹果11相机功能(苹果11相机功能无法使用)

    苹果11相机功能(苹果11相机功能无法使用)

  • 华为开机新闻怎么关闭(华为开机新闻怎么关掉)

    华为开机新闻怎么关闭(华为开机新闻怎么关掉)

  • 安卓auto国内怎么用(安卓auto官网)

    安卓auto国内怎么用(安卓auto官网)

  • 问题解决:JSON parse error: syntax error, expect {, actual error, pos 0, fastjson-version 1.2.58;(问题解决能力)

    问题解决:JSON parse error: syntax error, expect {, actual error, pos 0, fastjson-version 1.2.58;(问题解决能力)

  • 安斯海滩上的角眼沙蟹,塞舌尔普拉兰岛 (© Ingo Schulz/Offset by Shutterstock)

    安斯海滩上的角眼沙蟹,塞舌尔普拉兰岛 (© Ingo Schulz/Offset by Shutterstock)

  • 进货开了发票也写了购销合同要交印花税吗?
  • 个人是否可以申请精神司法鉴定
  • 春节补贴是加还是减
  • 五月份有啥节日2020
  • 坏账准备计入营业收入如何报年报
  • 报完税没有清卡
  • 采购部差旅费会计分录怎么做
  • 企业退回企业所得税分录
  • 建筑工程类发票
  • 增值税专票怎么抵扣
  • 170平方的房子装修费用
  • 网银年费属于财务费用哪一项
  • 厂房进项抵扣
  • 应收账款周转率高好还是低好
  • 专票遗失需要怎么处理?
  • 牛奶的增值税普通发票
  • 工资薪金所得税前扣除项目标准
  • 事业单位净资产怎么计算?净资产怎么算
  • 房地产企业预缴增值税如何申报
  • 停工期间的各项工作包括
  • 合同资产的减值的计量
  • 暂估成本跨年怎么处理分录
  • PHP:time_nanosleep()的用法_misc函数
  • 当月不生产,生产成本怎么处理
  • 开发产品结转到哪个科目
  • 公司为员工缴纳社保的法律规定
  • 真正有效解决近视的方法
  • 初级职称到中级职称需要上继续教育课吗
  • vue引入网络js
  • pytorch with no grad
  • pytorch torch
  • flash中文版
  • 员工福利费会计分录 最新
  • bootstrapstandby
  • 设备计提折旧从什么时候开始
  • 生产型企业可以买进就卖出吗
  • sqlserver2005安装步骤教程
  • 年终奖怎么缴纳
  • 固定资产原值和净值的区别
  • 汽车车票增值税税率
  • 营改增一般纳税人简易征收的范围
  • 企业取得投资收益要交税吗
  • 增值税一般纳税人登记管理办法
  • 简易计税怎么算增值税
  • 以前年度损益调整借贷方向
  • 账面价值与计税基础的区别和联系
  • 企业所得税免税和减半征收
  • 单位外币卡账户的资金应从其单位的外汇账户转账存入
  • 加计抵减与加计抵消区别
  • 车保险返点如何计算
  • 股东入股怎么做分录
  • 增值税是不是不用计提
  • 长期待摊费用装修费分摊分录
  • 政府部门拨款流程
  • 农业技术人员是什么意思
  • 购买空调做账分录
  • Mysql row number()排序函数的用法和注意
  • win7打开控制面板快捷键
  • win7怎么设置麦克风权限
  • Windows 2008R2 HyperV下安装CentOS6,网卡无痛设置
  • centosgui
  • xp注册表损坏怎么修复
  • win7电脑频繁自动重启是什么原因造成的
  • WinMX.exe - WinMX是什么进程
  • centos screen命令
  • win7如何整理磁盘
  • win8系统关机键找不见
  • win7系统无法安装
  • linux系统叫啥
  • win7关机没有强制关机选项
  • Android GLSurfaceView.Renderer
  • jQuery Validate 数组 全部验证问题
  • 教你用纸折一只会跳的小兔子,非常好玩,小朋友都喜欢
  • 浅谈jquery中next与siblings的区别
  • 国税和地税比例
  • 进项税额的抵扣凭证
  • 税收分类分级管理后如何开展风险管理
  • 云南国税app
  • 退回的汽车保险入什么科目
  • 如何查询有没有交医保费用
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设