2013-06-13 3 views
4

У меня есть база данных, содержащая имена определенных компаний и частных лиц, внесенных в черный список. Все созданные транзакции, его детали необходимо отсканировать от этих вложенных в черный список имен. Созданные транзакции могут иметь имена, которые неправильно написаны, например, можно написать «Уилсон» как «Уилсон», «Вильсон» или «Вилсон». Нечеткая логика поиска или утилита должны совпадать с именем «Уилсон», присутствующим в базе данных с черным списком, и на основании требуемого процента точности/точности, заданного пользователем, должны показывать совпадающее имя в процентах.Нечеткий алгоритм сопоставления имен

Сделки будут отправляться в пакетном режиме или в режиме реального времени для проверки на черные имена.

Я был бы признателен, если пользователи, которые имели аналогичные требования и реализовали их, также могли бы высказать свое мнение и реализацию

+0

Пожалуйста, покажите код –

+0

ли это из списка SDN? http://www.treasury.gov/resource-center/sanctions/SDN-List/Pages/default.aspx –

ответ

4

T-SQL оставляет желать лучшего в области нечеткого поиска. Ваши лучшие варианты - сторонние библиотеки, но если вы не хотите вступать в противоречие с этим, лучше всего использовать функцию DIFFERENCE, встроенную в SQL Server. Например:

SELECT * FROM tblUsers U WHERE DIFFERENCE(U.Name, @nameEntered) >= 3 

Более высокое возвращаемое значение для РАЗЛИЧИЯ указывает на более высокую точность. Недостатком этого является то, что алгоритм поддерживает слова, которые звучат одинаково, что не может быть вашей желаемой характеристикой.

В следующем примере показано, как получить лучший матч из-за стола:

DECLARE @users TABLE (Name VARCHAR(255)) 

INSERT INTO @users VALUES ('Dylan'), ('Bob'), ('Tester'), ('Dude') 

SELECT *, MAX(DIFFERENCE(Name, 'Dillon')) AS SCORE FROM @users GROUP BY Name ORDER BY SCORE DESC 

возвращает:

Name | Score 
Dylan 4 
Dude 3 
Bob 2 
Tester 0 
+0

Спасибо dkoch за ваш ответ. Есть ли хорошая сторонняя утилита, которую вы могли бы предложить. Во-вторых, если есть какая-либо полезность, которая также будет работать с арабским. Это займет арабские имена/слова и будет сравниваться с английской справочной таблицей. – user2477549

Смежные вопросы