目前分词技术的一些算法 目前对于分词技术存在三大类方法: 1.基于机械匹配(基于词典、词库或者也叫基于字符串匹配),主要是先生成一个词库,按照词库来分。 (1)从扫描的方向有正向匹配和逆向匹配; (2)从分词长度不同的方向有最大匹配和最小匹配; (3)从是否与词性标注过程相结合的角度,又可以分为单纯分词方法和分词与标注相结合的一体化方法。 但是最常用的是正向最大匹配(MM)、逆向最大匹配方法(RMM)和最少切分法(使每一句中切出的词数最小)。还可以将上述的MM和RMM方法结合起来构成双向匹配法。 因为汉语有单字成词的特点,所以正向和逆向最小匹配一般很少使用。 一般来说,逆向匹配的切分精度高于正相匹配的切分精度,遇到的歧义现象也比较少。统计结果表明,单纯使用正向最大匹配的错误率为1/169,单纯使用逆向最大匹配的错误率为1/245。但这种精度还远远不能满足实际的需要。实际使用的分词系统,都是把机械分词作为一种初分手段,结合其他各种语言信息来进一步提高切分的准确率。 改进机械匹配的方法一般有两种: (a) 改进扫描方式,称为特征扫描或标志切分。优先在待分析的字符串中识别和切分出一些带有明显特征的词,然后再以这些词作为断点,将原字符串切分为较小的串来进行机械分词,从而减小了匹配的错误率。 (b)分词和词性标注结合。利用丰富的词类信息对分词决策提供帮助,与此同时,在词性标注的过程中会对分词结果进行检验与调整,从而极大地提高了切分的准确率。 2.基于统计(无词典),对词语才分,达到一定的阈值才算一个词语。主要有最大熵模型(ME)、N-gram模型(主要是bi-gram和tri-gram模型)和隐马尔可夫模型(HMM)。 词是稳定的字之间的组合。因此在上下文中,相邻的词同时出现的次数越多,就越有可能构成一个词。因此字与字相邻出现的频率或者概率能够较好的反应成词的可信度,这就是基于统计方法的思想。 基于统计的分词方法对语料中相邻共现的各个字组合出现的频度进行统计,计算它们的互现信息。互现信息体现了汉字之间结合关系的紧密程度,所以可以先定义两个字的互现信息然后计算这两个字相邻出现的概率。 当这两个字相邻共现的概率(词组频度)高于某一个阈值时,便可认为这两个字可能构成一个词。这种方法只需要对语料中的词组频度进行统计,不需要切分词典。但是也有一定的局限性,因为经常会出现一些词组频度高但又不是词组的组合。比如:之一,你的,我的,许多的等等。 因为基于统计的分词方法对于常用词的识别精度差,所以最常用的方法就是将基于词典和基于统计的的方法结合起来。在实际运用当中用分词词典(常用词词典)进行串匹配分词,同时又使用统计的分词方法识别一些新的词。即串频统计和串匹配结合起来,既发挥了匹配分词切分速度快、效率高的特点,又利用了无词典分词结合上下文、自动消除歧义的特点。 还有一种方法是基于统计的机器学习方法。首先给出了大量已经进行了分词的文本,然后利用统计机器学习模型学习词语切分的规律(称为训练),从而实现对未知文本的切分。汉语中各个字做词语的能力是不同的,而且许多字常常作为前缀或者后缀出现。结合两个相邻字是否成词的信息,就可以得到许多跟分词有关的知识。这种方法就是充分利用了汉语组词的规律来分词。但是该方法最大的缺点是要预先准备好大量分好词的语料作支撑,而且时空开销大。 3.基于理解(规则)主要从语义的角度来理解。比如BP神经网络。这种分词方法通过让计算机模拟人对句子的理解,达到识别词的效果。其基本思想就是在分词的同时进行句法分析和语义分析,利用句法信息和语义信息来处理歧义现象。基于理解的分词方法包括三个部分:分词子系统、句法语义子系统、总控部分。在总控部分的协调下,分词子系统可以获得有关词、句子等的句法和语义信息,从而可以对分词的歧义来进行判断,即这种分词方法模拟了人堆句子的理解过程。因为该分词方法需要使用大量的语言知识和信息,而汉语语言知识又比较笼统和复杂,所以很难将各种语言信息组织起来供机器直接读取。目前基于理解的分词方法仍处在试验阶段。 等下回去画张图出来估计更形象一些。图画出来了,其实存在一些疑问:(A)基于统计的学习方法中那么多的方法,它们之间的区别和联系是什么?(B)一个分支中的算法可以窜到另一个分支中去吗?怎么刚刚看到一篇论文说"分词和词性标注"又属于统计的学习方法了呢?(C)里面很多的算法还不是很熟悉,需要进行实践才能得出结论.总之,感觉NLP进行了几十年,感觉很多的技术还是不成熟,确实还有很长的路要走.
自然语言处理学习笔记(004)
最新推荐文章于 2024-11-15 13:52:14 发布