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

Откуда:
Сообщений: 19
Добрый день!
Может быть уважаемые смогут натолкнуть на правильное направление движения,

Исходные данные есть 2 таблицы:

TASK (задача) ~ 200 строк

ID (number) - PK
FULLNAME (varchar2 (2000)) - наименование задачи

Organization (Организации) ~ 900 строк
ID (number) - PK
FULLNAME (наименование организации полное)

В таблице TASK в наименованиях задач внутри текста задачи встречаются наименования организаций.
Пример: Выполнение работ по поставке "Рогов и копыт", АО "Гринпис".

Но поскольку в таблице "Организации" данные актуализируются существенно чаще таблицы - "Задача", то наименования организаций (в TASK) иногда устаревают.

Заранее предвосхищая вопрос - почему нельзя вставить наименование организаций в таблицу TASK - т.к. в TASK-e наименования могут быть в другом падеже, где то с точкой и пр. и пр.
Задача - помочь пользователям БД в ловле таких блох и поиску таких "невязок в названиях организаций"
Итого - нужен скрипт (запрос) который бы бежал по таблице организации и находил "похожие - т.е. нечеткое совпадение" (например в таблице TASK - Организация: ЗАО "Рога и копыта", в реальности в таблице Организации оно уже АО "Рога и копыта"

Подтолкните к мысли как корректно решить задачку...
31 окт 19, 14:18    [22007170]     Ответить | Цитировать Сообщить модератору
 Re: Поиск (нечеткий) в колонке по содержимому  [new]
Кобанчег
Member

Откуда: Рахів
Сообщений: 593
Kostya555,

utl_match.edit_distance
31 окт 19, 14:32    [22007193]     Ответить | Цитировать Сообщить модератору
 Re: Поиск (нечеткий) в колонке по содержимому  [new]
-2-
Member

Откуда:
Сообщений: 14995
Kostya555
Заранее предвосхищая вопрос - почему нельзя вставить наименование организаций в таблицу TASK
Только дурак может предвосхищаться дуростью.
Kostya555
ID (number) - PK
Что такое "PK"?
Kostya555
TASK (задача) ~ 200 строк
При скорочтении одна строка в 7 минут за сутки можно все перепроверить и еще останется время кофе попить.
31 окт 19, 14:33    [22007196]     Ответить | Цитировать Сообщить модератору
 Re: Поиск (нечеткий) в колонке по содержимому  [new]
Kostya555
Member

Откуда:
Сообщений: 19
-2-, при всем к вам уважении, ваш ответ попахивает снобизмом а не реальной помощью по вопросу....
Про 7 минут понятно я про автоматизацию и возможность свести к минимуму человеческий фактор...

PK - primary key (хотя не знаю зачем я это вставил.. так...для задачки это не нужно)
31 окт 19, 14:54    [22007234]     Ответить | Цитировать Сообщить модератору
 Re: Поиск (нечеткий) в колонке по содержимому  [new]
проходил мимо...
Member

Откуда: от верблюда
Сообщений: 1087
Kostya555
Подтолкните к мысли как корректно решить задачку...

добавить ссылку на организацию в таблицу задач, чтобы больше никогда так не париться.
существующие задачи просмотреть глазами и, если необходимо, вбить организацию руками.
31 окт 19, 15:17    [22007271]     Ответить | Цитировать Сообщить модератору
 Re: Поиск (нечеткий) в колонке по содержимому  [new]
Kostya555
Member

Откуда:
Сообщений: 19
проходил мимо... - проблема в том, что наименование организации может встречаться внутри текста задачи с разными падежами, склонениями и пр.., тогда как справочник организация - всегда как в уставе организации..
31 окт 19, 15:46    [22007309]     Ответить | Цитировать Сообщить модератору
 Re: Поиск (нечеткий) в колонке по содержимому  [new]
gorazd
Member

Откуда:
Сообщений: 9
Как разгрести не знаю. А на будущее лучше добавить еще одно поле в таблицу задач, где будет фиксироваться код организации исполнителя сразу при заполнении.
31 окт 19, 18:19    [22007485]     Ответить | Цитировать Сообщить модератору
 Re: Поиск (нечеткий) в колонке по содержимому  [new]
gorazd
Member

Откуда:
Сообщений: 9
Тут обсуждалось похожая тема https://www.sql.ru/forum/447639/opredelit-pohozhest-strok-chastichnoe-sovpadenie
31 окт 19, 18:25    [22007490]     Ответить | Цитировать Сообщить модератору
 Re: Поиск (нечеткий) в колонке по содержимому  [new]
gorazd
Member

Откуда:
Сообщений: 9
Еще вариант, в виду ограниченного объема, загрузить 2 таблицы в Exel и сравнить единоразово там.
Для экселя есть скрипты сравнения строк на схожесть.
Или на Python-е сделать. Ну а в дальнейшем вести базу корректно, добавляя код фирмы в строку задачи.
31 окт 19, 18:33    [22007494]     Ответить | Цитировать Сообщить модератору
 Re: Поиск (нечеткий) в колонке по содержимому  [new]
проходил мимо...
Member

Откуда: от верблюда
Сообщений: 1087
Kostya555
наименование организации может встречаться внутри текста задач

не наименование внутри текста, а внешний ключ в таблице задач на таблицу организаций.
2 ноя 19, 09:59    [22008612]     Ответить | Цитировать Сообщить модератору
 Re: Поиск (нечеткий) в колонке по содержимому  [new]
dimyaz
Member

Откуда:
Сообщений: 436
проходил мимо...,

почитайте сначала про "Расстояние Левенштейна" и другие сравнения строк , а потом про их имплементации в Oracle.
Но по хорошему это должна быть только разовая акция по поиску такой фигни, а сначала нужно навести порядок в архитектуре приложения.
4 ноя 19, 11:27    [22009262]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить