赞
踩
- # 实例化分词器并编码文本(文本索引化)
- tokenizer = BertTokenizerFast.from_pretrained(pre_train_model_name)
- train_encodings = tokenizer(train_texts, truncation=True, padding=True)
BertTokenizerFast 更快,因为使用了 tokenizer 库,tokenizer 库基于 RUST 所以多线程更好。
而 BertTokenizer 基于 python 的。
BertTokenizer 是基于BasicTokenizer和WordPieceTokenizer 的分词器:
BertTokenizer 有以下常用方法:
from_pretrained
:从包含词表文件(vocab.txt)的目录中初始化一个分词器;tokenize
:将文本(词或者句子)分解为子词列表;encode
:对于单个句子输入,分解词并加入特殊词形成“[CLS], x, [SEP]”的结构并转换为词表对应下标的列表;对于两个句子输入(多个句子只取前两个),分解词并加入特殊词形成“[CLS], x1, [SEP], x2, [SEP]”的结构并转换为下标列表;decode
:可以将encode方法的输出变为完整句子。在BERT中添加一些符号来作标志位:
[CLS] 标志放在第一个句子的首位,经过 BERT 得到的的表征向量 C 可以用于后续的分类任务。
[SEP] 标志用于分开两个输入句子,例如输入句子 A 和 B,要在句子 A,B 后面增加 [SEP] 标志。
[UNK]标志指的是未知字符
[MASK] 标志用于遮盖句子中的一些单词,将单词用 [MASK] 遮盖之后,再利用 BERT 输出的 [MASK] 向量预测单词是什么。
[PAD]让所有短句都能够对齐,长句就直接做截断,[PAD]这个符号只是一种约定的用法
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。