【transformers】tokenizer用法(encode、encode_plus、batch_encode_plus等等)

news2024/11/18 17:33:42

tranformers中的模型在使用之前需要进行分词和编码,每个模型都会自带分词器(tokenizer),熟悉分词器的使用将会提高模型构建的效率。
string tokens ids 三者转换

  • string → tokens tokenize(text: str, **kwargs)
  • tokens → string convert_tokens_to_string(tokens: List[token])
  • tokens → ids convert_tokens_to_ids(tokens: List[token])
  • ids → tokens convert_ids_to_tokens(ids: int or List[int], skip_special_tokens=False)
  • string → ids encode(text, text_pair=None, add_special_tokens=True, padding=False, truncation=False, max_length=None, return_tensors=None)
    text:str, List[str], List[int].
    text_pair: str, List[str], List[int]
    add_special_tokens: bool.是否添加特殊token([CLS]、[SEP])
    max_length: int, None.
    padding: bool. padding取True or 'longest"时, padding至batch中最长的句子长度; padding取’max_length’时, padding至max_length; padding取False or ‘do_not_pad’ (default), 不padding.
    truncation: bool, str。只对输入为 sequence pair 有效。truncation取True or 'longest_first’时, token by token 的截断,哪一句长,截断哪一句的最后一个 token,相同长度就第二句。截至总token数等于 max_length; truncation取’only_first’时只截第一句,至总token数等于 max_length; truncation取’only_second’时只截第二句,至总token数等于 max_length;truncation取False or ‘do_not_truncate’ (default)。
    return_tensors: str, None。‘tf’, ‘pt’ or ‘np’ 分布表示不同的tensor type.
  • ids → string decode(token_ids: List[int], skip_special_tokens=False, clean_up_tokenization_spaces=True)
  • encode_plus:
    encode_plus(text, text_pair=None, add_special_tokens=True, padding=False, truncation=False, max_length=None, stride=0, is_pretokenized=False, pad_to_multiple_of=None, return_tensors=None, return_token_type_ids=None, return_attention_mask=None, return_overflowing_tokens=False, return_special_tokens_mask=False, return_offsets_mapping=False, return_length=False)
  • batch_encode_plus:
    输入为 encode 输入的 batch,其它参数相同。注意,plus 是返回一个字典。
  • batch_decode:
    输入是batch.
#这里以bert模型为例,使用上述提到的函数

from transformers import BertTokenizer
tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')
text = "It's a nice day today!"

#tokenize,#仅用于分词
seg_words = tokenizer.tokenize(text)  
print("tokenize分词结果:\n",seg_words)

#convert_tokens_to_ids,将token转化成id,在分词之后。
#convert_ids_to_tokens,将id转化成token,通常用于模型预测出结果,查看时使用。
seg_word_id = tokenizer.convert_tokens_to_ids(seg_words)  
print("tokenize Id:\n",seg_word_id)

#encode,进行分词和token转换,encode=tokenize+convert_tokens_to_ids
encode_text = tokenizer.encode(text)
print("encode结果:\n",encode_text)

#encode_plus,在encode的基础之上生成input_ids、token_type_ids、attention_mask
encode_plus_text = tokenizer.encode_plus(text)
print("encode_plus结果:\n",encode_plus_text)

#batch_encode_plus,在encode_plus的基础之上,能够批量梳理文本。
batch_encode_plus_text = tokenizer.batch_encode_plus([text,text])
print("batch_encode_plus结果:\n",batch_encode_plus_text)

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/163717.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

安卓车机系统adb shell cmd 源码原理分析

hi,粉丝朋友们大家好! 上一次视频分享了input专题课中input命令在android 12的更新,因为原来课程是基于android 10 (可以加我扣:2102309716 优惠购买) https://ke.qq.com/course/package/77595?tuin7d4eb3…

联合证券|金融部门开年推出新方案 改善优质房企资产负债状况

当时,努力促进房地产与金融正常循环是金融部门的工作要点之一。记者日前了解到,为遵循落实中心经济工作会议布置,有用防范化解优质头部房企危险,改进财物负债情况,有关部门起草了《改进优质房企财物负债表计划举动计划…

【计算机体系结构基础】流水线异常处理和提高流水线效率的技术(一)

流水线中的异常 异常的来源 外部事件指令执行中的错误数据完整性的问题地址转换异常系统调用陷入需要软件修正的运算 异常可以分为:可恢复异常和不可恢复异常 不可恢复异常:系统硬件出现严重故障,异常处理后系统面临重启。 解决办法&#x…

Spring Boot Apollo监听namespace并更新配置Bean(附源码)

这里是weihubeats,觉得文章不错可以关注公众号小奏技术,文章首发。拒绝营销号,拒绝标题党 背景 如果我们使用的配置中心是apollo的话我们经常会遇到这样的问题,就是动态更新配置Bean 动态更新配置bean 动态更新配置bean其实是很简单的&…

Python学习笔记-PyQt6消息窗

对话框是界面编程中重要的窗体,一般用于提示或者一些其他特定操作。一、使用QDialog显示通用消息框直接使用QDialog类,可以及通过对话框进行通用对话框显示,亦可以通过自定义设置自己需要的对话框。# _*_ coding:utf-8 _*_import sysfrom PyQ…

MySQL主从复制的原理是什么?

主从复制是指将主数据库的 DDL 和 DML 操作通过二进制日志传到从库服务器中,然后在从库上对这些日志重新执行(也叫重做),从而使得从库和主库的数据保持同步。 MySQL支持一台主库同时向多台从库进行复制, 从库同时也可以作为其他从服务器的主…

Python批量下载某网站贵得要shi文档 并保存为PDF

人生苦短,我用Python 基本开发环境💨 Python 3.6Pycharm 相关模块的使用💨 import requests import parsel import re import os import pdfkit需要使用到一个软件 wkhtmltopdf 这个软件的作用就是把html文件转成PDF 想要把文档内容保存…

人工智能轨道交通行业周刊-第30期(2023.1.9-1.15)

本期关键词:贵阳智慧车站、城轨智能化汇总、隧道巡检、信创厂商、手语数字人 1 整理涉及公众号名单 1.1 行业类 RT轨道交通中关村轨道交通产业服务平台人民铁道世界轨道交通资讯网铁路信号技术交流北京铁路轨道交通网上榜铁路视点ITS World轨道交通联盟VSTR铁路与…

煤矿人员工服着装智能识别监测系统 yolov5架构

煤矿人员工服着装智能识别监测系统通过pythonyolov5深度学习网络架构,对画面中人员是否正确着装实时分析,发现违规着装立即抓拍存档告警。我们选择当下YOLO最新的卷积神经网络YOLOv5来进行识别检测。按照官方给出的数目,现版本的YOLOv5每个图…

数据库概述杂谈之章节回顾

数据与数据之间联系的模型表示 网状模型用“图”结构来表示数据及数据之间的联系层次模型用“树”结构来表示数据及数据之间的联系关系模型用“关系(二维表)”结构来表示数据及数据之间的联系对象模型用“对象”数据结构来表示数据及数据之间的联系 数…

SPI协议与GPIO模拟SPI的实现

SPI定义 SPI(Serial Peripheral Interface, 串口外设接口),它用于MCU与各种外围设备以串行方式进行通信,速度最高可达25MHz以上。 SPI接口主要应用在EEPROM、 FLASH、实时时钟、网络控制器、 OLED显示驱动器、 AD转换器&#xf…

ArcGIS10.6保姆式安装教程,超详细;附安装包

安装前请关闭杀毒软件,系统防火墙,断开网络连接 参考链接:请点击 下载链接: 通过百度网盘分享的文件:ArcGIS10.6zip 链接:https://pan.baidu.com/s/1tCsOQ_-WP-usEHmJo9SfcA 提取码:hn15 复制这段内容打开「百度网盘A…

Java环境安装、python环境安装、Burpsuite安装

数据来源 Java环境安装 Windows安装JDK8(安装过程:一路下一步) 下载JDK8:https://www.oracle.com/java/technologies/javase-jdk8-downloads.html 百度网盘:windows64、84位 配置PATH环境变量: 变量名…

RT-Thread系列--双链表分析

一、目的学习过C语言的同学应该都知道几种常用的数据结构,例如数组、单链表、双链表等。每种数据结构都有其特点和应用场景,本篇就结合RT-Thread源码分析一下其双链表实现细节和特点。那什么是双链表呢,这边简单解释一下帮助大家理解。通过双…

KubeSphere 开源社区 2022 年度回顾与致谢

2022 年,国内的云原生技术生态日趋完善,细分技术项目也不断涌现,形成了完整的支撑应用云原生化的全生命周期技术体系。基础设施即代码、微服务、Serverless 等技术,促使基础设施资源向更加灵活弹性、自动化方向发展。而开源生态也…

重装系统如何设置u盘启动为第一启动项

如何设置u盘启动为第一启动项呢?将U盘设为第一启动项,是使用U盘装机工具重装系统的重要步骤之一,很多网友不清楚怎么操作,下面小编就分享下设置u盘启动为第一启动项的方法。 工具/原料: 系统版本:win7家庭版 品牌型…

【openGauss实战4】数据类型解读

📢📢📢📣📣📣 哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA工作经验 一位上进心十足的【大数据领域博主】!😜&#x1f61…

一文教会你巧用设计模式重构项目

文章目录一、设计模式总览二、模板方法模式案例三、策略模式案例四、支付改造4.1 思路分析4.2 实现图解:4.3 代码实现:4.4 效果演示4.5 如何扩展本文参考自12.29日尚硅谷雷神的 巧妙使用设计模式重构项目 一、设计模式总览 总体分类 不同时期选择不同的…

Python批量检索论文被引用数量源码,利用百度学术网页版来批量检索论文的被引用数量源码

论文被引用数搜索 利用百度学术网页版来检索一个文件夹中的所有论文的被引用数量。 完整代码下载地址:Python批量检索论文被引用数量源码 依赖有beautifulsoup库、regex正则表达式库。 使用方法 主程序为fileWalk.py。 修改程序中workPath值为文件夹绝对路径&am…

基于碰撞传感器的自动导航车系统设计

1、内容简介略635-可以交流、咨询、答疑2、内容说明略随着世界各国对科学技术的重视,各类高科技技术突飞猛进,人类逐步进入人工智能时代。而在这些高科技技术的背后,自动导航小车作为无人驾驶小车的一种类型备受关注。它的主要优点是不需要人…