Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Поиск (нечеткий) в колонке по содержимому / 11 сообщений из 11, страница 1 из 1
31.10.2019, 14:18
    #39883624
Kostya555
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск (нечеткий) в колонке по содержимому
Добрый день!
Может быть уважаемые смогут натолкнуть на правильное направление движения,

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

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

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

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

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

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

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

Подтолкните к мысли как корректно решить задачку...
...
Рейтинг: 0 / 0
31.10.2019, 14:32
    #39883634
Кобанчег
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск (нечеткий) в колонке по содержимому
Kostya555,

Код: plaintext
utl_match.edit_distance
...
Рейтинг: 0 / 0
31.10.2019, 14:33
    #39883637
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск (нечеткий) в колонке по содержимому
Kostya555Заранее предвосхищая вопрос - почему нельзя вставить наименование организаций в таблицу TASKТолько дурак может предвосхищаться дуростью.Kostya555ID (number) - PKЧто такое "PK"?Kostya555TASK (задача) ~ 200 строкПри скорочтении одна строка в 7 минут за сутки можно все перепроверить и еще останется время кофе попить.
...
Рейтинг: 0 / 0
31.10.2019, 14:54
    #39883665
Kostya555
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск (нечеткий) в колонке по содержимому
-2-, при всем к вам уважении, ваш ответ попахивает снобизмом а не реальной помощью по вопросу....
Про 7 минут понятно я про автоматизацию и возможность свести к минимуму человеческий фактор...

PK - primary key (хотя не знаю зачем я это вставил.. так...для задачки это не нужно)
...
Рейтинг: 0 / 0
31.10.2019, 15:17
    #39883691
проходил мимо...
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск (нечеткий) в колонке по содержимому
Kostya555Подтолкните к мысли как корректно решить задачку...
добавить ссылку на организацию в таблицу задач, чтобы больше никогда так не париться.
существующие задачи просмотреть глазами и, если необходимо, вбить организацию руками.
...
Рейтинг: 0 / 0
31.10.2019, 15:46
    #39883721
Kostya555
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск (нечеткий) в колонке по содержимому
проходил мимо... - проблема в том, что наименование организации может встречаться внутри текста задачи с разными падежами, склонениями и пр.., тогда как справочник организация - всегда как в уставе организации..
...
Рейтинг: 0 / 0
31.10.2019, 18:19
    #39883840
gorazd
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск (нечеткий) в колонке по содержимому
Как разгрести не знаю. А на будущее лучше добавить еще одно поле в таблицу задач, где будет фиксироваться код организации исполнителя сразу при заполнении.
...
Рейтинг: 0 / 0
31.10.2019, 18:25
    #39883844
gorazd
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск (нечеткий) в колонке по содержимому
Тут обсуждалось похожая тема https://www.sql.ru/forum/447639/opredelit-pohozhest-strok-chastichnoe-sovpadenie
...
Рейтинг: 0 / 0
31.10.2019, 18:33
    #39883847
gorazd
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск (нечеткий) в колонке по содержимому
Еще вариант, в виду ограниченного объема, загрузить 2 таблицы в Exel и сравнить единоразово там.
Для экселя есть скрипты сравнения строк на схожесть.
Или на Python-е сделать. Ну а в дальнейшем вести базу корректно, добавляя код фирмы в строку задачи.
...
Рейтинг: 0 / 0
02.11.2019, 09:59
    #39884571
проходил мимо...
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск (нечеткий) в колонке по содержимому
Kostya555наименование организации может встречаться внутри текста задач
не наименование внутри текста, а внешний ключ в таблице задач на таблицу организаций.
...
Рейтинг: 0 / 0
04.11.2019, 11:27
    #39884892
dimyaz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск (нечеткий) в колонке по содержимому
проходил мимо...,

почитайте сначала про "Расстояние Левенштейна" и другие сравнения строк , а потом про их имплементации в Oracle.
Но по хорошему это должна быть только разовая акция по поиску такой фигни, а сначала нужно навести порядок в архитектуре приложения.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Поиск (нечеткий) в колонке по содержимому / 11 сообщений из 11, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]