Snowball Stemming:定义区域

时间:2015-08-06 06:13:36

标签: nlp stemming linguistics porter-stemmer snowball

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

  

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

我的问题是,为什么&#34; kled&#34;在春天和#34; harist&#34;在圣餐中定义为R1?我认为正确的结果将是&#34;墨水&#34;和&#34; arist&#34;?

1 个答案:

答案 0 :(得分:1)

你应该再次阅读这个定义,它说:

  

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

不是: 后跟 一个元音。

for file in test.*.csv ; do time=${file#test.} # Remove "test" on the left. time=${time%.csv} # Remove ".csv" on the right. time=${time:0:4}-${time:4:2}-${time:6:2}' '${time:8:2}:${time:10:2} sed "s/^/$time,/" "$file" # Append time to each line of the file. rm "$file" # This removes the original file. Have you made a backup? done > one-file.csv 中,元音后面的第一个非元音是sprinkled,因此后面的区域为n

对于kled来说,元音后面的第一个非元音是eucharist,所以后面的区域是c