package info.ephyra.nlp; import org.tartarus.snowball.ext.englishStemmer; /** * This class provides an interface to the Snowball stemmer for the English * language. * * @author Nico Schlaefer * @version 2006-04-21 */ public class SnowballStemmer { /** Snowball stemmer for the English language. */ private static englishStemmer stemmer; /** * Creates the stemmer. */ public static void create() { stemmer = new englishStemmer(); } /** * Stems a single English word. * * @param word the word to be stemmed * @return stemmed word */ public static String stem(String word) { stemmer.setCurrent(word); stemmer.stem(); return stemmer.getCurrent(); } /** * Stems all tokens in a string of space-delimited English words. * * @param tokens string of tokens to be stemmed * @return string of stemmed tokens */ public static String stemAllTokens(String tokens) { String[] tokenArray = tokens.split(" "); String stemmed = ""; if (tokenArray.length > 0) stemmed += stem(tokenArray[0]); for (int i = 1; i < tokenArray.length; i++) stemmed += " " + stem(tokenArray[i]); return stemmed; } }