你是否正在寻找关于中文分词的内容?让我把最趣味的东西奉献给你:
中文分词技术(中文分词原理)
一、为什么要进行中文分词?
词是最小的能够独立活动的有意义的语言成分,英文单词之间是以空格作为自然分界符的,而汉语是以字为基本的书写单位,词语之间没有明显的区分标记,因此,中文词语分析是中文信息处理的基础与关键。
Lucene中对中文的处理是基于自动切分的单字切分,或者二元切分。除此之外,还有最大切分(包括向前、向后、以及前后相结合)、最少切分、全切分等等。
二、中文分词技术的分类
我们讨论的分词算法可分为三大类:基于字典、词库匹配的分词方法;基于词频度统计的分词方法和基于知识理解的分词方法。
第一类方法应用词典匹配、汉语词法或其它汉语语言知识进行分词,如:最大匹配法、最小分词方法等。这类方法简单、分词效率较高,但汉语语言现象复杂丰富,词典的完备性、规则的一致性等问题使其难以适应开放的文本的分词处理。第二类基于统计的分词方法则基于字和词的统计信息,如把相邻字间的信息、词频及相应的共现信息等应用于分词,由于这些信息是通过调查真实语料而取得的,因而基于统计的分词方法具有较好的实用性。
下面简要介绍几种常用方法:
1).逐词遍历法。
逐词遍历法将词典中的所有词按由长到短的顺序在文章中逐字搜索,直至文章结束。也就是说,不管文章有多短,词典有多大,都要将词典遍历一遍。这种方法效率比较低,大一点的系统一般都不使用。
2).基于字典、词库匹配的分词方法(机械分词法)
这种方法按照一定策略将待分析的汉字串与一个“充分大的”机器词典中的词条进行匹配,若在词典中找到某个字符串,则匹配成功。识别出一个词,根据扫描方向的不同分为正向匹配和逆向匹配。根据不同长度优先匹配的情况,分为最大(最长)匹配和最小(最短)匹配。根据与词性标注过程是否相结合,又可以分为单纯分词方法和分词与标注相结合的一体化方法。常用的方法如下:
(一)最大正向匹配法(MaximumMatchingMethod)通常简称为MM法。其基本思想为:假定分词词典中的最长词有i个汉字字符,则用被处理文档的当前字串中的前i个字作为匹配字段,查找字典。若字典中存在这样的一个i字词,则匹配成功,匹配字段被作为一个词切分出来。如果词典中找不到这样的一个i字词,则匹配失败,将匹配字段中的最后一个字去掉,对剩下的字串重新进行匹配处理……如此进行下去,直到匹配成功,即切分出一个词或剩余字串的长度为零为止。这样就完成了一轮匹配,然后取下一个i字字串进行匹配处理,直到文档被扫描完为止。
其算法描述如下:
(1)初始化当前位置计数器,置为0;
(2)从当前计数器开始,取前2i个字符作为匹配字段,直到文档结束;
(3)如果匹配字段长度不为0,则查找词典中与之等长的作匹配处理。
如果匹配成功,
则,
a)把这个匹配字段作为一个词切分出来,放入分词统计表中;
b)把当前位置计数器的值加上匹配字段的长度;
c)跳转到步骤2);
否则
a)如果匹配字段的最后一个字符为汉字字符,
则
①把匹配字段的最后一个字去掉;
②匹配字段长度减2;
否则
①把匹配字段的最后一个字节去掉;
②匹配字段长度减1;
b)跳转至步骤3);
否则
a)如果匹配字段的最后一个字符为汉字字符,
则当前位置计数器的值加2;
否则当前位置计数器的值加1;
b)跳转到步骤2)。
(二)逆向最大匹配法(ReverseMaximumMatcingMethod)通常简称为RMM法。RMM法的基本原理与MM法相同,不同的是分词切分的方向与MM法相反,而且使用的分词辞典也不同。逆向最大匹配法从被处理文档的末端开始匹配扫描,每次取最末端的2i个字符(i字字串)作为匹配字段,若匹配失败,则去掉匹配字段最前面的一个字,继续匹配。相应地,它使用的分词词典是逆序词典,其中的每个词条都将按逆序方式存放,。在实际处理时,先将文档进行倒排处理,生成逆序文档。然后,根据逆序词典,对逆序文档用正向最大匹配法处理即可。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-7573-1.html
桃子的演技好赞啊
太正确了