本文共 1621 字,大约阅读时间需要 5 分钟。
最近看了一下分词算法的东西,整理如下:
下面介绍的分词算法中最简单的正向最大匹配和反向最大匹配。
这种两种方法都是机械分词方法,它是按照一定的策略将待分析的汉字串与一个”充分大的”机器词典中的词条进行配,若在词典中找到某个字符串,则匹配成功(识别出一个词)。按照扫描方向的不同,串匹配分词方法可以分为正向匹配和逆向匹配;按照不同长度优先匹配的情况,可以分为最大(最长)匹配和最小(最短)匹配;按照是否与词性标注过程相结合,又可以分为单纯分词方法和分词与标注相结合的一体化方法。常用的几种机械分词方法如下:1)正向最大匹配法(由左到右的方向);2)逆向最大匹配法(由右到左的方向);3)最少切分(使每一句中切出的词数最小)。还可以将上述各种方法相互组合,例如,可以将正向最大匹配方法和逆向最大匹配方法结合起来构成双向匹配法。由于汉语单字成词的特点,正向最小匹配和逆向最 小匹配一般很少使用。一般说来,逆向匹配的切分精度略高于正向匹配,遇到的歧义现象也较少。统计结果表明,单纯使用正向最大匹配的错误率为1/169,单 纯使用逆向最大匹配的错误率为1/245。但这种精度还远远不能满足实际的需要。实际使用的分词系统,都是把机械分词作为一种初分手段,还需通过利用各种 其它的语言信息来进一步提高切分的准确率。一种方法是改进扫描方式,称为特征扫描或标志切分,优先在待分析字符串中识别和切分出一些带有明显特征的词,以这些词作为断点,可将原字符串分为较小的串 再来进机械分词,从而减少匹配的错误率。另一种方法是将分词和词类标注结合起来,利用丰富的词类信息对分词决策提供帮助,并且在标注过程中又反过来对分词 结果进行检验、调整,从而极大地提高切分的准确率定义比较抽象,举个例子来说明正向最大匹配和反向最大匹配。
例子:’今天来了许多新同事’
1.正向最大匹配方式,最大长度为5今天来了许今天来了今天来今天 ====》 得到一个词–今天来了许多新来了许多来了许来了来 ====》 得到一个词–来了许多新同了许多新了许多了许了 ====》 得到一个词–了许多新同事许多新同许多新许多 ====》得到一个词– 许多新同事新同新 ====》得到一个词– 新同事 ====》得到一个词– 同事最后正向最大匹配的结果是:
/今天/来/了/许多/新/同事/
2.反向最大匹配方式,最大长度为5
许多新同事多新同事新同事同事 ====》得到一个词– 同事来了许多新了许多新许多新多新新 ====》得到一个词– 新天来了许多来了许多了许多许多 ====》得到一个词– 许多今天来了天来了来了了 ====》得到一个词– 了今天来天来来 ====》得到一个词– 来今天 ====》得到一个词– 今天最后反向最大匹配的结果是:
/今天/来/了/许多/新/同事/
正向最大匹配和反向最大匹配的结果并不一定相同
例子:’我一个人吃饭’
1.正向最大匹配方式,最大长度为5我一个人吃我一个人我一个我一我 ====》得到一个词– 我一个人吃饭一个人吃一个人一个 ====》得到一个词– 一个人吃饭人吃人 ====》得到一个词– 人吃饭 ====》得到一个词– 吃饭最后正向最大匹配的结果是:
/我/一个/人/吃饭/
2.反向最大匹配方式,最大长度为5
一个人吃饭个人吃饭人吃饭吃饭 ====》得到一个词– 吃饭我一个人一个人个人 ====》得到一个词– 个人我一一 ====》得到一个词– 一我 ====》得到一个词– 我最后反向最大匹配的结果是:
/我/一/个人/吃饭/
这次两种方式的结果就不一致了。
原文链接:
转载地址:http://tjkqb.baihongyu.com/