一、基于字母的分词方法
- 将每个字符看作一个词。
- 优点: 不用担心未知词汇,可以为每一个单词生成词嵌入向量表示。
- 缺点: 由于字母缺乏内在含义,所以得到的词嵌入向量也缺乏含义。计算复杂度提升,字符(单个汉字)的数目大于token(词)的数目。输出序列的长度将变大,对于Bert、CNN等限制最大长度的模型将很容易达到最大值。
二、基于子词的分词方法(Subword Tokenization)
为了改进分词方法,在UNK数目和词向量含义丰富性之间达到平衡,提出了Subword Tokenization方法。这种方法的目的是通过一个有限的单词列表来解决所有单词的分词问题,同时将结果中token的数目降到最低。例如,可以用更小的词片段来组成更大的词:“unfortunately” = “un” + “for” + “tun” + “ate” + “ly”。
接下来介绍几种不同的Subword Tokenization方法。