Делать предложения на основе имени человека
Поэтому я искал нечеткий поиск, алгоритм расстояния Левенштейна, и я не уверен, подходит ли он для того, что я делаю. Пожалуйста, дайте мне знать ваши мысли, если таковые имеются...
Как я могу взять полное имя пользователя и создать список похожих имен? Я хочу запретить пользователю создавать несколько учетных записей в приложении, указав "Привет, ты уверен, что ни один из них не ты", как последний шаг перед созданием учетной записи.
Я нашел эту статью, но она полностью основана на SQL (http://stackru.com/questions/988050/matching-records-based-on-person-name)
Я использую C# / Linq, SqlServer.
Спасибо за ваше время!
2 ответа
Вот ссылка на реализацию SOUNDEX в.NET:
http://www.codeproject.com/KB/recipes/soundex.aspx
Я не использовал это, но это, кажется, оценено хорошо
Если бы это был я, мне потребовалось бы точное совпадение с фамилией, а затем только попытался бы угадать отклонения имени. Это немного сузит вашу область работы.
Затем, как вы предложили в своих комментариях, вы можете применить правила +/- несколько символов длины имени, а также допустимое пороговое значение (80%) символов должно совпадать.
Кроме того, вы можете просматривать только имена, которые также совпадают с первыми символами X, так как большинство английских отклонений имен будут после числа X символов.
Пример:
- Джон Доу
- Джонни Доу
- Джонатан Доу