title: Intelligent spell checking
body: <p>I'm using <a href="http://nhunspell.sourceforge.net/" rel="nofollow">NHunspell</a> to check a string for spelling errors like so:</p>
  
  <pre><code>var words = content.Split(' ');
  string[] incorrect;
  using (var spellChecker = new Hunspell(affixFile, dictionaryFile))
  {
      incorrect = words.Where(x =&gt; !spellChecker.Spell(x))
          .ToArray();
  }
  </code></pre>
  
  <p>This generally works, but it has some problems. For example, if I'm checking the sentence "This is a (very good) example", it will report "(very" and "good)" as being misspelled. Or if the string contains a time such as "8:30", it will report that as a misspelled word. It also has problems with commas, etc.</p>
  
  <p>Microsoft Word is smart enough to recognize a time, fraction, or comma-delimited list of words. It knows when not to use an English dictionary, and it knows when to ignore symbols. How can I get a similar, more intelligent spell check in my software? Are there any libraries that provide a little more intelligence?</p>
  
  <p>EDIT:
  I don't want to force users to have Microsoft Word installed on their machine, so using COM interop is not an option.</p>