目录
[六、子词级分词(Subword Tokenization)](#六、子词级分词(Subword Tokenization))
[(一)Token → Vector](#(一)Token → Vector)
[(一)Byte-level BPE](#(一)Byte-level BPE)
一、前言
在Natural Language Processing中,几乎所有任务的第一步都是"分词(Tokenization)"。
无论是文本分类、机器翻译,还是大语言模型输入,都绕不开一个核心问题:
如何把连续的文本切成模型可以理解的最小单元?
分词就是解决这个问题的关键技术。
二、什么是分词
(一)基本定义
分词是指:
将连续文本拆分为有意义的最小语言单元(Token)
(二)一句话理解
把一句话"切成模型能读懂的片段"
(三)示例
我爱自然语言处理
→ 我 / 爱 / 自然语言处理
三、分词的核心作用
(一)模型输入标准化
文本 → Token序列
(二)降低复杂度
字符级 → 词级 → 子词级
(三)统一建模单位
所有模型(包括Transformer)都依赖token输入。
四、分词的三种粒度
(一)字符级分词(Character-level)
定义
以单个字符作为最小单位
示例
我 / 爱 / 自 / 然 / 语 / 言 / 处 / 理
优点
-
无OOV问题
-
简单
缺点
-
序列过长
-
语义弱
五、词级分词(Word-level)
(一)定义
以"词"为单位切分文本
(二)示例
我 / 爱 / 自然语言处理
(三)优点
-
语义清晰
-
直观
(四)缺点
-
OOV问题严重
-
中文难以定义"词边界"
六、子词级分词(Subword Tokenization)
这是现代NLP最主流方式。
(一)定义
介于字符和词之间的最优折中单位
(二)典型方法
-
BPE(Byte Pair Encoding)
-
WordPiece
-
SentencePiece
(三)示例
自然语言处理 → 自然 / 语言 / 处理
(四)优点
-
解决OOV问题
-
表达能力强
-
适合大模型
七、BPE分词原理
(一)核心思想
不断合并高频字符对
(二)流程
1. 初始化为字符级
2. 统计频率
3. 合并最高频组合
4. 반복
(三)效果
从字符 → 子词 → 词片段
八、WordPiece分词
(一)特点
基于概率最大化的子词切分方法
(二)应用
- BERT模型
(三)优势
-
更稳定
-
更语义化
九、SentencePiece分词
(一)特点
不依赖空格的通用分词器
(二)适用语言
-
中文
-
日文
-
多语言
(三)优势
-
统一处理语言
-
工业级应用广泛
十、分词在NLP中的位置
原始文本
↓
Tokenization(分词)
↓
Embedding
↓
Transformer模型
十一、分词与词向量关系
(一)Token → Vector
每个token映射为向量
(二)公式表达
x_i = Embedding(token_i)
十二、分词中的关键问题
(一)OOV问题
未登录词无法表示
(二)歧义问题
自然语言处理 vs 自然 / 语言处理
(三)粒度选择问题
-
太细 → 信息弱
-
太粗 → 泛化差
十三、现代大模型的分词方式
在GPT等模型中:
(一)Byte-level BPE
直接基于字节进行编码
(二)特点
-
无需词表依赖语言
-
强泛化能力
十四、分词对模型性能影响
(一)影响表达能力
token设计决定语义表达上限
(二)影响计算效率
- token越多 → 计算越慢
(三)影响泛化能力
好的tokenization = 更强泛化
十五、分词技术发展趋势
(一)从词到子词
- Word → Subword
(二)从语言依赖到语言无关
- SentencePiece / Byte-level
(三)从静态到动态
- 可学习tokenization
十六、总结
分词是自然语言处理的第一步,也是最基础但最关键的一步,它决定了模型如何"看到"语言。
本文系统讲解了:
1、分词基本概念
2、字符级 / 词级 / 子词级
3、BPE算法原理
4、WordPiece方法
5、SentencePiece机制
6、分词在模型中的位置
7、OOV问题
8、现代大模型分词方式
9、发展趋势
可以将分词理解为:
"把连续语言切分成机器可以理解的最小语义单元,是连接人类语言与机器模型的第一道桥梁。"
掌握分词,就掌握了NLP的入口。