1、masked_tokens[]、token_masks[]介绍
masked_tokens
和token_masks
两个列表用于存储mask处理后的token(分词)结果和对应的mask标志。
-
masked_tokens
列表存储经过mask处理后的分词结果。 -
token_masks
列表存储与每个分词结果对应的mask标志。
2、示例说明:
例如一个 masked_tokens[0]是:
['C', 'N', '[C@H]', '(', 'c', '1', 'c', 'c', '(', 'Br', ')', 'c', 'c', 'c', '1', 'F', ')', '<MASK>', '(', '<MASK>', '<MASK>', '<MASK>', 'C', '1']
token_masks[0]是:
[False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, True, True, True, False, False]
它们的长度都是28
3、代码示例:
下面代码就是先对句子进行了token处理,然后进行了mask处理:
# 通过正则匹配对第一个句子(sents1)进行分词,得到tokens。
tokens = self._regex_match(sents1)
# 对tokens进行mask处理
m_tokens, token_masks = self._mask_tokens(tokens, empty_mask=mask)
4、mask的类型
span mask
def _mask_span(self, ts):
curr_token = 0
masked = []
token_mask = []
mask_bools = [True, False]
weights = [self.mask_prob, 1 - self.mask_prob]
sampled_mask = random.choices(mask_bools, weights=weights, k=len(ts))
while curr_token < len(ts):
# If mask, sample from a poisson dist to get length of mask
if sampled_mask[curr_token]:
mask_len = torch.poisson(torch.tensor(self.span_lambda)).long().item()
masked.append(self.mask_token)
token_mask.append(True)
curr_token += mask_len
# Otherwise don't mask
else:
masked.append(ts[curr_token])
token_mask.append(False)
curr_token += 1
return masked, token_mask
随机对某些位置进行mask,从泊松区取样得到mask的长度,mask前后序列的长度可能会发生变化
replace mask
def _mask_replace(self, ts):
mask_bools = [True, False]
weights = [self.mask_prob, 1 - self.mask_prob]
token_mask = random.choices(mask_bools, weights=weights, k=len(ts))
masked = [self._mask_token(ts[i]) if m else ts[i] for i, m in enumerate(token_mask)]
return masked, token_mask
根据权重Weight随机对某些位置进行mask,mask前后序列的长度不会发生变化文章来源:https://www.toymoban.com/news/detail-603177.html
权重Weight:例如,如果设定 self.mask_prob = 0.7
,则掩码标记 True
的权重为 0.7,掩码标记 False
的权重为 0.3文章来源地址https://www.toymoban.com/news/detail-603177.html
到了这里,关于NLP masked_tokens[]、token_masks[]是什么?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!