`
m635674608
  • 浏览: 4949055 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

mmseg分词算法

 
阅读更多

MMSeg算法说明

 

首先来理解一下chunk,它是MMSeg分词算法中一个关键的概念。Chunk中包含依据上下文分出的一组词和相关的属性,包括长度(Length)、 平均长度(Average Length)、标准差的平方(Variance)和自由语素度(Degree Of Morphemic Freedom)。下面列出了这4个属性:

 

属性 含义
长度(Length) chuck中各个词的长度之和
平均长度(Average Length) 长度(Length)/词数
标准差的平方(Variance) 同数学中的定义
自由语素度(Degree Of Morphemic Freedom) 各单字词词频的对数之和

 

 

 


Chunk中的4个属性只有在需要该属性的值时才进行计算,而且只计算一次。

 

其次来理解一下规则(Rule),它是MMSeg分词算法中的又一个关键的概念。实际上我们可以将规则理解为一个过滤器(Filter),过滤掉不符合要求的chunk。MMSeg分词算法中涉及了4个规则:

 

  • 规则1:取最大匹配的chunk (Rule 1: Maximum matching)
  • 规则2:取平均词长最大的chunk (Rule 2: Largest average word length)
  • 规则3:取词长标准差最小的chunk (Rule 3: Smallest variance of word lengths)
  • 规则4:取单字词自由语素度之和最大的chunk (Rule 4: Largest sum of degree of morphemic freedom of one-character words)

 

这4个规则符合汉语成词的基本习惯。

 

再来理解一下匹配方式复杂最大匹配(Complex maximum matching):

 

复杂最大匹配先使用规则1来过滤chunks,如果过滤后的结果多于或等于2,则使用规则2继续过滤,否则终止过滤过程。如果使用规则2得到的过滤结果多 于或等于2,则使用规则3继续过滤,否则终止过滤过程。如果使用规则3得到的过滤结果多于或等于2,则使用规则4继续过滤,否则终止过滤过程。如果使用规 则 4得到的过滤结果多于或等于2,则抛出一个表示歧义的异常,否则终止过滤过程。

 

最后通过一个例句--“研究生命起源"来简述一下复杂最大匹配的分词过程。MMSeg分词算法会得到7个chunk,分别为:

 

编号 chunk 长度
0 研_究_生 3
1 研_究_生命 4
2 研究_生_命 4
3 研究_生命_起 5
4 研究_生命_起源 6
5 研究生_命_起 5
6 研究生_命_起源 6

 

使用规则1过滤后得到2个chunk,如下:

 

编号 chunk 长度
4 研究_生命_起源 6
6 研究生_命_起源 6

 

计算平均长度后为:

 

编号 chunk 长度 平均长度
4 研究_生命_起源 6 2
6 研究生_命_起源 6 2

 

使用规则2过滤后得到2个chunk,如下:

 

编号 chunk 长度 平均长度
4 研究_生命_起源 6 2
6 研究生_命_起源 6 2

 

计算标准差的平方后为:

 

编号 chunk 长度 平均长度 标准差的平方
4 研究_生命_起源 6 2 0
6 研究生_命_起源 6 2 4/9

 

使用规则3过滤后得到1个chunk,如下:

 

编号 chunk 长度 平均长度 标准差的平方
4 研究_生命_起源 6 2 0

 

匹配过程终止。最终取“研究”成词,以相同的方法继续处理“生命起源”。

 

分词效果:

 

研究_生命_起源_
研究生_教育_

 

参考地址:

 

http://blog.csdn.net/sunlylorn/article/details/7652737

http://blog.csdn.net/acceptedxukai/article/details/7390300

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics