您的位置:首页 > 其它

[搜索]波特词干(Porter Streamming)提取算法详解(1)

2014-11-30 16:48 369 查看
英语词汇由两部分构成,词干和词缀,词缀又分前缀和后缀,这里的词干提取仅只去除后缀的操作。

波特词干提取算法的原文在这里

http://tartarus.org/~martin/PorterStemmer/def.txt

先说一些基本定义

小写c代表辅音字母,小写字母v代表元音字母。大写字母C代表一串辅音字母,长度大于0。大写字母V代表一串连续的元音字母,长度大于0.因此,一个单词或者一个单词的一部分,可以表示为如下的四种形式之一。

CVCV ... C

CVCV ... V

VCVC ... C

VCVC ... V

这四种形式可以归纳为一种形式:

[C]VCVC ... [V]

可以进一步表示为如下形式:

 [C](VC){m}[V].

其中方括号表示是可选的,{m}表示前面单词的一部分的重复次数。如下面的一些例子。

 m=0    TR,  EE,  TREE,  Y,  BY.(没有出现)

 m=1    TROUBLE,  OATS,  TREES,  IVY.(出现一次,见黑体部分)

 m=2    TROUBLES,  PRIVATE,  OATENORRERY.(出现两次,见黑体部分)

去除后缀的规则如下形式:

(condition) S1 -> S2

也就是说,如果这个单词的后缀是S1,如果词干满足条件(condition),那么就用S2替换S1,这种形式的描述和CFG的描述一致。这个条件通常是由m决定的,上面已经示例来m。例如:

(m > 1) EMENT ->

条件就是m>1,S1就是ELMENT,S2是空。

如果按照上面的这个规则,那么就可以把单词replacement替换成replace。因为m=2,可以参见黑体部分。

(待续)


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息