StopWords.cs
上传用户:huiyue
上传日期:2022-04-08
资源大小:1429k
文件大小:3k
源码类别:

搜索引擎

开发平台:

ASP/ASPX

  1. using System;
  2. namespace Searcharoo.Common
  3. {
  4.     public class NoStopping : IStopper
  5.     {
  6.         /// <summary>
  7.         /// Basic 'noop' implementation
  8.         /// </summary>
  9.         /// <param name="word">Word to check against the Stop list</param>
  10.         /// <returns>The input word is always returned unchanged</returns>
  11.         public virtual string StopWord(string word)
  12.         {
  13.             return word;
  14.         }
  15.     }
  16.     /// <summary>
  17.     /// The most basic 'stop word' processor, just ignores
  18.     /// any and ALL words of one or two characters.
  19.     /// </summary>
  20.     /// <remarks>
  21.     /// Examples of words ignored:
  22.     /// a of we in or i to 
  23.     /// </remarks>
  24.     public class ShortStopper : IStopper
  25.     {
  26.         public virtual string StopWord(string word)
  27.         {
  28.             if (word.Length <= 2)
  29.             {
  30.                 return String.Empty;
  31.             }
  32.             else
  33.             {
  34.                 return word;
  35.             }
  36.         }
  37.     }
  38.     /// <summary>
  39.     /// List of Stop words in a switch statement; feel free to
  40.     /// add additional words to this list. 
  41.     /// Note: it only checks words that are 3 or 4 characters long,
  42.     /// as the base() method already excludes 1 and 2 char words.
  43.     /// </summary>
  44.     /// <remarks>
  45.     /// Examples of words ignored:
  46.     /// the and that you this for but with are have was out not
  47.     /// </remarks>
  48.     public class ListStopper : ShortStopper
  49.     {
  50.         public override string StopWord(string word)
  51.         {
  52.             word = base.StopWord(word);
  53.             if ((word != String.Empty) && (word.Length <= 4))
  54.             {
  55.                 switch (word.ToLower())
  56.                 {
  57.                     case "the":
  58.                     case "and":
  59.                     case "that":
  60.                     case "you":
  61.                     case "this":
  62.                     case "for":
  63.                     case "but":
  64.                     case "with":
  65.                     case "are":
  66.                     case "have":
  67.                     case "was":
  68.                     case "out":
  69.                     case "not":
  70.                         return String.Empty;
  71.                     // break;
  72.                 }
  73.             }
  74.             return word;
  75.         }
  76.     }
  77.     /// <summary>
  78.     /// TODO: implement a Stopper that will read in the word list
  79.     /// from a file. 
  80.     /// http://snowball.tartarus.org/algorithms/english/stop.txt
  81.     /// </summary>
  82.     [Obsolete("well, not obsolete, just not written yet")]
  83.     public class FileStopper : IStopper
  84.     {
  85.         /// <summary>
  86.         /// Because this method will use an intelligent list to filter
  87.         /// out stop words, it probably won't need to inherit from the
  88.         /// dodgy implementations above.
  89.         /// </summary>
  90.         public string StopWord(string word)
  91.         {
  92.             throw new NotImplementedException();
  93.         }
  94.     }
  95. }