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

  • 浏览别人的抖音作品他会知道吗(浏览别人的抖音视频会被看到吗)

    浏览别人的抖音作品他会知道吗(浏览别人的抖音视频会被看到吗)

  • 微信相册里的照片如何删除(微信相册里的照片占内存吗)

    微信相册里的照片如何删除(微信相册里的照片占内存吗)

  • 抖音怎么设置锁屏壁纸(抖音怎么设置锁屏后继续播放)

    抖音怎么设置锁屏壁纸(抖音怎么设置锁屏后继续播放)

  • iphone11分辨率怎么调(iphone11分辨率这么低)

    iphone11分辨率怎么调(iphone11分辨率这么低)

  • 微信视频只能发15秒,能长一点吗(微信视频只能发10秒)

    微信视频只能发15秒,能长一点吗(微信视频只能发10秒)

  • 耳机听多了有什么影响(耳机听多了有什么坏处)

    耳机听多了有什么影响(耳机听多了有什么坏处)

  • 扁头耳机插上去没声音(扁头耳机插上去没反应怎么设置)

    扁头耳机插上去没声音(扁头耳机插上去没反应怎么设置)

  • PowerPoint2016使字体变斜的快捷键是什么(ppt2010怎么设置文字效果)

    PowerPoint2016使字体变斜的快捷键是什么(ppt2010怎么设置文字效果)

  • 苹果可以分身两个微信吗(苹果可以分身两个QQ嘛)

    苹果可以分身两个微信吗(苹果可以分身两个QQ嘛)

  • cpu最高能承受多少度(cpu最高能承受多少电压)

    cpu最高能承受多少度(cpu最高能承受多少电压)

  • 京东能加好友吗(京东能加好友发红包吗)

    京东能加好友吗(京东能加好友发红包吗)

  • 华为mate30pro音量键不灵敏(华为mate30pro音量小怎么办)

    华为mate30pro音量键不灵敏(华为mate30pro音量小怎么办)

  • 华为medal20是什么型号(华为medal20是华为什么型号)

    华为medal20是什么型号(华为medal20是华为什么型号)

  • 通过通讯录添加的微信,可以查到是谁吗(通过通讯录添加微信好友)

    通过通讯录添加的微信,可以查到是谁吗(通过通讯录添加微信好友)

  • 企业微信怎么看朋友圈(企业微信怎么看客户的朋友圈)

    企业微信怎么看朋友圈(企业微信怎么看客户的朋友圈)

  • 屏幕总成是内屏和外屏一起吗(屏幕总成内屏外屏分开了)

    屏幕总成是内屏和外屏一起吗(屏幕总成内屏外屏分开了)

  • 路由器的宽带账号密码是什么(路由器的宽带账号在哪里看)

    路由器的宽带账号密码是什么(路由器的宽带账号在哪里看)

  • 电脑聊天记录怎么导入手机(电脑聊天记录怎么同步到手机)

    电脑聊天记录怎么导入手机(电脑聊天记录怎么同步到手机)

  • 12306候补订单兑现失败钱什么时候退(12306候补订单兑现成功但是携程还在抢票)

    12306候补订单兑现失败钱什么时候退(12306候补订单兑现成功但是携程还在抢票)

  • 冯诺依曼计算机的基本构件(冯诺依曼计算机的特点)

    冯诺依曼计算机的基本构件(冯诺依曼计算机的特点)

  • 企鹅电竞打不开(企鹅电竞电脑版开启失败)

    企鹅电竞打不开(企鹅电竞电脑版开启失败)

  • 淘宝开团提醒怎么取消掉(淘宝开团提醒怎么取消掉日历)

    淘宝开团提醒怎么取消掉(淘宝开团提醒怎么取消掉日历)

  • 华为手机设置里的通用在哪里(华为手机设置里找不到开发人员选项)

    华为手机设置里的通用在哪里(华为手机设置里找不到开发人员选项)

  • 手机pc端在哪里呀(手机pc端在哪里呀,怎样打开)

    手机pc端在哪里呀(手机pc端在哪里呀,怎样打开)

  • vivoz3i支持双引擎闪充吗(vivoz3i标准版怎么开启双引擎闪充)

    vivoz3i支持双引擎闪充吗(vivoz3i标准版怎么开启双引擎闪充)

  • airpods重置后还能定位吗(airpods重置以后)

    airpods重置后还能定位吗(airpods重置以后)

  • python如何二值化图像(python 二值化)

    python如何二值化图像(python 二值化)

  • 增值税的附加税比例
  • 个人所得税的账务处理
  • 税务金三系统是什么?
  • 中国注册税务师协会法律法规库
  • 小规模纳税人个税是月报还是季报
  • 实收资本能直接转出来吗
  • 文化创意服务的税率
  • 没有购置税发票有影响吗
  • 一般纳税人销项开普票,进项票可以抵扣吗
  • 股权转让所得交所得税吗
  • 事业单位取暖费标准
  • 银行承兑汇票置换业务自签发之日起新票的最长期限为
  • 2021 上海房产税
  • 财税2018 39号文件
  • 跨区域施工增值税怎么交
  • 企业发生的运输费用怎么做账?
  • 公司代扣的社保怎么做分录
  • 存货中的生产成本是指
  • 知识产权代理公司怎么盈利
  • 本期就地缴纳的税额跟本期已缴税额
  • 个税经营所得申报常见问题答疑
  • win10玩游戏提示内存不足无法处理此命令
  • 银行手续费扣除比例
  • 财政拨款结余的明细科目
  • 如何在电脑管家里把健康小程序提取出
  • deepin 文件管理器
  • PHP:xml_set_notation_decl_handler()的用法_XML解析器函数
  • avgorange是什么文件夹可以删除吗
  • 迷迭香怎么养殖方法
  • 支出的科目有哪些
  • php实现上传文件
  • nodejs怎么更新版本
  • 琼斯的大海怪
  • 劳务派遣应纳税额如何计算
  • 委托研发技术合同登记
  • angular 初学者快速上手教程
  • controller层,service层,dao
  • nodejs写后端接口
  • php原生导出excel表单元格格式
  • 为什么递延收益不产生所得税影响
  • 外贸出口退税操作流程
  • 交易性金融资产的入账价值
  • 教育局是一般纳税人吗
  • 房地产预缴增值税计税依据
  • python从键盘输入正整数n,计算1+2+3
  • 滴滴票可以抵扣吗?
  • 结转本月应交增值税
  • 工伤保险退费了是什么意思
  • 增值税加计扣除最新政策2023
  • 小企业长期股权投资减值损失采用直接转销法
  • 车辆保险费如何缴纳印花税的
  • 红字撤销需要带什么去税务局
  • 政府补助计入资本公积吗
  • 培训费发票可以抵扣吗
  • 坏账收回所得税需要确认收入吗汇算清缴表如何填报
  • 收据能不能入账账户
  • 企业承担个人所得税分录怎么做
  • 应收账款应付账款可以抵消吗
  • 会计怎么做工资单
  • 工业企业的材料销售收入应计入什么
  • ubuntu20 vnc
  • CentOS中httpd源代码安装与测试步骤分享
  • 电脑如何进入bios选择u盘启动
  • ssgrate.exe - ssgrate是什么进程
  • windows8中“同步你的设置”使用介绍(让你的设置自动同步)
  • 苹果知识大全
  • unity3d怎么用
  • 使用jquery实现的项目
  • node.js gui
  • perl格式化输出 %s
  • 关于博客说法错误的是
  • python任务调度之schedule
  • 安卓开发问题
  • 动作手游排行榜2020前十名
  • shell 批量改名
  • python 脚本编写
  • prototype模型
  • 郑州市惠济区税务局黄国选
  • 镇江市税务局官网
  • 全国征兵网官网报名
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设