识别通过拥抱面部管道填充蒙版选择的单词

时间:2020-04-09 17:49:06

标签: python neural-network nlp huggingface-transformers

我想使用拥抱脸的填充蒙版管道来猜测被屏蔽的令牌,然后仅将猜测的令牌提取为单词。此代码应执行以下操作:

!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))

但是我发现它给了我"Ġplatform"而不是"platform"的回响-有人知道这是为什么还是发生了什么?

1 个答案:

答案 0 :(得分:0)

这只是基础模型的特殊性(请参阅here以检查它是否为distilroberta-base)。
具体来说,提炼模型使用与其“教师模型”相同的标记器(在本例中为RoBERTa)。反过来,RoBERTa的令牌生成器在没有任何形式的空格的情况下完全可以正常工作,另请参见this thread关于OpenAI的GPT-2模型,该模型使用相同的令牌化策略(请参见here)。

具体来说,您可以注意到,表示新单词的开头始终是相同的Unicode字符\u0120。相对而言,由多个子词组成的词在以后的子词中将没有这样的起始字符。

complication将被分解为两个虚构的子词Ġcompli cation

因此,如果Ġ出现在单词中,则只需将其删除。