Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 MS SQL поиск частично совпадающих записей (строк)  [new]
Николай Н.
Member

Откуда:
Сообщений: 80
Добрый день!
Уже когда-то встречал пути решения этой задачи, но сейчас когда надо, ни чего найти не могу.
Имеется таблица с компаниями. 1,5 млн записей. Много компаний задвоенно: то в названии тире, то кавычки, то форма собственности или пара букв местами поменяна, или слова поменяны местами и т.д. Необходимо выбрать компании, которые возможно! задвоенны, для их дальнейшего уже ручного анализа.
Кто-то сталкивался?
8 ноя 13, 16:04    [15098437]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL поиск частично совпадающих записей (строк)  [new]
Николай Н.
Member

Откуда:
Сообщений: 80
В общем надо вывести все компании, которые подозреваются! в задвоении.
8 ноя 13, 16:11    [15098478]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL поиск частично совпадающих записей (строк)  [new]
komrad
Member

Откуда:
Сообщений: 5607
Николай Н.,

посмотри soundex
8 ноя 13, 16:26    [15098601]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL поиск частично совпадающих записей (строк)  [new]
Престарелый заяц
Guest
А SOUNDEX "дружит" с кириллицей ?
8 ноя 13, 16:28    [15098614]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL поиск частично совпадающих записей (строк)  [new]
Гость333
Member

Откуда:
Сообщений: 3683
Николай Н.
Много компаний задвоенно: то в названии тире, то кавычки, то форма собственности или пара букв местами поменяна, или слова поменяны местами и т.д.

"Пара букв местами поменяна" — что это обозначает? Можете привести пример?
По поводу всего остального — я бы сделал так — выкинул бы из названий тире, кавычки и формы собственности. Затем внутри каждого названия отсортировал бы по алфавиту все слова, входящие в это название. Компании, у которых в результате этих манипуляций получились одинаковые модифицированные названия, — "возможно, задвоены".
8 ноя 13, 16:34    [15098652]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL поиск частично совпадающих записей (строк)  [new]
Мистер Хенки
Member

Откуда: канализация
Сообщений: 6615
Можно попробовать SSIS c Fuzzy Lookup и Grouping или DQS . Собственно эти инструменты для таких задач и разрабатывались
8 ноя 13, 17:24    [15099007]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL поиск частично совпадающих записей (строк)  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
Расстояние между строками

Я в таком же ступоре был: Поиск по похожести (VarChar)
Только мне тему запороли.

Мистер Хенки, спасибо!
Службы Data Quality Services, блин, а я это проигнорил, как-то чересчур сложно представлено было.
Fuzzy Lookup, жаль что через SSIS, на который у меня аллергия.

Ну не люблю я не UNIX way, из пару функций комбайн наворотят.
И я не одинок, голосуем!
9 ноя 13, 08:22    [15101932]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL поиск частично совпадающих записей (строк)  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
Даже Александр Гладченко приглашал 2 года назал.
Как я, блин, тему прошляпил.
Вешь просто дико необходимая, но при этом неоправдано игнорируемая.
9 ноя 13, 08:33    [15101938]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL поиск частично совпадающих записей (строк)  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
Начиная с 2008R2 поставляется служба Master Data Services (MDS)
С 2012 идёт продолжение, надстройка Data Quality Services (DQS)
Всё это для белых воротничков и мышко-дрочества, но не для интегрированного решения, imxo.
(MS думаю понимает что ипали все на их комбайн, пусть поставляют базовый функционал и не выпендриваются, знают своё место :) )

Как видно отседова используется стандартный топорный NGram подход, который можно на коленке самому накалякать в своей либе за 5 сек, и будет даже лучше.

Но жопой чувствую что можно написать более оптимальную структуру данных и алгоритм для данной задачи.
9 ноя 13, 16:25    [15102521]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить