Python 识别通过拥抱面部管道填充蒙版拾取的单词
我想使用hugging face的填充掩码管道来猜测一个蒙面标记,然后将猜测的标记提取为一个单词。此代码应执行以下操作:Python 识别通过拥抱面部管道填充蒙版拾取的单词,python,neural-network,nlp,huggingface-transformers,Python,Neural Network,Nlp,Huggingface Transformers,我想使用hugging face的填充掩码管道来猜测一个蒙面标记,然后将猜测的标记提取为一个单词。此代码应执行以下操作: !pip install -q transformers model = pipeline('fill-mask') outcome = model("Kubernetes is a container orchestration <mask>")[0] #Prints: "Kubernetes is a container orchestration plat
!pip install -q transformers
model = pipeline('fill-mask')
outcome = model("Kubernetes is a container orchestration <mask>")[0]
#Prints: "Kubernetes is a container orchestration platform"
print(outcome['sequence'])
token = outcome['token']
#Prints: 1761
print(token)
#Prints: Ġplatform
print(model.tokenizer.convert_ids_to_tokens(token))
!pip安装-q变压器
模型=管道(“填充掩模”)
结果=模型(“Kubernetes是一个容器编排”)[0]
#打印:“Kubernetes是一个容器编排平台”
打印(结果['sequence'])
令牌=结果['token']
#印刷品:1761
打印(令牌)
#印刷品:Ġ平台
打印(model.tokenizer.convert_id_to_tokens(token))
但我发现它返回给我的是
“Ġplatform”
,而不是“platform”
——有人知道这是为什么或者会发生什么吗?这只是底层模型的一个特性(请参阅检查这是distilroberta base
)具体来说,提炼模型使用与“教师模型”(本例中为RoBERTa)相同的标记器。反过来,RoBERTa有一个令牌化器,它在没有任何形式的空白的情况下严格工作,另请参见OpenAI的GPT-2模型,该模型使用相同的令牌化策略(请参见) 特别是,您可以注意到,表示新词开头的unicode字符总是相同的
\u0120
。相比之下,由多个子词组成的词对于后面的子词将没有这样的起始字符
也就是说,complexion
将被分成两个虚构的子词Ġcompli
阳离子
因此,如果Ġ
出现在word中,您可以简单地删除它