分词,就是将连续的文本序列(如句子),按照一定的规范和算法,切分成一个一个独立且有意义的词语或词元的过程。

- 英文例句(已天然分词):
I love natural language processing.- 分词结果:
["I", "love", "natural", "language", "processing", "."]
- 分词结果:
- 中文例句(未分词):
我爱自然语言处理。- 目标分词结果:
["我", "爱", "自然语言处理", "。"] - 错误分词示例:
["我爱", "自然", "语言", "处理", "。"](改变了语义)
- 目标分词结果:
为什么需要分词?(分词的重要性)
- 语言特性决定:对于汉语、日语等,词是承载语义的基本单位,是后续所有高级NLP任务(如句法分析、语义理解、机器翻译)的基础。
- 信息检索的基础:搜索引擎需要将查询词和文档都切分成词,才能进行匹配和索引。
- 语言模型的基础:统计语言模型(如N-Gram)的统计单位通常是词。
- 机器翻译的桥梁:源语言和目标语言的翻译映射通常发生在词或短语层面。
分词的主要方法(技术原理)
分词技术的发展经历了从基于规则到基于统计再到基于深度学习的演变。
基于规则的词典匹配法
这是最经典、最直观的方法,其核心是:拥有一个尽可能大的、包含已知词语的“词典”,然后用文本去匹配词典中的词。
- 原理:将待分词文本与词典中的词条进行匹配,找到所有可能的切分组合,然后根据某种规则选择“最优”切分。
- 常用策略:
- 正向最大匹配(FMM):从左到右,每次尝试匹配词典中最长的词。
- 示例:
“计算机科学专业”,词典有[“计算”, “计算机”, “科学”, “专业”]。 - FMM过程:从“计”开始,找到最长匹配词
“计算机”,切出;接着是“科学”;最后是“专业”,结果为[“计算机”, “科学”, “专业”]。
- 示例:
- 逆向最大匹配(RMM):从右到左匹配,通常比FMM更准确,因为汉语的中心词常靠后。
- 双向最大匹配:同时进行FMM和RMM,如果结果不一致,则根据某种规则(如词数更少、颗粒度更大)选择其一。
- 正向最大匹配(FMM):从左到右,每次尝试匹配词典中最长的词。
- 优点:速度快、简单、对于规范文本效果尚可。
- 缺点:严重依赖词典质量,无法处理未登录词(新词、人名、地名、机构名等),歧义切分能力有限。
基于统计的方法
这类方法不依赖或较少依赖词典,而是利用大规模语料库中的统计信息来判断字与字之间的“亲密程度”,从而决定是否应该组合成一个词。
- 核心思想:如果两个字(或字符)在文本中经常共同出现,那么它们构成一个词的可能性就很大。
- 关键统计量:
- 互信息(PMI):衡量两个随机变量的相关性,在分词中,用来衡量两个字组合在一起的强度。
PMI(x, y) = log( P(x, y) / (P(x) * P(y)) )- 值越大,说明
x和y结合越紧密,越可能是一个词。
- 信息熵(左右熵):衡量一个字(或词)左侧或右侧出现其他字的不确定性,一个成熟词语的左边或右边可以搭配的字通常比较丰富,即其左/右熵会比较高。
- 互信息(PMI):衡量两个随机变量的相关性,在分词中,用来衡量两个字组合在一起的强度。
- 代表性方法:
- N-gram语言模型:计算不同切分路径的概率,选择概率最大的路径,对于一个句子,有多种切分方式
W1, W2, …,选择使P(W1)*P(W2|W1)*...乘积最大的切分。 - 隐马尔可夫模型(HMM):将分词问题转化为序列标注问题,常用
B, M, E, S标签(B-词首,M-词中,E-词尾,S-单字词),用Viterbi算法求解最优的标签序列。
- N-gram语言模型:计算不同切分路径的概率,选择概率最大的路径,对于一个句子,有多种切分方式
- 优点:能够发现新词,不依赖完备词典。
- 缺点:需要大量训练语料,计算量较大,对低频词效果不佳。
基于深度学习的方法(当前主流)
将分词视为序列标注任务或序列到序列任务,利用神经网络自动学习从字符序列到词边界(或词标签)的复杂映射。
- 原理:
- 字符嵌入:将每个汉字或字符转换为一个稠密的向量表示。
- 上下文编码:使用能够捕捉长距离依赖的神经网络(如BiLSTM、Transformer)对字符序列的上下文信息进行编码。
- 标签预测:为每个字符预测一个标签(最常用的是
BME S标签集)。
- 代表性模型:
- BiLSTM-CRF:双向LSTM捕捉上下文特征,条件随机场(CRF)层考虑标签之间的转移约束(
B后面不能接S),输出全局最优标签序列,这曾是深度分词模型的标杆。 - 基于Transformer/BERT的模型:使用预训练语言模型(如BERT)作为编码器,获得更强大的上下文表示,然后接一个简单的分类层进行标签预测,这是目前SOTA(state-of-the-art)方法的主流。
- BiLSTM-CRF:双向LSTM捕捉上下文特征,条件随机场(CRF)层考虑标签之间的转移约束(
- 优点:
- 准确率高,能有效利用上下文解决歧义。
- 端到端训练,无需人工设计复杂的特征。
- 与预训练模型结合,性能强大。
- 缺点:需要大量标注数据,模型复杂、计算资源消耗大。
分词中的主要挑战
- 歧义切分:同一个字符串可能有多种切分方式。
- 组合型歧义:
“他/从/马/上/下来”vs“他/从/马上/下来”。 - 交集型歧义:
“美国/会/通过”vs“美/国会/通过”。
- 组合型歧义:
- 未登录词识别:词典中没有的词,如新词、人名、地名、机构名、专业术语等。
- 分词规范与颗粒度:同一个词在不同应用场景下,颗粒度可能不同。
“自然语言处理”可以切为[“自然语言处理”](一个整体术语),也可以切为[“自然”, “语言”, “处理”](更细的颗粒度)。- 这通常通过使用不同颗粒度的词典或模型来适配。
分词技术的基础原理是一个从机械匹配到概率统计,再到深度理解的演进过程,现代分词系统通常是 “规则 + 统计 + 深度学习”的混合体:
- 用深度学习模型作为主干,解决大部分常规和歧义切分。
- 用统计方法辅助新词发现。
- 用词典和规则作为后处理或特定领域优化,确保专有名词、领域术语的准确识别。
对于中文分词,目前工业界和学术界普遍采用基于 BERT等预训练模型+序列标注 的框架,并在大规模高质量的人工标注数据上进行训练,以达到最佳效果。