频道首页
目录
tokenizer的切分粒度
收藏
1
在给模型输入文本之前,首先对文本进行tokenize,然后转化为ID,再输入到模型之中。 分词的目的是将输入文本分成一个个词元,保证各个词元拥有相对完整和独立的语义,便于学习embedding表达和后续模型的使用。分词的难点在于如何获得理想的切分,使文本中所有的token都具有正确的表义,并且不会存在遗漏。 tokenizer目前有三种切分粒度:word/character/subword。
1. word
最常见的基于词级的分词是英文根据空格分词。 优点:词的边界和含义得到保留。 缺点:①词表过大,包含很多稀有词,存储和训练成本高,稀有词难以学好;②词表不能覆盖所有的词,容易出现OOV现象;③无法处理单词的形态关系和词缀关系:同一个词的不同形态,语义相近,完全当做不同的单词不仅增加了训练成本,而且无法很好的捕捉这些单词之间的关系;同时,也无法学习词缀在不同单词之间的泛化。(单词的相似性问题)
2. character
基于字符的分词是将文本拆分成字符。 例如,"I am a lucky boy",会拆分成“I a m a l u c k y b o y”。 优点:词表小 缺点:①分词粒度细,每个字符无法承载丰富的语义信息;② 序列长度长,计算成本高。
3. subword
基于字词的分词是指常用词应该保持原状,稀有词拆分成有意义的子词以共享token压缩空间。 优点:较好的平衡词表大小与语义独立性。 缺点:需要学习拆分的规则。
Reference
- https://youtu.be/nhJxYji1aho
- https://youtu.be/ssLq_EK2jLE
- https://youtu.be/zHvTiHr506c
主页
文章
云文档
讨论
留言墙
AI文档