Advertisement
Guest User

Untitled

a guest
Jun 24th, 2019
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.52 KB | None | 0 0
  1.         public static StemmedWord SchinkeStemmer(string word) {
  2.             StringBuilder stembuilder = new StringBuilder(word.ToLower());
  3.  
  4.             stembuilder.Replace('j', 'i');
  5.             stembuilder.Replace('v', 'u');
  6.  
  7.             //Remove -que suffix
  8.             if (stembuilder.ToString().EndsWith("que")) {
  9.                 //Check for special case.
  10.                 if (conj_dir_write.Contains(stembuilder.ToString())) {
  11.                     return new StemmedWord(stembuilder.ToString(), stembuilder.ToString());
  12.                 }
  13.                 //Remove "que" suffix.
  14.                 else {
  15.                     stembuilder.Remove(stembuilder.Length - 3, 3);
  16.                 }
  17.  
  18.                 //Check and remove noun suffix
  19.                 string stemmed_noun = "";
  20.                 foreach (string noun_suffix in noun_suffixes) {
  21.                     if (stembuilder.ToString().EndsWith(noun_suffix) ) {
  22.                         if (stembuilder.Length - noun_suffix.Length >= 2) {
  23.                             stemmed_noun = stembuilder.ToString().Remove(stembuilder.Length - noun_suffix.Length);
  24.                         }
  25.                         break;
  26.                     }
  27.                 }
  28.  
  29.                 string stemmed_verb = "";
  30.                 //New StringBuilder for verb.
  31.                 foreach (string verb_suffix in verb_suffixes) {
  32.                     if (stembuilder.ToString().EndsWith(verb_suffix)) {
  33.                         if (verb_i_suffixes.Contains(verb_suffix)) {
  34.                             stemmed_verb = stembuilder.ToString().Remove(stembuilder.Length - verb_suffix.Length) + "i";
  35.                         }
  36.                         else if (verb_bi_suffixes.Contains(verb_suffix)) {
  37.                             stemmed_verb = stembuilder.ToString().Remove(stembuilder.Length - verb_suffix.Length) + "bi";
  38.                         }
  39.                         else if (verb_suffix == "ero") {
  40.                             stemmed_verb = stembuilder.ToString().Remove(stembuilder.Length - verb_suffix.Length) + "eri";
  41.                         }
  42.                         else {
  43.                             stemmed_verb = stembuilder.ToString().Remove(stembuilder.Length - verb_suffix.Length);
  44.                         }
  45.  
  46.                         if (stemmed_verb.Length < 2) {
  47.                             stemmed_verb = "";
  48.                         }
  49.                         break;
  50.                     }
  51.                 }
  52.  
  53.                 return new StemmedWord(stemmed_verb, stemmed_noun);
  54.             }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement