hello
a
Tokenization 举例:
假设要对 Let us learn tokenization
做 Tokenization,通常有三种做法:
1:Word-Based Tokenization,结果为:[“Let”, “us”, “learn”, “tokenization.”]
2. Subword-based Tokenization,结果为:[“Let”, “us”, “learn”, “token”, “ization.”]
3. Character-based Tokenization,结果为:[“L”, “e”, “t”, “u”, “s”, “l”, “e”, “a”, “r”, “n”, “t”, “o”, “k”, “e”, “n”, “i”, “z”, “a”, “t”, “i”, “o”, “n”, “.”]
目标:将一段文本分成一个词一个词的Sequence
常用方法:
缺点:
缺点解决方案
优点:word是具有含义的,例如:run
是跑的意思
目标:将一段文本分成一个字母一个字母的Sequence
常用方法:直接分就好了
优点:
缺点:
致命缺点导致Character-based Tokenization基本不会被使用
对于中文这种一个Charactor也具有含义的,是可以使用Character-based Tokenization的,而且有时效果还很好(因为中文做分词很难)
目标:将一段文本分成一个字词一个字词的Sequence,但有些词能拆就拆。
对Subword的进行举例说明:
例1. 将boys
拆成boy
和s
,这可以让模型学到,boys
和boy
的有相同的意思,但又有些微小的差别
例2. 将tokenization
拆成token
和ization
,这样的拆法可以让模型学到 tokenization
、tokens
、tokenizing
具有相近的意思。
例3. 接着例2,还可以让模型学到 tokenization
和 modernization
具有相同的词性
subword 时的一般原则:
tokenization
实际会拆成 token
和 ##ization
,##
标记ization
是一个后缀常用方法:
优点:
pretrain
,但由于拆分成了pre
和train
,模型就可能会理解该单词的意思是预训练缺点:
Word, Subword, and Character-Based Tokenization: Know the Difference: https://towardsdatascience.com/word-subword-and-character-based-tokenization-know-the-difference-ea0976b64e17