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