中文分词的任务,是把一段连续的汉字串切分成有实际意义的最小词条。和英文靠空格天然分隔不同,中文词与词之间没有明确边界,这让分词成为搜索引擎、智能客服、文本分析等自然语言处理应用的起点。分词的准确度直接决定上层任务的效果,理解不同词法分析算法的原理与边界,才能在实际工程中选对工具。
这类方法最早被广泛应用,核心是维护一份大词库,通过字符串比对来切分文本。它的优势在于速度快、实现门槛低,但遇到词典未收录的新词或语义交叉的短语时,很容易切错。
算法从句子左边开始,每次从当前位置取出一个与词库中最大词长相同的字符串,尝试与词库比对。如果匹配成功,就切出一个词;如果失败,则去掉末尾一个字继续尝试,直到匹配成功或只剩一个字。以“武汉市长江大桥”为例,若词库里“武汉”和“市长”都存在,正向匹配很可能优先切出“武汉/市长/江大桥”,造成歧义错分。这种策略适合词库质量高、领域稳定的场景,比如法律文书或药品名称的标准化处理。
反向匹配的步骤与正向完全相反,但是换一个方向从左到右处理时,由于中文偏正短语重心靠后的特点,反向匹配对某些歧义段落的命中率反而更高。更稳妥的做法是同时运行正反两个方向的匹配,然后比较两种切分结果,优先选择词语数量更少或单字词更少的那一个方案。这种双向策略能修正不少单方向造成的错误,但依然对词库外的专有名词无能为力,比如新兴的短视频平台昵称或小众的地名。
基于统计的模型不再依赖硬编码词库,而是从海量语料里学习哪些汉字组合更常共同出现。这类方法能识别部分新词,并给切分歧义提供概率层面的依据。
N元模型认为一个词的出现只受它前面有限几个词影响,因此可以基于语料中相邻词的共现频次来估算一句分词方案的整体可能性。以二元模型为例,系统会先枚举出句子所有可能的切分路径,然后计算每条路径上相邻词共现概率的乘积,概率值最高的路径就作为最终输出。为了防止某些词对在语料里从未出现导致概率为零,普遍会引入平滑算法来分配微小的非零概率。这种思路的优点是天然支持新词发现,但选择最优路径时计算量会随句子长度快速增长。
换个角度看,分词其实可以定位为给每个字标明其在词中位置的序列标注任务,常用标签是词首、词中、词尾和独立单字。隐马尔可夫模型会统计每个字在不同位置标签下的发射概率,以及标签之间的转移概率,最后用维特比算法快速找到全局最优的标签链,从而还原出切分结果。在命名实体相对规则的领域,比如地址解析或身份证信息提取,这类方法的稳定度很高,但它忽略了长距离的上下文关联,处理复杂句式时表现受限。
深度学习尤其是预训练模型的出现,让分词效果提升到了新档次。模型不再只看固定窗口内的字,而是通过深层神经网络感知大范围的语境,对歧义词和罕见术语的切分判断更贴近真实理解。
这一经典组合中,双向LSTM负责读取整个句子的字符序列,生成每个字融合了前后语境的特征向量,而条件随机场这一层会约束标签输出的整体合理性。条件随机场能学习到隐含规则,例如“词尾”标签之后绝不能直接接“词首”标签。在标注数据充足的垂直领域,比如财经新闻标题切分,这种结构的准确率明显优于纯统计模型,但训练需要高质量的人工标注语料,调参也比较费时。
直接用包含深层双向Transformer编码器的预训练模型来初始化网络,然后在目标领域的分词标注数据上做微调,是目前公认效果最好的路径。预训练模型已经内化了大规模通用文本的语法和语义规律,通过微调能较快适配专项需求。以机械专利文本分词为例,基于预训练模型的方案能显著降低发明名称中的错切概率。不过这类模型参数量大,对CPU部署或高并发在线服务压力较大,通常需要配合模型蒸馏或动态量化来降低推理延迟。
现实中不存在通吃所有任务的完美分词器,工程实践普遍采用混合架构或按场景轻量化定制。电商搜索标题适合强调品牌词和属性词的精确切分;医疗病历文本则要把精力放在症状和药名上。常见的落地做法是对通用大模型做领域微调,再用小词典做硬匹配兜底,确保固定术语不被切开。评估分词效果不能只看准确率,需要考虑词粒度、领域覆盖度、内存占用和处理速度这几个维度。建议在选型前准备一个贴近真实业务的测试集,分别用不同方案的可用版本跑一遍,对比误切案例再决定主用模型,同时保留快速回退的纯词典模式以避免突发的线上故障。
不建议。通用词库覆盖日常表达足够,但对于垂直行业的小众术语、产品型号或人名地名,覆盖率往往偏低。更稳妥的做法是把词库作为候选基础,配合统计或深度学习模型去补充识别动态新词,并定期用用户搜索日志或后台数据回流更新自定义术语表。
可以把分词拆成两步:先用量化后的轻量模型处理大部分普通请求,对于置信度偏低或包含特殊符号的句子,再调用大模型精细分析。或者在服务启动时预计算常用词组的切分结果并缓存,能明显减少重复计算开销。如果硬件资源有限,优先保住准确率敏感的核心业务,外围应用改用较快的词典方式。
先明确下游任务对词粒度的偏好:搜索引擎往往需要细粒度切分以便召回,而舆情分析可能希望把专有名词合并成大粒度词。实际操作时建议建立几百条人工标注的基准句,统计错切位置,重点检查歧义片段和未登录词的切分情况,并观察长文档与短文本上的表现差异。只有从业务效果回看该项指标才有决策价值。
中文分词从早期的词典匹配、统计建模,走到今天的深度学习方案,核心始终是在歧义消除和新词发现之间寻找平衡。如果你负责的项目刚起步、数据量有限,可以用双向最大匹配加高质量领域词库快速上线;如果数据积累较充分且对准确率要求高,优先选择预训练模型微调,同时把推理性能和安全兜底方案考虑周全。回到基本原理上理解分词任务,动手前先明确是处理短查询还是长文档、对处理速度是否敏感,再据此挑选架构,往往会少走很多弯路。