tokenizer.encode、tokenizer.tokenize、tokenizer.encode_plus的用法差异
一、tokenizer.encode和tokenizer.tokeninze
tokenizer.tokenize :先分词,再转成id,直接输出tensor
tokenizer.encode :直接输出id,需要转换为tensor
sentence = "Hello, my son is cuting."
input_ids_method1 = torch.tensor(tokenizer.encode(sentence,add_special_tokens=True))
# tensor([ 101, 7592, 1010, 2026, 2365, 2003, 3013, 2075, 1012, 102])input_token2 = tokenizer.tokenize(sentence)
# ['hello', ',', 'my', 'son', 'is', 'cut', '##ing', '.']
input_ids_method2 = tokenizer.convert_tokens_to_ids(input_token2)
# tensor([7592, 1010, 2026, 2365, 2003, 3013, 2075, 1012])
# 并没有开头和结尾的标记:[cls]、[sep]
二、tokenizer.encode和tokenizer.encode_plus的区别
普通编码 tokenizer.encode()、增强编码 tokenizer.encode_plus()
tokenizer.encode_plus() 的编码方式比tokenizer.encode()在文本分类上的编码方式要好,在中文分类数据集上会有1个点左右的差别
1、tokenizer.encode仅返回input_ids
2、 tokenizer.encode_plus返回所有的编码信息,具体如下:
- ’input_ids:是单词在词典中的编码
- ‘token_type_ids’:区分两个句子的编码(上句全为0,下句全为1)
- ‘attention_mask’:指定对哪些词进行self-Attention操作
# 编码错配! encode_plus 的编码方式比encode在文本分类上的编码方式要好import torch
from transformers import BertTokenizer
model_name =" bert-base-uncase"tokenizer = BertTokenizener.from_pretrained(model_name)
sentence= "hello,myson"-----------------------print(tokenizer.encode(sentence))[101, 7592, 1010, 2026, 2365, 2003, 5870, 1012, 102]
当tokenizer.encode函数中的add_special_tokens设置为False时,同样不会出现开头和结尾标记:[cls], [sep]-----------------------print(tokenizer.encode_plus(sentence)){'input_ids': [101, 7592, 1010, 2026, 2365, 2003, 5870, 1012, 102],'token_type_ids': [0, 0, 0, 0, 0, 0, 0, 0, 0], 'attention_mask': [1, 1, 1, 1, 1, 1, 1, 1, 1]}
tokenizer.encode、tokenizer.tokenize、tokenizer.encode_plus的用法差异相关推荐
- encode和tokenize的区别
encode和encode_plus的区别可以参考我的另一篇博客:https://blog.csdn.net/weixin_41862755/article/details/120070535 enc ...
- tokenizer.encode() 与 tokenizer.tokenize()对比,言简意赅 转 高人讲学
tokenizer.encode()_不知道起什么名字-CSDN博客_tokenizer.encode tokenizer.encode("说你跑的挺远",add_special_ ...
- Transformers包tokenizer.encode()方法源码阅读笔记
Transformers包tokenizer.encode()方法源码阅读笔记_天才小呵呵的博客-CSDN博客_tokenizer.encode
- python中encode用法_python3中encode和decode的一些基本用法
python3中encode和decode跟python2还是有一定的区别的,在python3中: encode(编码):按照某种规则将"文本"转换为"字节流" ...
- Matlab神经网络函数newff()新旧用法差异
声明!!!转载自: http://www.cnblogs.com/xxfcz/p/4482813.html 摘要 在Matlab R2010a版中,如果要创建一个具有两个隐含层.且神经元数分别为5.3 ...
- matlab newff函数弃用了,MATLAB神经网络函数NEWFF()新旧用法差异
摘要 在Matlab R2010a版中,如果要创建一个具有两个隐含层.且神经元数分别为5.3的前向BP网络,使用旧的语法可以这样写: net1 = newff(minmax(P), [5 3 1]); ...
- matlab newff函数弃用了,[转载]MATLAB神经网络函数NEWFF()新旧用法差异
摘要 在Matlab R2010a版中,如果要创建一个具有两个隐含层.且神经元数分别为5.3的前向BP网络,使用旧的语法可以这样写: net1 = newff(minmax(P), [5 3 1]); ...
- 在SQL2005/SQL2008中CTE用法差异
--SQL2008中执行成功 SELECT @@version /* Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64) Apr 2 201 ...
- Transfromers的tokenizer
1. 获取tokenizer对象 from transformers import BertTokenizer tokenizer = BertTokenizer.from_pretrained('b ...
最新文章
- 推荐介绍一项新的工程技术:[威胁建模]的相关系列文章《威胁建模Web 应用程序》...
- IntelliJ IDEA 2020.2 EAP 5 发布:完美支持Java 15
- 10 i lt shell的if_shell学习(10)- if的使用
- tensorflow函数方法
- 剖析基于IOS的华为交换机配置口令设置
- C语言矩阵N*N旋转的算法(附完整源码)
- 浏览器外部署Silverlight更新检查失败的原因及对策
- HTML 链接 强制打开“另存为...”弹出式文本链接打开HTML
- 【今日CV 视觉论文速览】 Part2 25 Jan 2019
- 运营商缺的是应用还是想法--广州晨皓
- Jupyter Notebook 作图显示中文
- C语言数据结构之管道浅析
- Chrome 添加印象笔记网页剪辑插件
- supplicant
- 苹果手机需要清理垃圾吗?
- es java 模糊查询_java使用elasticsearch进行模糊查询之must使用-项目中实际使用
- SpringBoot掌握的差不多了,就剩下一个Actuator没搞定了,本文详细来介绍!!!
- C语言每日一练——第1天:字母大小写转换
- c/c++中的转义字符
- 从零开始搭建个人大数据集群——环境准备篇