3

我试图了解 snoball 词干算法。该算法使用两个区域 R1 和 R2,定义如下:

R1 是元音后面的第一个非元音之后的区域,如果没有这样的非元音,R1 是单词末尾的空区域。

R2 是 R1 中元音之后的第一个非元音之后的区域,或者如果没有这样的非元音,则为单词末尾的空区域。

http://snowball.tartarus.org/texts/r1r2.html

例子是

    b   e   a   u   t   i   f   u   l
                      |<------------->|    R1
                              |<----->|    R2

   b   e   a   u   t   y
                     |<->|    R1
                       ->|<-  R2

   a   n   i   m   a   d   v   e   r   s   i   o   n
        |<----------------------------------------->|    R1
                |<--------------------------------->|    R2

   s   p   r   i   n   k   l   e   d
                     |<------------->|    R1
                                   ->|<-  R2

    e   u   c   h   a   r   i   s   t
            |<--------------------->|    R1
                        |<--------->|    R2

我的问题是,为什么 springkled 中的“kled”和圣餐中的“harist”被定义为 R1?我认为正确的结果是“inkled”和“arist”?

4

1 回答 1

1

您应该再次阅读定义,它说:

R1 是元音之后的第一个非元音之后的区域

不:后跟一个元音。

sprinkled中,元音后面的第一个非元音是n,所以后面的区域是kled

同样eucharist,元音后面的第一个非元音是c,所以后面的区域是harist

于 2015-08-06T07:20:42.953 回答