我正在使用NHunspell来检查字符串中的拼写错误,如下所示:
var words = content.Split(' ');
string[] incorrect;
using (var spellChecker = new Hunspell(affixFile, dictionaryFile))
{
incorrect = words.Where(x => !spellChecker.Spell(x))
.ToArray();
}
这通常有效,但它有一些问题。例如,如果我检查句子“这是一个(非常好的)示例”,它会报告“(非常”和“好)”拼写错误。或者,如果字符串包含诸如“8:30”之类的时间,它会将其报告为拼写错误的单词。它也有逗号等问题。
Microsoft Word 足够智能,可以识别时间、分数或逗号分隔的单词列表。它知道何时不使用英语词典,也知道何时忽略符号。如何在我的软件中获得类似的、更智能的拼写检查?有没有提供更多智能的库?
编辑:我不想强迫用户在他们的机器上安装 Microsoft Word,所以使用 COM 互操作不是一个选项。