【HuggingFace】RoBERTa分词器RobertaTokenizer编码完整单词

简介: 在用RobertaTokenizer对单词进行分词的时候,发现单词acquire会被分词两个词根,但是RobertaForMaskedLM可以预测出来单词acquire。

问题描述


  在用RobertaTokenizer对单词进行分词的时候,发现单词acquire会被分词两个词根,但是RobertaForMaskedLM可以预测出来单词acquire


 下面的代码可以看到把单词acquire分词成了'ac''quire'

from transformers import AutoTokenizer, RobertaForMaskedLM
import torch
tokenizer = AutoTokenizer.from_pretrained("./@_PLMs/roberta/roberta-base")
model = RobertaForMaskedLM.from_pretrained("./@_PLMs/roberta/roberta-base")
inputs = tokenizer("acquire", return_tensors="pt")
# {'input_ids': tensor([[    0,  1043, 17446,     2]]), 'attention_mask': tensor([[1, 1, 1, 1]])}
tokenizer.decode([1043])
# 'ac'
tokenizer.decode([17446])
# 'quire'



  但是把它们放在一起解码的时候,就会合成一个单词:


tokenizer.decode([1043, 17446])
# 'acquire'



  RobertaForMaskedLM在预测的时候也可以预测合成词:



  观察上图,发现RobertaForMaskedLM给出的候选词前面全都有一个空格。所以如果我们想要编码一个完整的单词,需要在前面加个空格。


解决方案:在想要编码成完整的单词前面加个空格


 在想要编码成完整的单词前面加个空格:


tokenizer(" acquire", return_tensors="pt")
# {'input_ids': tensor([[   0, 6860,    2]]), 'attention_mask': tensor([[1, 1, 1]])}
相关文章
|
机器学习/深度学习 JSON 自然语言处理
bert中文文本摘要代码(2)
bert中文文本摘要代码(2)
304 0
|
机器学习/深度学习 自然语言处理 算法
Jieba分词的准确率提升:使用paddle模式进行分词(使用百度飞桨深度学习模型进行分词)
jieba中的paddle模式是指使用飞桨(PaddlePaddle)深度学习框架加速分词的一种模式。相对于传统的分词算法,paddle模式采用了深度学习模型,可以获得更高的分词准确度和更快的分词速度。
|
机器学习/深度学习 算法 数据挖掘
CogLTX:应用BERT处理长文本
CogLTX:应用BERT处理长文本
752 0
CogLTX:应用BERT处理长文本
|
30天前
|
机器学习/深度学习 人工智能 自然语言处理
前端大模型入门(三):编码(Tokenizer)和嵌入(Embedding)解析 - llm的输入
本文介绍了大规模语言模型(LLM)中的两个核心概念:Tokenizer和Embedding。Tokenizer将文本转换为模型可处理的数字ID,而Embedding则将这些ID转化为能捕捉语义关系的稠密向量。文章通过具体示例和代码展示了两者的实现方法,帮助读者理解其基本原理和应用场景。
178 1
|
存储 自然语言处理 PyTorch
bert中文文本摘要代码(1)
bert中文文本摘要代码(1)
131 0
|
存储 自然语言处理 并行计算
bert中文文本摘要代码(3)
bert中文文本摘要代码(3)
131 0
bert中文文本摘要代码(3)
|
机器学习/深度学习 存储 自然语言处理
使用Sentence Transformers和Faiss构建语义搜索引擎
使用Sentence Transformers和Faiss构建语义搜索引擎
1177 0
使用Sentence Transformers和Faiss构建语义搜索引擎
|
机器学习/深度学习 自然语言处理 数据可视化
【Pytorch神经网络实战案例】30 jieba库分词+训练中文词向量
在NLP中,一般都会将该任务中涉及的词训练成词向量,然后让每个词以词向量的形式型的输入,进行一些指定任务的训练。对于一个完整的训练任务,词向量的练大多发生在预训练环节。
449 0
|
自然语言处理 Python
基于ERNIE3.0的中文评论分类
基于ERNIE3.0的中文评论分类
368 0
基于ERNIE3.0的中文评论分类
|
人工智能 自然语言处理 算法
【DSW Gallery】基于EasyNLP的RoBERTa中文文本匹配
EasyNLP提供多种模型的训练及预测功能,旨在帮助自然语言开发者方便快捷地构建模型并应用于生产。本文以中文文本匹配为例,为您介绍如何在PAI-DSW中基于EasyNLP快速使用RoBERTa进行文本匹配模型的训练、推理。
【DSW Gallery】基于EasyNLP的RoBERTa中文文本匹配