Я ищу, чтобы сравнить два элемента данных или поля с помощью алгоритма нечеткого совпадения для записи связи в C#
, и я хочу определить, какой алгоритм был бы лучшим для каждого сравнения.Лучший способ сравнить элементы данных с использованием алгоритмов нечеткого совпадения
поля Ищу для сравнения:
- Фамилия
- Имя
- Пол
- Год рождения
- Месяц рождения
- День рождения
- ПЛА
- Количество Член
- МРН
- Улица Номер
- Название улицы
- Улица Тип
- Street Направленная
- Город
- Государственный
- Zip
- Телефон
В Приблизительные Строка Matching Алгоритмы (ПКР) Я, использующие в настоящее время являются:
- Расстояние Левенштейна
- Расстояние Хемминга
- Jaccard Расстояние
- Яро Расстояние
- Яро-Винклер Расстояние
- Самая длинная общая подпоследовательность
- Самый длинный общий субстрин г
- Перекрытие Коэффициент
- Ратклиф-Obershelp Сходство
- Соренсен-кубиком Расстояние
- Танимото Коэффициент
- Damerau-Левенштейна Расстояние
- Вагнер-Фишера Расстояние
- Саундэкс
- Metaphone 3
- NYSIIS
Во-первых, я сравниваю два поля, такие как FirstName1
и FirstName2
, и вижу, если они являются точным соответствием.
Например, FirstName1 = "Bob"
и FirstName2 = "Bob"
будет точным совпадением, так что оно не будет двигаться к нечеткому согласованию.
С другой стороны, FirstName1 = "Jill"
и FirstName2 = "Bob"
перейдут на нечеткое сравнение двух полей.
Я хочу знать, знает ли кто-нибудь, какой алгоритм с нечетким совпадением лучше использовать для определенных полевых сравнений, а не для других, наоборот.
Этот вопрос служит хорошим списком алгоритмов сравнения строк! –