当前位置: 首页 > news >正文

NLP masked_tokens[]、token_masks[]是什么?

1、masked_tokens[]、token_masks[]介绍 

masked_tokenstoken_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 = 0masked = []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 maskif 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 maskelse:masked.append(ts[curr_token])token_mask.append(False)curr_token += 1return 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前后序列的长度不会发生变化

权重Weight:例如,如果设定 self.mask_prob = 0.7,则掩码标记 True 的权重为 0.7,掩码标记 False 的权重为 0.3

http://www.lryc.cn/news/96486.html

相关文章:

  • aoa_android工程编译注意事项
  • java篇 类的进阶0x06:可见性修饰符(访问修饰符)
  • Java 贪心算法经典问题解决
  • 所有docker命令无效,解决办法
  • 系列一、创建者模式
  • 数据库系列:覆盖索引和规避回表
  • java Spring Boot上线运维 启动jar时控制台调整零时变量
  • java后端校验
  • PowerPoint如何修改“默认保存路径”?
  • 【PMP】有没有项目经理能看得懂这九张图?求挑战
  • ES6学习记录—自己记录一直更新版
  • linux操作gpio的一些记录
  • 目前新能源汽车充电桩的发展受到哪些不利因素的影响?
  • jenkins
  • 基于深度学习的图像分割技术探究
  • 【c++】vector的使用与模拟实现
  • 记录安装stable diffusion webui时,出现的gfpgan安装卡住的问题
  • 【开发环境】Windows下搭建TVM编译器
  • 了解Unity编辑器之组件篇Video(二)
  • 安全杂记 - 状态码,DNS,编码
  • 微信小程序 Page页面
  • C语言实现基于Linux,epoll和多线程的WebServer服务器
  • 微信小程序数字键盘(仿微信转账键盘)
  • mac电脑强大的解压缩软件BetterZip 5.3.4 for Mac中文版及betterzip怎么压缩
  • Llama 2 来袭 - 在 Hugging Face 上玩转它
  • linux操作历史history定制
  • 微信小程序 wx.showModal
  • Java开发中的分层开发和整洁架构
  • Spring 多数据源方法级别注解实现
  • Redis在云服务器上的安装与客户端连接配置