首页 > 编程 > .NET > 正文

浅析常用分词算法的比较与设想

2020-01-17 23:42:47
字体:
来源:转载
供稿:网友

与基于理解的分词算法和基于统计的分词算法相比,基于文本匹配的算法更加通用。基于文本匹配的算法又称之为“机械分词算法”,他是它是按照一定的策略将待分析的汉字串与一个“充分大的”机器词典中的词条进行配,若在词典中找到某个字符串,则匹配成功,可识别出一个词。按照扫描方向的不同,文本匹配分词方法可以分为正向匹配和逆向匹配两种;按照不同长度优先匹配的情况,可以分为最大(最长)匹配和最小(最短)匹配;按照是否与词性标注过程相结合,又可以分为单纯分词方法和分词与标注相结合的一体化方法。

  常用的几种机械分词方法如下:

  1) 正向最大匹配法(由左到右的方向)

  2) 逆向最大匹配法(由右到左的方向)

  3) 最少切分(使每一句中切出的词数最小)。

  其他的还有将上述各种方法相互组合形成的分词算法,例如,可以将正向最大匹配方法和逆向最大匹配方法结合起来构成双向匹配法。由于汉语单字成词的特点,正向最小匹配和逆向最小匹配一般很少使用。本文中着重讨论正向最大匹配法和逆向最大匹配法。

  由于机械分词算法的准确性取决于算法的准确性与词库完备性两个方面。在本文中设想词库充分大,包含需要的词语。

  一般说来,逆向匹配的切分精度略高于正向匹配,遇到的歧义现象也较少。统计结果表明,单纯使用正向最大匹配的错误率为1/169,单纯使用逆向最大匹配的错误率为1/245。但这种精度还远远不能满足实际的需要。实际使用的分词系统,都是把机械分词作为一种初分手段,还需通过利用各种其它的语言信息来进一步提高切分的准确率。

  我们先看两句中文:

  1) 长春市长春节致辞

  2) 长春市长春药店

  我们假使词库中包含如下词语“长春”,“长春市”,“市长”,“春节”,“致辞”,“春药”,“药店”,“春药店”等。

  用正向最大匹配法得到的结果是:

  长春市/长春/节/致辞(分成4个词,其中“节”未匹配到,语义错误)

  长春市/长春/药店(分成3个词,都匹配到,语义正确)

  用逆向最大匹配法得到的结果是:

  长春/市长/春节/致辞(分成4个词,都匹配到,语义正确)

  长春/市长/春药店(分成3个词,都匹配到,语义错误)

  从此,我们可以看到正向最大匹配法和逆向最大匹配法的利弊所在:都能够正确解释部分中文,同时都有一些无法区分。

  是否可以考虑将这两种匹配法结合起来,各取所长呢?答案是肯定的。

  首先,我们对同一个词用正向最大匹配法和逆向最大匹配法分别切词,再将结果进行比较。如切分“长春市长春节致辞”,因为正向最大匹配法有一个词语无法匹配,故选择使用逆向最大匹配法作为结果。

  其次,我们可以引入词频的概念,及每一个词语都会根据其在汉语中出现的概率获得一个词频值。我们对“长春市长春药店”进行两种方法的分词,但是因为逆向最大匹配法得到的“春药店”的词频相比于其他词语的词频要低很多。我们可以认为这种分词方法得到的结果不通用,取正向最大匹配法得结果。

  当然,还可以将其他的一些方法(如扫描标志法,词性检查法等)与这两种匹配法相结合,以获得更好更准确的分词效果。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表