常见的中文分词方法

常见的中文分词方法

1.基于规则的方法(字符串匹配、机械分词)


    定义:按照一定规则将待分析的汉字串与词典中的词条进行匹配,找到则切分,否则不予切分。按照匹配切分的方式,主要有正向最大匹配方法、逆向最大匹配方法和双向最大匹配三种方法。

1.1正向最大匹配方法


    正向最大匹配方法(Maximum Match Method, MM法):假定分词词典中的最长词有i个汉字字符,则用被处理文档的当前字串中的前i个字作为匹配字段,查找字典。若字典中存在这样的一个i字词,则匹配成功,匹配字段被作为一个词切分出来。如果词典中找不到这样的一个i字词,则匹配失败,将匹配字段中的最后一个字去掉,对剩下的字串重新进行匹配处理。如此进行下去,直到匹配成功,即切分出一个词或剩余字串的长度为零为止。这样就完成了一轮匹配,然后取下一个i字字串进行匹配处理,直到文档被扫描完为止。
例如:待分析文本为:我们在野生动物。假设词典中最长词长度为7。则从前往后取词7-1:
第1次:“我们在野生动物”,扫描7字词典,无
第2次:“我们在野生动”,扫描6字词典,无
。。。。

第6次:“我们”,扫描2字词典,有
扫描中止,输出第1个词为“我们”,去除第1个词后开始第2轮扫描,即:

第2轮扫描:
第1次:“在野生动物园玩”,扫描7字词典,无
第2次:“在野生动物园”,扫描6字词典,无
。。。。

第6次:“在野”,扫描2字词典,有
依次类推,直到扫描终止。

1.2逆向最大匹配方法


    逆向最大匹配方法(Reverse Maximum Match Method, RMM法):其基本原理与MM发相同,不同的是切分的方向与MM发相反。相对于正向匹配,该方法可以适当提高精确度,即RMM法比MM法误差要小。
举个例子:待分析文本为:我们在野生动物。假设词典中最长词长度为7。则从后往前取词7-1:
第1轮扫描:“在野生动物园玩”
第1次:“在野生动物园玩”,扫描7字词典,无
第2次:“野生动物园玩”,扫描6字词典,无
。。。。
第7次:“玩”,扫描1字词典,有
扫描中止,输出“玩”,单字字典词加1,开始第2轮扫描
第2轮扫描:“们在野生动物园”
第1次:“们在野生动物园”,扫描7字词典,无
第2次:“在野生动物园”,扫描6字词典,无
第3次:“野生动物园”,扫描5字词典,有
扫描中止,输出“野生动物园”,开始第3轮扫描
…..
第4轮扫描:“我们”
第1次:“我们”,扫描2字词典,有
扫描中止,输出“我们”,整体扫描结束。
逆向最大匹配法,最终切分结果为:“我们/在/野生动物园/玩”

1.3双向最大匹配方法


    正向最大匹配法和逆向最大匹配法,都有其局限性,我举得例子是正向最大匹配法局限性的例子,逆向也同样存在(如:长春药店,逆向切分为“长/春药店”),因此有人又提出了双向最大匹配法,双向最大匹配法。即,两种算法都切一遍,然后根据大颗粒度词越多越好,非词典词和单字词越少越好的原则,选取其中一种分词结果输出。
如:“我们在野生动物园玩”
正向最大匹配法,最终切分结果为:“我们/在野/生动/物/园/玩”,其中,两字词3个,单字字典词为2,非词典词为1。

逆向最大匹配法,最终切分结果为:“我们/在/野生动物园/玩”,其中,五字词1个,两字词1个,单字字典词为2,非词典词为0。
非字典词:正向(1)>逆向(0)(越少越好)

单字字典词:正向(2)=逆向(2)(越少越好)

总词数:正向(6)>逆向(4)(越少越好)
因此最终输出为逆向结果。

2.基于统计的方法词


    其主要思想是,在上下文中,相邻的字同时出现的次数越多,就越可能构成一个词。因此,字与字相邻出现的概率能较好的反应词的可信度。其步骤一般分为:
(1)建立统计语言模型。
(2)对句子进行单词划分,然后对划分结构进行概率计算,获得概率最大的分词方式。

2.1 N-gram模型(N元模型)

    模型基于这样一种假设,第n个词的出现只与前面N-1个词相关,而与其它任何词都不相关,整句的概率就是各个词出现概率的乘积 。

P ( t ) = p ( w 1 ) p ( w 2 | w 1 ) p ( w 3 | w 1 w 2 ) . . . p ( w n | w 1 w 2 . . . w n 1 )

其中t为一个句子,由词 w 1 , w 2 . . . w n 组成。
当n=1时称为一元模型。此时存在参数空间过大和数据系数严重的问题。此时,我们引入马尔科夫假设:一个词的出现仅仅依赖于它前面出现有限的一个或者几个词。当n=2时,一个词的出现仅依赖与他前面的一个词,这种模型称为二元模型(bigram)。此时,

P ( t ) = p ( w 1 ) p ( w 2 | w 1 ) p ( w 3 | w 2 ) . . . p ( w n | w n 1 )

2.2 HMM模型

    隐马尔科夫模型是将分词作为字在字符串中的序列标注任务来实现的。其基本思路是:每个字在构造一个特定的词语时都占据一个确定的构词位置,目前每个字最多只有四个构词位置。

猜你喜欢

转载自blog.csdn.net/Cuixinyang19_/article/details/82153586
今日推荐