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相互運用機能を使用することはできません。