我正在使用NHunspell来检查字符串中的拼写错误,代码如下:
var words = content.Split(' ');
string[] incorrect;
using (var spellChecker = new Hunspell(affixFile, dictionaryFile))
{
incorrect = words.Where(x => !spellChecker.Spell(x))
.ToArray();
}
这种方法通常可行,但存在一些问题。例如,如果我正在检查句子“This is a (very good) example”,它会报告“(very”和“good)”拼写错误。或者如果字符串包含时间,如“8:30”,它会将其报告为拼写错误的单词。它还会出现逗号等问题。
Microsoft Word聪明到足以识别时间、分数或逗号分隔的单词列表。它知道什么时候不使用英语字典,并且知道何时应忽略符号。如何在我的软件中获得类似的更智能的拼写检查?是否有任何库提供了更多的智能功能?
编辑: 我不想强迫用户在他们的机器上安装Microsoft Word,因此使用COM interop不是一个选项。