2013-06-03 67 views
0

我在Java中使用我的應用程序,我使用Lucene 4.1.0來使用Porter Stemmer方法。 我已閱讀並實施thisLucene 4.1.0 Porter Stemmer無法正常工作

這是我的代碼

import org.apache.lucene.analysis.snowball.*; 
import org.tartarus.snowball.ext.PorterStemmer; 


private String stemmer(String word){ 
     PorterStemmer obj = new PorterStemmer(); 
     obj.setCurrent(word); 
     obj.stem(); 
     return obj.getCurrent(); 
} 

這種方法可行,但波特施特默爾沒有正常工作了一段話,例如:

  1. 源>>源碼
  2. 加上>> coupl
  3. 伴奏>>伴奏

也許是算法中的一個bug? 如何解決這個問題?

+6

這正是porter算法的工作原理,你期望什麼? –

+0

如何解決該錯誤?也許有任何解決方案?謝謝 –

回答

1

Porter Stemmer算法預計將轉換源>> sourc。請閱讀here的更多信息

+0

謝謝你的回答,解決問題要做什麼? –

+0

你到底想幹什麼? – anon

+2

總會有一些情況出現,而且存在過度干擾。也許你正在努力實現的是Lemmatisation。 **詞幹的主要目的是將不同形式的單詞映射到單一形式**,這是搬運工算法的作用。所以它是**不是一個bug **。但是,lemmatisation更復雜。 – anon

0

您可以在porter stemmer的頂部使用字詞建議器。對於word建議,你可以使用「java基礎建議」