一、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的用法差异相关推荐

  1. encode和tokenize的区别

    encode和encode_plus的区别可以参考我的另一篇博客:https://blog.csdn.net/weixin_41862755/article/details/120070535 enc ...

  2. tokenizer.encode() 与 tokenizer.tokenize()对比,言简意赅 转 高人讲学

    tokenizer.encode()_不知道起什么名字-CSDN博客_tokenizer.encode tokenizer.encode("说你跑的挺远",add_special_ ...

  3. Transformers包tokenizer.encode()方法源码阅读笔记

    Transformers包tokenizer.encode()方法源码阅读笔记_天才小呵呵的博客-CSDN博客_tokenizer.encode

  4. python中encode用法_python3中encode和decode的一些基本用法

    python3中encode和decode跟python2还是有一定的区别的,在python3中: encode(编码):按照某种规则将"文本"转换为"字节流" ...

  5. Matlab神经网络函数newff()新旧用法差异

    声明!!!转载自: http://www.cnblogs.com/xxfcz/p/4482813.html 摘要 在Matlab R2010a版中,如果要创建一个具有两个隐含层.且神经元数分别为5.3 ...

  6. matlab newff函数弃用了,MATLAB神经网络函数NEWFF()新旧用法差异

    摘要 在Matlab R2010a版中,如果要创建一个具有两个隐含层.且神经元数分别为5.3的前向BP网络,使用旧的语法可以这样写: net1 = newff(minmax(P), [5 3 1]); ...

  7. matlab newff函数弃用了,[转载]MATLAB神经网络函数NEWFF()新旧用法差异

    摘要 在Matlab R2010a版中,如果要创建一个具有两个隐含层.且神经元数分别为5.3的前向BP网络,使用旧的语法可以这样写: net1 = newff(minmax(P), [5 3 1]); ...

  8. 在SQL2005/SQL2008中CTE用法差异

    --SQL2008中执行成功 SELECT @@version /* Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64) Apr 2 201 ...

  9. Transfromers的tokenizer

    1. 获取tokenizer对象 from transformers import BertTokenizer tokenizer = BertTokenizer.from_pretrained('b ...

最新文章

  1. 推荐介绍一项新的工程技术:[威胁建模]的相关系列文章《威胁建模Web 应用程序》...
  2. IntelliJ IDEA 2020.2 EAP 5 发布:完美支持Java 15
  3. 10 i lt shell的if_shell学习(10)- if的使用
  4. tensorflow函数方法
  5. 剖析基于IOS的华为交换机配置口令设置
  6. C语言矩阵N*N旋转的算法(附完整源码)
  7. 浏览器外部署Silverlight更新检查失败的原因及对策
  8. HTML 链接 强制打开“另存为...”弹出式文本链接打开HTML
  9. 【今日CV 视觉论文速览】 Part2 25 Jan 2019
  10. 运营商缺的是应用还是想法--广州晨皓
  11. Jupyter Notebook 作图显示中文
  12. C语言数据结构之管道浅析
  13. Chrome 添加印象笔记网页剪辑插件
  14. supplicant
  15. 苹果手机需要清理垃圾吗?
  16. es java 模糊查询_java使用elasticsearch进行模糊查询之must使用-项目中实际使用
  17. SpringBoot掌握的差不多了,就剩下一个Actuator没搞定了,本文详细来介绍!!!
  18. C语言每日一练——第1天:字母大小写转换
  19. c/c++中的转义字符
  20. 从零开始搭建个人大数据集群——环境准备篇

热门文章

  1. 人人都是钢铁侠,超级盔甲问世
  2. element ui中select 下拉框在火狐浏览器最后一行显示不完全(谷歌正常)
  3. 30天打造专业红客四
  4. 利用FFmpeg将 IPCamera 的RTSP转码成RTMP发布在RED5
  5. EMMC与Nand的区别
  6. 管中窥豹,看看可能是谁在卖港股.
  7. linaro gcc 交叉编译链编译
  8. 转载关于KeyPress和KeyDown事件的区别和联系
  9. 一个光子的能量是多少?
  10. setTimeout和for循环