‘BertTokenizer‘ has no len() additional_special_tokens add_tokens

增加special token的时候一直报错
additional_special_tokens也不行,add_tokens也不行,len和vocab_size也不行
后来发现是旧版本pytorch_pretrained_bert的问题:
原来:

from pytorch_pretrained_bert import BertAdam
tokenizer = BertTokenizer(vocab_file=args.tokenizer_path)

改为:

from transformersimport BertAdam
tokenizer = BertTokenizer.from_pretrained(pretrain_path, additional_special_tokens=['##char##'])
### 关于 `bert-base-chinese` 特殊令牌映射 对于 `bert-base-chinese` 模型而言,特殊令牌映射(special tokens map)通常定义在配置文件 `config.json` 中。这些特殊令牌用于标记序列中的特定部分或位置,在处理文本时起到重要作用。 #### Special Tokens Map 文件内容及说明 以下是典型的 `special_tokens_map.json` 文件的内容及其解释: ```json { "bos_token": "[CLS]", "eos_token": "[SEP]", "pad_token": "[PAD]", "cls_token": "[CLS]", "sep_token": "[SEP]", "mask_token": "[MASK]" } ``` - **bos_token (Begin of Sentence Token)**: 表示句子的开始,默认为 `[CLS]`。 - **eos_token (End of Sentence Token)**: 表示句子的结束,默认为 `[SEP]`。 - **pad_token**: 用来填充输入序列至固定长度,默认为 `[PAD]`。 - **cls_token**: 位于每个输入序列的第一个位置,代表整个句子的分类信息,默认为 `[CLS]`。 - **sep_token**: 分隔不同句子或片段,默认为 `[SEP]`。 - **mask_token**: 用于遮蔽某些单以便模型学习预测缺失,默认为 `[MASK]`[^1]。 需要注意的是,上述 JSON 结构并非实际存在于单独的文件中;而是通过 Hugging Face 的 Transformers 库自动识别并应用到相应的 BERT 模型实例上。当加载 `bert-base-chinese` 模型时,库会读取其对应的配置来设置这些特殊的令牌。 为了查看具体的特殊令牌映射,可以使用如下 Python 代码获取已加载 tokenizer 实例中的特殊令牌信息: ```python from transformers import BertTokenizer tokenizer = BertTokenizer.from_pretrained('bert-base-chinese') print(tokenizer.special_tokens_map) ``` 这段代码将会打印出类似于上面提到的那个字典结构,展示当前使用的 `bert-base-chinese` 模型所支持的所有特殊令牌名称与其对应的实际 token 值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CxFt

很高兴可以帮到你

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值