中文分词是把连续汉字串按语义边界切分成词语序列的基础技术,相当于给机器装上“中文语感”。与英文靠空格天然分词不同,汉语词边界松散,高度依赖算法推断。选对分词方案,往往能直接决定下游情感分析、信息检索等任务的天花板。
这是工程落地中最为常见的方案,本质是用构建好的词库与文本进行字符串比对。它运行速度快、实现成本低,尤其适合对实时性要求高且领域词容易固化的场景。
这套方法的隐患是“死词簿”思维,一旦遇到词典未收录的人名、地名或流行新词,切分就会出漏洞。若你的文本来自社交媒体,建议建立新词回流优化机制,按周或月批量提炼高频新词并补充词典。需要特别警惕歧义切分,比如“研究生命科学”,词典法无法判断该先绑定“研究”还是“研究生”,此时只能依赖上下文辅助修正。
统计分词不再依赖完备词表,而是从大规模标注语料里提炼字与字间的组合规律。典型代表包括隐马尔可夫模型(HMM)与条件随机场(CRF)。
HMM把分词看成给每个字打标签的任务,常用标签集是B(词首)、M(词中)、E(词尾)、S(单字词),并由维特比算法找出全局最优序列。它的优点是轻量且推理较快,但严格的独立性假设让它难以刻画复杂上下文。CRF则在这一薄弱点上做了重大改进,允许特征自由组合,比如字的左邻右舍、词性倾向等,因此在处理模糊词边界时精度口碑更胜一筹。
统计方法拥有有限的未登录词识别力,只要某个词组在语料中高频共现,模型就会自动把它归拢并吸收成新词。不过代价也很直接:对语料规模、领域纯净度要求高,训练耗时明显高于扫描式词典法。一旦标注资源抓襟见肘,模型效果就会滑落得很快。
算力普及让神经网络方案走向前台,当前两条主流技术路线是双向LSTM(长短时记忆网络)与预训练语言模型。
双向LSTM通过同时读取正反两方向上下文,让每个字获得更完整的语义向量,对于跨长距离的指代消解有明显帮助。而预训练语言模型类似一个“语文通”,在海量文章上先学透通用表达,迁移到分词任务时,只需顶层接个分类器做微调。以经典歧义句“南京市长江大桥”为例,模型若捕捉到句子前后有地理相关的上下文,就会倾向判成“南京市/长江大桥”,而非“南京市长/江大桥”。
高精度不等于万能选型。深度模型参数量常达千万级,对显存占用与推理延迟是实打实的考验。若做离线清洗、周期性分析,投入GPU跑深度模型是一笔好买卖;若是用户在线点击、毫秒级响应,那轻量词典法或蒸馏压缩后的小模型才是稳当答案。
市场上有大量成熟开源利器可供直接集成,主要分为三档梯队。轻量级代表是盘古分词、jieba,它们基于词典与统计混合,安装即用,适合原型验证。中量级如HanLP与LTP,附带丰富词性标注与依存句法分析接口,适合构建稍复杂的中文处理管道。重量级则属基于PyTorch等框架自训的深度模型,适合有充足数据和AI工程师储备的团队。
选型时不妨先问三个问题:数据规模是千篇还是亿级?容忍延迟是几十毫秒还是几秒?团队是否具备调参运维能力?梳理清楚后再做技术决策,能避免不少维护泥潭。
英文依靠空格符即可天然切词,而中文文本呈连续字符流,词边界是由语素、构词法与语境共同决定的,必须借助算法推断。这导致中文分词不能简单套用英文token化工具,需单独训练或适配。
可以从两侧入手。线上侧:定期对冷门未登录词进行挖掘,借助统计方法看词频骤增的片段并把它们加入动态用户词典。模型侧:用增量训练的手段,把新语料喂给CRF或深度模型做微调,使模型适应当前语言变化。
满足以下条件时,词典法够用:领域固定(如法律文书)、对速度要求极高、无GPU资源。而处理开放域的短文本(如微博评论)或包含大量隐喻与歧义的内容,建议部署深度模型以换取准确率。
中文分词没有全能银弹。词典法胜在轻快可控,统计法靠数据弥补词表盲区,深度模型凭语义理解占领精度高位。落地时建议先明确数据规模、耗时预算与工程资源,再按需组合甚至混用多种方案。动手前先用自有样本集跑一轮对比评测,让真实数据替你做决定,比迷信算法名气更可靠。