В платформе .NET нет ничего, что помогло бы вам с этим из коробки.
Наиболее распространенными орфографическими ошибками являются те, в которых буквы являются приличным фонетическим представлением слова, но не являются правильным написанием слова.
Например, можно утверждать, что слова sword
и sord
(да, это слово) имеют одинаковые фонетические корни (они звучат одинаково, когда вы произносите их).
При этом существует ряд алгоритмов, которые вы можете использовать для перевода слов (даже ошибочных) в фонетические варианты.
Первый - Soundex . Это довольно просто реализовать, и существует значительное количество .NET-реализаций этого алгоритма . Это довольно просто, но дает реальные значения, которые вы можете сравнить друг с другом.
Другой - Метафон . Хотя я не могу найти нативную реализацию .NET для Metaphone, предоставленная ссылка содержит ссылки на ряд других реализаций, которые можно преобразовать. Самым простым для преобразования, вероятно, была бы реализация Java алгоритма Metaphone .
.
Следует отметить, что алгоритм Metaphone прошел ревизии. Существует Двойной метафон (который имеет реализацию .NET ) и Метафон 3 . Metaphone 3 является коммерческим приложением, но имеет точность 98% по сравнению с 89% точностью алгоритма Double Metaphone при работе с базой данных общих английских слов. В зависимости от ваших потребностей, вы можете найти (в случае Double Metaphone) или купить (в случае Metaphone 3) исходный код для алгоритма и преобразовать или получить к нему доступ через уровень P / Invoke (есть реализации C ++). имеются в большом количестве).
Метафон и Soundex отличаются в том смысле, что Soundex производит цифровые клавиши фиксированной длины, тогда как Metaphone производит ключи различной длины, поэтому результаты будут разными. В конце концов, оба сделают для вас одинаковое сравнение, вам просто нужно выяснить, что лучше всего соответствует вашим потребностям, учитывая ваши требования и ресурсы (и, конечно, уровни нетерпимости к орфографическим ошибкам).