2

我正在做一个视频处理项目,在该项目中,我从作为输入的视频中提取文本并将该文本保存在文本文件中。我有包含垃圾文本和单词的文本,我现在需要从生成文本并将它们转换为标签?任何人都可以建议可用于此的 API/算法吗?

4

2 回答 2

1

您可以查看Apache OpenNLP(自然语言处理)和 C# 衍生的SharpNLP

于 2013-03-29T21:06:46.853 回答
0

您可以将 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# 项目集成的简单方法

于 2013-10-18T19:25:18.007 回答