Я использую 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 достаточно умен, чтобы распознать список слов, разделенный запятыми или разделенный запятыми. Он знает, когда не следует использовать английский словарь, и знает, когда игнорировать символы. Как я могу получить аналогичную, более интеллектуальную проверку орфографии в моем программном обеспечении? Есть ли библиотеки, которые предоставляют немного больше интеллекта?
EDIT:
Я не хочу заставлять пользователей устанавливать Microsoft Word на своих компьютерах, поэтому использование COM-взаимодействия не вариант.