19.03.2010 12:47
OlegON
 
Прошу мастеров помочь с запросом и вообще интересно насколько он реален.
Необходимо сделать синтаксическое сравнение слов и вывести пары, которые отличаются друг от друга не более чем на 2 буквы, даже если они находятся в разных концах слова. Никаких текстовых опций в базе нет. Приведу пример:
из

батон
малако
молоко
коломо

должны выбираться только

малако
молоко

варианты с выборкой только различия только в одной букве тоже приветствуются...
19.03.2010 12:57
kadr
 
в порядке бреда: преобразовать слово в число на основе ASCII кодов и сравнивать уже эти коды
19.03.2010 13:01
OlegON
 
Не очень понял... Что-то вроде контрольной суммы?
Не получится, если опечатаешься с а на Я, контрольная сумма расползется в разы...
19.03.2010 13:06
kadr
 
Цитата:
OlegON Не очень понял... Что-то вроде контрольной суммы?
Не получится, если опечатаешься с а на Я, контрольная сумма расползется в разы...
ну частично лечится функцие upper, например
19.03.2010 13:15
kadr
 
как-то же проверка орфографии работает в текстовых процессорах, они же не только по началу предлагют окончание но и варианты перестановок учитывают, наверняка все же собирается какая-то контрольная сумма


ПыСы в развитие своего предложения порыл чуток:
теория
Поиск на неточное соответствие: коды Хемминга


Цитата:
качестве примера хеш-функции можно привести функцию soindex, встроенную в такие СУБД, как Subase, MS SQL Server и Oracle.
19.03.2010 13:52
OlegON
 
soundex она все таки... на русские слова не работает... uppercase тоже не поможет, если приписать в конец ъ... Или o латинскую присобачить...
19.03.2010 22:59
baggio
 
надо мыслить методологично....

необходимо сравнивать несколько критериев сравнения:
1. Название товара разбить на состовляющие:

а) в первом слове названия товара - это вид товара - если он совпадает белее чем на 60% то вес 30ЕД, идем далее
б) остальное название товара состоящие из букв
если одинаковых букв более 30% - 20ЕД
если одинаковых букв более 50% - 30ЕД
если одинаковых букв более 70% - 40ЕД
с) цифры в названии товара приведенне... т..е. 0,1 приводим к 1... 200 тоже к 2... 0,123 к 123, 0,1050 к 1050... если совпадает вес 20ЕД
д) разница в розничной стоимости товара не более 10%, вес 15ЕД
е) шк тоже недолжно содержатся более 7 одинаковых цыфр.. вес 7ЕД
ж) единица измерения - 5ЕД
з) группа классификатора 5ЕД
Если итоговое ЕД более 60 выводить ворниг.. более 80... как пить дать одна фигняюю

как варианиат еще можно сравнивать количество прихода... и.т.д. но направление я думаю понятно..
05.05.2010 09:03
John Doe
 
Столкнулся с задачей поиска наименований по количеству совпадающих слов. Задача аналогичная, прошу подтвердить правильность алгоритма:
список карточек вида:
наименование
наименование второе
... третье
выбираю слова из наименования текущей позиции и с текущей позиции иду вниз, вытаскивая наименования, где выбранные слова попадаются в требуемом количестве. Так? Нет ничего побыстрее?
Часовой пояс GMT +3, время: 13:55.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.