【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]])}
相关文章
|
机器学习/深度学习 算法 数据挖掘
CogLTX:应用BERT处理长文本
CogLTX:应用BERT处理长文本
698 0
CogLTX:应用BERT处理长文本
|
自然语言处理 Python
【NLP Tool -- NLTK】NLTK进行英文情感分析、分词、分句、词性标注(附代码)
NLP自然语言处理之NLTK工具的使用,进行英文情感分析、分词、分句、词性标注(附代码)
681 0
|
机器学习/深度学习 自然语言处理 数据可视化
【Pytorch神经网络实战案例】30 jieba库分词+训练中文词向量
在NLP中,一般都会将该任务中涉及的词训练成词向量,然后让每个词以词向量的形式型的输入,进行一些指定任务的训练。对于一个完整的训练任务,词向量的练大多发生在预训练环节。
373 0
|
机器学习/深度学习 自然语言处理 算法
【文本分类】基于改进TF-IDF特征的中文文本分类系统
【文本分类】基于改进TF-IDF特征的中文文本分类系统
220 0
【文本分类】基于改进TF-IDF特征的中文文本分类系统
|
机器学习/深度学习 自然语言处理 算法
GPT-3 vs Bert vs GloVe vs Word2vec 文本嵌入技术的性能对比测试
本文将GPT3与三种传统文本嵌入技术GloVe、Word2vec(Mikolov ,2013 年)和 BERT生成的嵌入进行性能的简单对比。
606 0
GPT-3 vs Bert vs GloVe vs Word2vec 文本嵌入技术的性能对比测试
|
机器学习/深度学习 自然语言处理 TensorFlow
【自然语言NLP】TensorFlow使用LSTM实现文本匹配任务
【自然语言NLP】TensorFlow使用LSTM实现文本匹配任务
335 0
【自然语言NLP】TensorFlow使用LSTM实现文本匹配任务
|
自然语言处理 Python
基于ERNIE3.0的中文评论分类
基于ERNIE3.0的中文评论分类
337 0
基于ERNIE3.0的中文评论分类
|
机器学习/深度学习 自然语言处理 机器人
使用Pytorch和BERT进行多标签文本分类(上)
使用Pytorch和BERT进行多标签文本分类
1101 0
使用Pytorch和BERT进行多标签文本分类(上)
|
数据可视化 PyTorch 算法框架/工具
使用Pytorch和BERT进行多标签文本分类(下)
使用Pytorch和BERT进行多标签文本分类
566 0
使用Pytorch和BERT进行多标签文本分类(下)
|
机器学习/深度学习 JSON 达摩院
[使用ModelScope]只要5分钟,快速实现中文情感分类模型
本文介绍基于ModelScope,快速实现一个中文情感分类模型,只需不到5分钟,即可获得工业级优异表现的深度学习模型。
[使用ModelScope]只要5分钟,快速实现中文情感分类模型