中文句子里的词语之间没有天然空格,分词因此成为几乎所有中文自然语言处理任务的前置步骤。搜索、翻译、舆情分析、语音助手等系统的效果,很大程度上都依赖分词的准确性。不同分词技术在原理、性能和适用面上差异明显,了解它们各自的逻辑,有助于开发者和技术决策者选出最匹配当前业务场景的方法。
词典匹配是历史最久的分词方式。系统预先维护一个规模可观的词库,然后按照既定顺序将文本切分为候选片段,与词库内容比对,命中的片段就被视为一个词。这类方法的优点是部署迅速、资源消耗低,无需任何标注语料,特别适合预算有限或对时延敏感的小型应用。不过,如果遇到词库里不存在的表达,比如新出现的品牌名、人名或行业黑话,切分结果就会出错,这是它最明显的短板。
常用的词典扫描策略有三种:
实际使用中,通用词库在垂直领域往往会失效。比如医疗文本中的药物名称、法律文书的专门术语,最好由项目方整理扩充为专属词典,并安排周期性更新。否则随着业务词汇不断演变,分词效果会逐步退化。另外,词典法对未收录词无能为力,建议与下述的统计模型搭配使用,以弥补覆盖度不足的问题。
统计分词将切分问题转化为标注问题。每个汉字被赋予一个角色标签,如词首、词中、词尾或单字成词,模型依据上下文特征预测标注序列,连续同属一个词的汉字便会被归并起来。这一机制让系统在一定程度上学会了“猜测”陌生词,对词典法的覆盖盲区形成了有效补充。
目前常用的两类统计模型各有特点:
使用统计模型时必须留意训练语料的来源。如果模型是在新闻或书籍语料上训练的,却要处理口语化的客服消息,效果会明显下滑。错误或前后不一的标注数据同样会拉低输出质量。建议在上线前,抽取一段有代表性的业务文本做小规模评测,确认模型输出是否符合预期。
深度学习方法将分词进一步推向语义层面。基于循环神经网络、长短期记忆网络或Transformer的模型,会对每个字生成动态的上下文向量,再据此判断其在句中的角色。与统计方法相比,神经网络能感知更远的上下文信息,对歧义和未登录词的识别能力均有明显提升。
实际落地时,深度模型并非直接替代传统方案。如果业务对响应速度要求极高,或者算力资源紧张,轻量级的词典加统计组合可能更为稳妥。反之,若文本语义复杂、对准确率要求严格,且具备一定的训练数据,则可以优先考虑预训练语言模型微调的方式。需要注意的是,深度模型依赖大量高质量标注数据,训练成本不低,对于小规模项目而言投入产出比可能不高。
在实际系统中,几乎没有任何一种单一技术能适配所有场景。比较务实的做法是结合多种方法:先用词典完成快速切分,再借助统计模型处理未登录词,最后用深度学习模型对整体结果进行优化或重排序。这种多层架构既能保留词典法的高效优势,又能借助模型能力提升对复杂文本的适应性。
举例来说,某些信息抽取系统中,用户自定义词典被置于最高优先级,保证业务专有名词被准确切出;随后统计模型处理通用文本部分;深度学习模型则被用于裁决双方产生冲突的片段。这样的分工能让各技术各展所长,同时降低单一方法带来的风险。无论采用何种组合,都应该建立一套评测流程,用业务真实数据持续验证分词效果,并根据结果动态调整模型参数或词典内容。
先从业务语料中统计高频片段,将出现次数较多的连续字符串整理成词典。同时可以引入统计模型,利用上下文信息识别那些词典中不存在但符合词语构成规律的表达。对于深度模型,准备一部分包含未登录词的训练样本进行微调,也能显著改善识别效果。
优先检查是否使用了过于复杂的深度学习网络。可以考虑将模型蒸馏成更小的版本,或者对输入文本做长度截断。另一个思路是采用词典和统计模型的组合,在保证一定精度的前提下显著降低延迟,仅对难分样本调用深度模型处理。
分词模型对训练数据的领域非常敏感。如果项目涉及多个行业,最好按领域分别准备词典和训练数据,或者在系统中维护多套配置,依据输入来源选择对应参数。定期抽取各领域的代表性样本进行回归测试,有助于及时发现并修正效果偏差。
选择分词方案时,先明确业务的核心约束:如果优先考虑速度和部署成本,词典匹配足以胜任;若文本噪声大、新词多,应引入统计模型;语义要求高且预算充足的情况下,深度学习模型值得尝试。多数生产系统更倾向于构建混合架构,同时配合业务专属词典和定期评测,确保分词效果能随文本演化持续保持稳定。无论采用哪种路径,始终以自己的真实数据为验证基准,才是提升项目质量的关键。