从C中删除后缀或前缀并使用C#中的词干化或词形还原来获取词根

时间:2017-06-12 14:34:58

标签: c# porter-stemmer

我们希望尝试自动删除后缀(在某些情况下为前缀),以便找到“根词”或给定单词的词干。 我们几乎总能找到相同单词的变体,例如要求,要求,要求,要求。所有人都有"要求" 的共同点。 所以它应该返回"要求"使用 Stemmers'算法

我们已尝试使用 Stemmers.Net ,但它提供的输出错误如下:

  • 例外 - 除了
  • 没什么 - 不是
  • 阻止 - 阻止
  • 临床 - 诊所
  • 披露, - 披露
  • 收集,收集,

但它应该显示如下:

  • 例外 -

  • 除外
  • 没什么 - 没什么

  • 阻止 - 阻止

  • 临床 - 诊所

  • 披露, - 披露

  • 收集, - 收集

有人可以帮助我们吗?

 class Program
{
    static void Main(string[] args)
    {
        string strStemPhrase = @"Exception Nothing in this subsection prevents the sponsor of a clinical trial from voluntarily disclosing, 
                                    collecting, or reporting information to the Food and Drug Administration ";

        string[] strStemmedWords = strStemPhrase.Split(new[] { " " }, StringSplitOptions.None);

        TestStemmer(new EnglishStemmer(), strStemmedWords);                 
    }

    private static void TestStemmer(IStemmer stemmer, params string[] words)
    {
        Console.WriteLine("Stemmer: " + stemmer);
        foreach (string word in words)
        {
            Console.WriteLine(word + " --> " + stemmer.Stem(word));
        }
    }
}

0 个答案:

没有答案