使用c#或任何开源文本挖掘API从文本文件中分离有意义的单词

本文关键字:文件 分离 有意义 单词 文本 任何 开源 API 文本挖掘 使用 | 更新日期: 2023-09-27 18:06:27

我正在研究一个视频处理项目,其中我从给定的视频中提取文本作为输入并将该文本保存在文本文件中。我有垃圾文本以及文字的文本,我现在需要从生成的文本中分离出有意义的文字,并将其转换为标签?谁能建议API/算法,可以用于此?

使用c#或任何开源文本挖掘API从文本文件中分离有意义的单词

你可以看看Apache的OpenNLP(自然语言处理)和c#衍生的SharpNLP

您可以将SharpNLP与SharpEntropy.dll和OpenNLP.dll以及以下代码片段一起使用。

private OpenNLP.Tools.Tokenize.EnglishMaximumEntropyTokenizer mTokenizer;
private string[] Tokenize(string text)
{
    if (mTokenizer == null)
    {
        mTokenizer = new OpenNLP.Tools.Tokenize.EnglishMaximumEntropyTokenizer(mModelPath + "EnglishTok.nbin");
    }
    return mTokenizer.Tokenize(text);
}

现在您将拥有一个令牌字符串数组。我指的是包含所有数据的字符串数组。垃圾可能包括在内。现在您只需要分离有意义的标记。为此,你可以使用NHunspell.dll

public list<string> validate(string[] tokens)
{
      Hunspell hunspell = new Hunspell("en_US.aff", "en_US.dic");
      List<string> valid_tokens = new List<string>();
      foreach (string token in tokens)
      {
           if (!hunspell.Spell(token))
           {
                valid_tokens.Add(token);
           }
      }
      hunspell.Dispose();
      return valid_tokens;
}
现在您将有一个列表valid_tokens,其中只包含具有英语含义的有效令牌。希望这能解决你的问题。

要一步一步地将SharpNLP集成到Visual Studio项目中,请阅读我写的这篇详细的文章。SharpNLP与Visual Studio c#项目集成的简单方法