Tokenizer将文本转化为模型可处理的数值形式,是NLP预处理的核心步骤。
核心作用
| 步骤 | 说明 |
|---|---|
| 文本切分 | 将文本拆分为token(单词/子词/字符) |
| 索引映射 | 将token映射为唯一数值ID |
| 特殊token | 添加[CLS]、[SEP]、[PAD]等 |
Token类型
| 类型 | 示例 |
|---|---|
| 单词 | ['I', 'love', 'NLP'] |
| 子词 | ['play', 'ing'] |
| 字符 | ['h', 'e', 'l', 'l', 'o'] |
处理流程
- 文本标准化:转小写、去多余空格、替换缩写
- 分词:按单词/子词/字符拆分
- 索引映射:token → token ID
- 添加特殊token:[CLS]、[SEP]、[PAD]
- 长度处理:padding或截断
分词方式对比
| 方式 | 优点 | 缺点 |
|---|---|---|
| 单词级 | 直观 | OOV问题、词表大 |
| 子词级 | 平衡词表大小与覆盖率 | 复杂度高 |
| 字符级 | 无OOV问题 | 序列过长 |
常见Tokenizer
| Tokenizer | 特点 |
|---|---|
| BPE | 字节对编码,子词切分 |
| WordPiece | BERT使用,子词切分 |
| SentencePiece | 语言无关,支持多种算法 |
[[BPE算法详解]]
张芷铭的个人博客
Comments