中文文本以连续汉字书写,词语之间没有空格作为天然分隔符,因此分词成为中文自然语言处理的第一步。分词质量直接影响搜索引擎召回、推荐系统相关性以及情感分析等一系列下游应用的准确率。在工程实践中,选择合适的分词策略,往往比追求算法的理论先进程度更为关键。
构建一个规模足够大的词库,然后依据字符串匹配规则将句子切分为词条,这是最直观的分词思路。依据扫描方向的不同,主要分为正向最大匹配(从左至右取最长词条)与逆向最大匹配(从右向左匹配)。
以“武汉市长江大桥”为例,正负向匹配可能产生不同结果,双向最大匹配法同时运算两种方向,再依据规则或词频选择更合理的一个。这类方法处理已知词汇的效率极高,消耗计算资源极少。
不过,它的致命短板在于对从未收录的新词、人名或行业术语无能为力,切分错误率会随之上升。落地时要注意让词库保持动态生长,定期汇总用户的搜索日志,把高频出现的未登录词纳新入表,减少长尾的切分偏误。
实践要点:将词典匹配作为系统的快速初筛通道,后台搭建新词挖掘流程,通过离线统计“凝固度”与“自由度”自动提取潜在新词。
统计方法不再依赖硬性的词表,而是把分词转化为给每个汉字标注位置标签的过程。常用的标签体系包含词首、词中、词尾以及单字成词,模型通过学习大量已标注语料来推测最优序列。
HMM依赖较强的独立性假设,计算速度快但上下文利用有限;CRF则能全局性地考虑相邻标签的约束关系,对中文里的交叉歧义处理得更妥当,因此在中长文本中能获得更平滑的切分效果。统计方法天然具备发现新词的潜力,不必每出现一个新词就去改词典。
代价在于训练阶段需要高质量的人工标注数据,且推理时的计算开销比词典法高出不少。若要快速在某一垂直行业落地,需要准备该领域足够规模的语料进行重新训练,否则领域迁移效果会打折扣。
深度学习模型将分词问题推向语义层面。以BiLSTM加CRF的经典组合为例,双向网络负责捕捉字与字之间长距离的上下文信息,CRF层保证最终输出的标签序列在语法上合法。基于Transformer的预训练模型则更进一步,凭借海量文本学习出的通用知识,只需在下游接入一个标签分类器进行微调,即可获得很高的准确率。
诸如“美国会通过对台售武法案”这类句子,究竟该切为“美国/会/通过”还是“美/国会/通过”,表面字符串上看不出端倪,但深度模型能依据语义倾向性做出贴合真实意图的判断。在歧义消解与未登录词识别表现上,它确实遥遥领先。
然而,高准确率的背后是明显的资源消耗。巨大的参数量导致CPU上推理缓慢,需要使用GPU集群并做模型蒸馏或剪枝才能达到实时要求。若业务对响应耗时有严格上限,务必把TP99延迟作为首要考量指标。
单一方案往往难以在准确性和吞吐量之间达到平衡,工业级平台更倾向于采用级联或并列的混合结构。典型做法是先用词典法快速完成初步切分,并保留切分歧义候选,再由统计模型或深度模型对歧义片段进行精细化选择。
处理开放领域的高并发需求时,可采用多路线并行:轻量模型处理大部分常规文本,复杂模型仅用于低置信度片段,通过一个阈值门控层来动态分配算力。这样既避免了全量跑重模型带来的队列堆积,也保证了整体切分质量。
选型参考:若处理的是规范化的新闻资讯类文本,词典加CRF的方案性价比极高;若面向社交评论等口语化、不规范表达,则更适合深度模型。同时要关注工具链的成熟度,考虑社区的活跃度过低是否会影响后期的故障排查效率。
没有固定标准,需要结合业务诉求来判断。对搜索场景而言,应该保持索引侧和查询侧的分词策略完全一致,确保召回率;对信息抽取类任务,则更看重词典的领域完整度,避免出现碎片化结果。
未登录词不能完全消除,但需要控制它对核心结果的影响。合理的做法是将识别出的新词保存在临时缓冲中,当频繁出现时再提升其权重,而不是直接写入正式词库,以免干扰原有的精标注数据。
差异集中在底层算法(隐马尔可夫、条件随机场、神经网络)、自带的领域词库规模以及提供的自定义接口灵活性。更重要的是关注项目的维护活跃度,长期停滞的项目可能在面对新词语料时表现愈发不佳。
中文分词没有放之四海而皆准的标准答案,词典法赢在速度和可控性,序列标注法胜在边界识别能力,深度模型则强于语义理解。在具体项目中,建议先明确业务对延迟、资源投入以及可解释性的核心诉求,再换取合适的工具选型。若团队人力充足,从词典初切加统计模型消歧的架构开始搭建,往往是最稳妥的起步路径。