文本tokenize方法总结
💡
原文中文,约1200字,阅读约需3分钟。
📝
内容提要
本文总结了文本分词方法,包括简单的空格分割、字符分割和子词分词器。子词分词器如BPE、字节级BPE、WordPiece和Unigram,能够有效缩小词表并学习有意义的表示,适用于多种语言文本。
🎯
关键要点
- 本文总结了文本分词方法,包括简单的空格分割、字符分割和子词分词器。
- 使用与训练时相同的tokenize方法才能保证预训练模型的正常表现。
- 空格分割存在标点符号和单词无法分割的问题,中文没有空格,导致词表较大。
- 字符分割虽然减小词表,但模型难以学习有意义的表示。
- 子词分词器假设大部分词不需要拆分,少数词需要进一步拆分。
- 第一个子词分词器是BPE,通过合并相邻字符来减小词表。
- 字节级BPE使用256个基础字符,GPT-2采用此策略。
- WordPiece算法用于BERT,依据最大化语言概率合并字符。
- Unigram算法先创建巨大的词表,然后逐步删除符号。
- Sentence Piece用于非英文文本,通过抽象输入流来减少词表。
❓
延伸问答
什么是文本分词方法?
文本分词方法是将文本拆分成一个个token的技术,包括空格分割、字符分割和子词分词器等。
子词分词器的优势是什么?
子词分词器能够减小词表,同时学习到有意义的表示,适用于未见过的词。
BPE和WordPiece有什么区别?
BPE通过合并相邻字符的频率来减小词表,而WordPiece则是依据最大化语言概率进行合并。
为什么空格分割在中文中效果不佳?
中文没有空格,导致词表较大,且标点符号和单词无法有效分割。
什么是字节级BPE?
字节级BPE使用256个基础字符,适用于减少词表,GPT-2采用此策略。
Unigram算法是如何工作的?
Unigram算法先创建一个巨大的词表,然后逐步删除符号,依据语言概率损失最小进行选择。
➡️