当前位置:   article > 正文

BertForSequenceClassification 实践

bertforsequenceclassification
  1. # 实例化分词器并编码文本(文本索引化)
  2. tokenizer = BertTokenizerFast.from_pretrained(pre_train_model_name)
  3. train_encodings = tokenizer(train_texts, truncation=True, padding=True)

BertTokenizerFast 和 BertTokenizer

 BertTokenizerFast 更快,因为使用了 tokenizer 库,tokenizer 库基于 RUST 所以多线程更好。
 而 BertTokenizer 基于 python 的。

BertTokenizer 是基于BasicTokenizer和WordPieceTokenizer 的分词器:

  • BasicTokenizer负责处理的第一步——按标点、空格等分割句子,并处理是否统一小写,以及清理非法字符。
  • WordPieceTokenizer在词的基础上,进一步将词分解为子词(subword) 

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]这个符号只是一种约定的用法

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/342566
推荐阅读
相关标签
  

闽ICP备14008679号