tokenizers AddedToken
时间: 2023-11-12 16:57:50 浏览: 185
persian-tokenizers
新增token是指为了满足特定的需求,向tokenizer的词汇表中添加新的词汇。在使用tokenizers库时,可以通过`tokenizer.add_special_tokens`方法来实现新增token。比如,可以使用`tokenizer.add_special_tokens(['[unused15]'])`来添加`[unused15]`这个token。然后,使用`tokenizer.encode('[unused15]').ids`可以得到该token的编码结果,返回的结果为`[101, 15, 102]`。
另外,如果对tokenize和encode的性能有要求,可以考虑使用tokenizers库。使用该库,可以通过`BertWordPieceTokenizer`类来进行tokenization操作。首先,需要加载自定义的词汇表文件,比如`tokenizer = BertWordPieceTokenizer('path/to/vocab.txt')`。然后,通过`tokenizer.encode`方法可以将文本编码为token序列,返回一个Encoding对象。例如,`tokenizer.encode('你好呀').ids`会返回`[101, 765, 1681, 1240, 102]`这样的编码结果。
除了单个文本的编码,还可以进行批量编码。通过`encode_batch`方法可以对多个文本进行编码,返回一个Encoding列表。例如,`tokenizer.encode_batch(lines)`可以对文本列表`lines`进行编码。如果只需要获取ids,可以使用`map`函数将`ids`提取出来,比如`ids = list(map(lambda x:x.ids,tokenizer.encode_batch(lines)))`。
以上是一些关于新增token和使用tokenizers库的方法和示例,更多详细的使用说明可以参考官方文档。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [Bert tokenizer新增token](https://blog.csdn.net/cjs8348797/article/details/105348849)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *3* [transformers PreTrainedTokenizer](https://blog.csdn.net/claroja/article/details/108498726)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文