中文文本处理的第一步通常是分词。由于中文句子中词与词之间没有明确的空格分隔,机器需要先判断哪些字应该组合成一个词,才能进一步理解语义。分词质量直接关系到后续的搜索、推荐、情感分析等任务的效果,因此在这上面花时间做选型,往往比直接套用复杂模型更划算。
词典分词依赖一份词表和字符串匹配来完成任务,实现简单、速度很快。它的运行机制是照着词表逐一比对,常见做法包括正向最大匹配(从前往后扫描)、逆向最大匹配(从后往前处理)以及双向最大匹配(两者结合)。以"研究生命起源"为例,正向匹配可能得到"研究/生命/起源",但若词表不够精细,也可能产生"研究生/命/起源"这样的误切,此时双向匹配有助于发现并纠正其中的差异。
要让词典法发挥更好的效果,需要留意几个细节:第一,词表必须及时更新,遇到网络新词或行业专业术语时,未收录的词会被拆成单字,导致召回率明显下降;第二,处理长文本时匹配速度会受影响,建议借助哈希表或Trie树来优化查找效率;第三,词典法几乎没有能力识别未登录词,对人名、地名、新出现的专有名词基本无解。它更适合词表覆盖全面且领域相对固定的场景,比如日志关键词提取或商品类目匹配。
统计方法把分词问题转化为给每个字打标签的任务,常用标签包括B(词首)、M(词中)、E(词尾)和S(单字成词)。隐马尔可夫模型(HMM)和条件随机场(CRF)是这一派系的代表技术。HMM通过维特比算法求得概率最高的标签序列,而CRF能够利用更长的上下文信息,不设过强的独立假设,因此在边界识别上更细致,长期以来在传统方法中表现稳健。
统计模型对未登录词有一定的适应能力:当一个生词在语料中出现足够多次,模型能逐步学会把它当作整体来处理。但这依赖充足且领域匹配的训练数据。它相对词典法的短板在于训练调参耗时,推理速度也慢一些。若手头没有像样的标注语料,贸然使用统计模型反而容易得到较差的结果。在某个垂直领域积累了大量文本的团队,可以优先尝试这条路。
深度学习方案在工业应用中越来越普及,典型代表是BiLSTM和BERT这类预训练模型。BiLSTM凭借双向结构捕获上下文信息,比CRF更能应对长距离依赖;BERT经过大规模通用语料预训练,微调后即可在分词任务上获得高分。像"南京市长江大桥"这类歧义句,深度模型能结合语义判断,切出"南京市/长江大桥",而不是错误地切为"南京/市长/江大桥"。
但深度模型的代价相当明显:参数数量庞大、显存占用高、在线推理延迟大,难以直接满足毫秒级响应需求。要投入生产环境,通常需要配合模型蒸馏、量化压缩等手段来减负。此外,它对训练数据的质量敏感,换一个领域后效果可能明显下滑,这一点常常被团队低估。资源充裕且对准确率有严格要求的团队才适合选择它。
选哪种分词方案,不应只盯着准确率看,而应该结合自身业务的特点做权衡。
举几个实际的选型例子:做电商评论情感分析时,新品名和网络用语频繁出现,建议优先考虑统计或深度路线;处理法律文书的精准切分时,若领域语料充足,用CRF配合词典兜底已经足够。反之,面对日志分析、关键词提取这类对速度敏感且数据量大的场景,词典法配合动态更新的词库往往是最务实的选择。
这取决于应用场景。在搜索引擎或在线推荐系统中,响应速度直接影响用户体验,词典法或优化后的统计模型更合适;而在离线文本分析、学术研究或需要精细语义理解的任务里,准确率优先,深度模型更能发挥价值。建议先用速度要求筛掉不合适的方案,再在剩余选项中比较准确率。
不建议直接硬上。统计方法需要一定量的标注数据来训练,深度模型更是如此。如果你手上缺少语料,可以考虑先用词典法搭建基础流程,再逐步收集和标注数据。等到积累了一定规模的数据,再切换到统计或深度方案,这样过渡会更平滑,也更容易控制风险。
很难。不同领域、不同体量的文本对分词的需求差异很大。例如新闻文本用通用词典效果尚可,而医学、法律或金融领域的专有名词大量出现,通用方案往往覆盖不足。实践中更常见的是混合策略:以某一种方法为主导,辅以领域词表或后处理规则来弥补短板,这样能在准确率和成本之间取得较好的平衡。
分词方案的选型没有绝对的优劣,只有适不适合你的场景。如果追求快速上线且词表可控,从词典法起步最稳妥;若已有领域语料并对准确率有较高要求,统计模型是性价比较高的中间选项;深度模型虽然效果领先,但必须评估好资源投入和延迟约束。建议先梳理业务对速度、成本、准确率和未登录词四个维度的真实需求,再结合团队的技术储备做决定,并保留迭代调优的空间,这样每一步都能走得踏实。