private bool CreateStemmer() { switch (mLanguage) { case Language.English: mStemmer = new EnglishStemmer(); return(true); case Language.German: mStemmer = new German2Stemmer(); return(true); case Language.French: mStemmer = new FrenchStemmer(); return(true); case Language.Spanish: mStemmer = new SpanishStemmer(); return(true); case Language.Italian: mStemmer = new ItalianStemmer(); return(true); case Language.Portuguese: mStemmer = new PortugueseStemmer(); return(true); case Language.Danish: mStemmer = new DanishStemmer(); return(true); case Language.Dutch: mStemmer = new DutchStemmer(); return(true); case Language.Finnish: mStemmer = new FinnishStemmer(); return(true); case Language.Norwegian: mStemmer = new NorwegianStemmer(); return(true); case Language.Russian: mStemmer = new RussianStemmer(); return(true); case Language.Swedish: mStemmer = new SwedishStemmer(); return(true); default: return(false); } }
// *** IStemmer interface implementation *** public string GetStem(string word) { Utils.ThrowException(word == null ? new ArgumentNullException("word") : null); try { ISnowballStemmer stemmer = CreateStemmer(); stemmer.SetCurrent(word); stemmer.Stem(); return(stemmer.GetCurrent()); } catch { return(word); } }
/// <summary> /// Processes a string of terms using the Snowball stemming algorithm. /// </summary> /// <param name="text">Input string</param> /// <param name="language">Stemmer language</param> /// <returns>Stemmed terms</returns> public static string ProcessText(string text, SnowballStemmerEnum language) { StringBuilder builder = new StringBuilder(); string result = string.Empty; string stemmedWord; char[] delimiterChars = { ' ' }; string[] tokens = text.Split(delimiterChars); ISnowballStemmer stemmer = SnowballStemmerUtils.GetStemmer(language); foreach (string token in tokens) { stemmedWord = stemmer.Stem(token); builder.AppendFormat("{0} ", stemmedWord); } result = builder.ToString().Trim(); return(result); }
private bool CreateStemmer() { switch (mLanguage) { case Language.English: mStemmer = new EnglishStemmer(); return true; case Language.German: mStemmer = new German2Stemmer(); return true; case Language.French: mStemmer = new FrenchStemmer(); return true; case Language.Spanish: mStemmer = new SpanishStemmer(); return true; case Language.Italian: mStemmer = new ItalianStemmer(); return true; case Language.Portuguese: mStemmer = new PortugueseStemmer(); return true; case Language.Danish: mStemmer = new DanishStemmer(); return true; case Language.Dutch: mStemmer = new DutchStemmer(); return true; case Language.Finnish: mStemmer = new FinnishStemmer(); return true; case Language.Norwegian: mStemmer = new NorwegianStemmer(); return true; case Language.Russian: mStemmer = new RussianStemmer(); return true; case Language.Swedish: mStemmer = new SwedishStemmer(); return true; default: return false; } }