当前位置:   article > 正文

深入理解BPE、WordPiece、Unigram分词算法_unigram算法

unigram算法

1. 前言

NLP任务中最重要的一个环节就是分词。分词器(Tokenizer)在整个任务流程中扮演的角色如下

即给定一段文本,分词器会将其分割成一个个token,这些token会根据vocab转化成对应的ID以作为模型的输入。

完整的分词流程包含以下四个步骤

  • 标准化阶段(Normalization):先将原始文本(raw text)做一个预处理,例如去掉Unicode字符的重音(é 变成 e),将所有字母全部转化成小写字母(E 变成 e)等。这一步可以理解为数据清洗;
  • 预分词阶段(Pre-tokenization):进行一遍粗略的分词,例如基于空格&标点的分词,即word-level。注意预分词结果的粒度必须大于最终分词结果的粒度;
  • 模型阶段(Model):在预分词的语料上进行训练(注意分词器的训练和模型的训练是两个概念!模型的训练是通过梯度下降来降低loss,具有随机性,而分词器的训练是一个统计过程,最终的结果是确定性的);
  • 后处理阶段(Postprocessor):添加一些特殊的token,例如BERT中的 [CLS][SEP]

分词的粒度主要有三种:word-level、char-level和subword-level,对于前两种粒度,则不需要经历第三阶段(模型阶段)。

本文将主要聚焦于第三阶段,但在此之前,先让我们回顾一下word-level和char-level分词。

1.1 word-level分词

word-level分词的一个直观出发点是基于空格分词,即对字符串调用 split() 方法

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