中文文本中词与词之间没有明确的空格标识,如何准确地切分出词语,是自然语言处理中一项基础而关键的任务。分词结果的好坏,直接影响着搜索引擎排序、文本聚类、情感判断等下游应用的表现。目前,业界形成了四种主流的技术路径,它们在设计思路、运行效率和适用边界上各有侧重,了解这些差异有助于工程师为实际项目做出合理的技术选型。
这种方法依赖一个预先构建好的大规模词库,通过特定的扫描顺序将待处理文本与库中的词条进行比对,命中的字符串即被当作一个词语切分出来。根据扫描方向的不同,又可以细分为正向最大匹配、逆向最大匹配和双向最大匹配等策略。
正向最大匹配是从句子左侧开始,优先尝试匹配词库中最长的词。例如在“南京市长江大桥”这个例子上,系统会先尝试匹配“南京市”而不是“南京”,进而得到“南京市/长江大桥”这样较合理的切分效果。逆向最大匹配则从句末开始扫描,在一些动词结尾的歧义句中,它往往能给出比正向匹配更好的结果。而双向最大匹配会将两种方案的结果进行比较,在出现分歧时结合词频等统计信息做出最终选择,准确率更高。
实践提示:词典法最大的吸引力在于启动成本极低,不需要任何标注好的训练数据,并且匹配速度非常快,很适合对响应速度有高要求的在线服务。它的主要短板在于词库的维护是个长期工程,尤其是法律、医学、证券等垂直领域,一旦出现新词或网络流行语而词库未及时更新,切分错误便会明显增多。
统计方法不再把注意力放在词表的完整性上,而是从海量语料中自主学习汉字之间的共现规律。其中,隐马尔可夫模型(HMM)和条件随机场(CRF)是该流派中极具代表性的两种算法。
HMM把分词任务看作是给每个汉字打标签的过程。它定义了B(词首)、E(词尾)、M(词中)、S(单字成词)等标签,并通过维特比算法在全局范围内寻找概率最高的标签组合。即使是词库中不存在的未登录词,只要它在语料里出现的频率足够高,HMM也能依靠字与字之间的转移概率将其识别出来。
CRF可以看作是HMM的一种扩展升级。它不再假设每个汉字的标签是相互独立的,而是允许利用相邻字之间的复杂上下文依赖关系。这一特性使得CRF在处理一些边界模糊的词语时游刃有余,但代价是训练和预测的速度会明显变慢,并且它对训练语料的领域垂直度比较敏感。
选型建议:如果手里只有少量标注数据且想快速跑通流程,HMM是一个性价比不错的起点;如果已经积累了充足的高质量标注语料,同时又对最终精度有比较高的要求,那么CRF会是更稳固的选择。
近年来,深度学习架构逐渐成为分词领域的主流力量。以BiLSTM(双向长短期记忆网络)为代表的循环神经网络,以及以BERT、RoBERTa为代表的预训练语言模型,是该类别中最常见的两种技术框架。
BiLSTM的优势在于能够同时捕捉语句正向和反向两个方向上的语境信息,在处理一些长距离语义依赖时,它的表现明显优于传统的统计模型。而BERT这类预训练模型,其底层已经在大规模无监督文本上学到了丰富的通用语言知识,做分词任务时只需在其上添加一个简单的输出层进行微调,就足以在很多公开评测集上取得很高的分数。
这一类模型的看家本领是语义消歧能力。以“他喜欢研究生命起源”这句话为例,神经网络能够依托“研究”和“生命”之间强烈的共现语境,判断出正确的切分应该是“研究/生命”,而词典法在这种场景下则很容易误切成“研究生/命”。这种深层次的语义理解,是规则方法和统计方法都难以企及的。
当然,深度模型的代价同样不容忽视。动辄千万甚至上亿级别的参数,意味着它们必须依赖高性能GPU才能完成训练和推理,同时对内存容量和电力消耗也有硬性要求。在算力有限的边缘设备或要求极低延迟的实时系统里,这类模型的落地会碰到不少现实阻碍。
综合来看,没有哪一种单一方法能够包打天下。词典法快而不准,统计法准而不快,深度法强而笨重。一个成熟的工程化系统往往采用多策略融合的思路,将走查速度快的算法与精度高的算法进行串联或并联组合。
典型的串联做法是:先用词典法做一次快速预切分,把命中的结果和未命中的片段分开;再对未命中的片段调用统计或深度模型进行二次处理,尝试识别新词。并联做法则是对同一句话同时运行多种算法,然后通过一个基于规则的仲裁模块,根据词频、词性、上下文连贯度等特征对候选方案进行打分,选取最优结果。
实战要点:并非所有项目都需要最高精度的模型。在做日志分析或舆情监控时,词典法加上定期更新的用户自定义词典往往已足够应付;而在做对话机器人或翻译系统时,则值得投入资源部署深度学习模型,因为那一点点精度提升直接关系着用户体验。
未登录词即词库或模型训练语料中未出现过的新词,包括一些人名、地名和网络造词。相比之下,基于统计和深度学习的方案对未登录词的容忍度更高,因为它们可以依靠字间的共现组合来推断新词边界;而词典法则完全无能为力,需要依赖人工定期往词库中补充新词才能解决问题。
通常来说,基于预训练语言模型(如BERT)的深度方案在推理阶段速度最慢,尤其是在CPU设备上,一个数百字的句子可能需要数十毫秒甚至更长的处理时间。BiLSTM次之,而基于词典的匹配算法在速度上拥有绝对优势,单次耗时基本上可以控制在微秒级。
除了关注常见的精确率、召回率和F1值外,还有一个常被忽略的指标是分词延迟。延迟决定了系统能承受多大的并发访问量。此外,还要考虑词库或模型的更新便利性、是否支持自定义词典、以及社区活跃度,这些因素对于后续的维护成本影响至关重要。
每一种分词方法都有其独特的价值坐标系:词典法适合追求速度和低成本的场景,统计法在中等资源条件下能取得不错的精度平衡,深度法虽然昂贵但提供了最强的语义理解能力,多策略融合则是工程实践中最稳妥的折中方案。建议读者在选型时先明确自己的数据规模、算力预算和延迟要求,再针对性地做小型对比试验,不要盲目追求更高精度的模型而忽略了实际的部署成本。