目前中文分词主要有两种思路:查词典和字标注。首先,查词典的方法有:机械的最大匹配法、最少词数法,以及基于有向无环图的最大概率组合,还有基于语言模型的最大概率组合,等等。查词典的方法简单高效(得益于动态规划的思想),尤其是结合了语言模型的最大概率法,能够很好地解决歧义问题,但对于中文分词一大难度——未登录词(中文分词有两大难度:歧义和未登录词),则无法解决;为此,人们也提出了基于字标注的思路,所谓字标注,就是通过几个标记(比如4标注的是:single,单字成词;begin,多字词的开头;middle,三字以上词语的中间部分;end,多字词的结尾),把句子的正确分词法表示出来。这是一个序列(输入句子)到序列(标记序列)的过程,能够较好地解决未登录词的问题,但速度较慢,而且对于已经有了完备词典的场景下,字标注的分词效果可能也不如查词典方法
暂停查次词典方法的介绍,转而介绍字标注的方法,前面已经提到过,字标注是通过给句子中每个打上标签的思路来进行分词,比如之前提到过的,通过4标签来进行标注(single ,单字成词,begin,多字词的开头,middle,三字以上词语的中间部分,end,多字词的结尾,均只取第一个字母),这样,“为人民服务”就可以标注为“sbebe”了。4标注不是唯一的标注方式,类似地还有6标注,理论上来说,标注越多会越精细,理论上来说效果也越好,但标注太多也可能存在样本不足的问题,一般常用的就是4标注和6标注。
值得一提的是,这种通过给每个字打标签,进而将问题转化为讯列的学习,不仅仅是一种分词方法,还是一种解决大量自然语言问题的思路,比如命名实体识别等任务,同样用标注的方法来做。回到分词上来,通过字标注来进行分词的模型有隐马尔可夫模型,最大熵模型,条件随机场模型,它们在精度上都是递增的,据说目前公开测试中分词效果最好的是4标注的CRF,然而在本文中,我们要讲解的是最不精确的HMM,因为在我看来,它并非一个特定的模型,而是解决一大类问题的通用思想,一种简化问题的学问。