Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как отыскать совпадающие товары в базе?
 
 автор: xpom   (26.03.2011 в 20:37)   письмо автору
 
 

Нужно отыскать товары на совпадение...если есть такой товар то заносить id-шки в таблицу, если не точное совпадение, но похожее выводить человеку для определения точности! Какими функция можно сделать точное и приближенное сравнение?

  Ответить  
 
 автор: cheops   (26.03.2011 в 20:40)   письмо автору
 
   для: xpom   (26.03.2011 в 20:37)
 

А какой критерий сравнения (или его нужно выработать)? И как устроены таблицы товаров?

  Ответить  
 
 автор: xpom   (26.03.2011 в 21:00)   письмо автору
 
   для: cheops   (26.03.2011 в 20:40)
 

но таблица товаров одна, нужно выработать критерий...но предполагаю, что это будет наименование товара...но наименование может быть написано по разному...например Intel Core 2 Duo и Socket 775 Intel 2 Duo

в зависимости от того, как будет загружено в прайсе магазинов..а каждый магазин пишет по своему...и нужно найти одинокавые товары...
или может посоветуете другие критерии поиска сходства товара?

  Ответить  
 
 автор: cheops   (26.03.2011 в 21:16)   письмо автору
 
   для: xpom   (26.03.2011 в 21:00)
 

Понятно, для начала вероятно лучше найти полностью совпадающие товары, для этого можно воспользоваться оператором =. Потом можно использовать LIKE, потом полнотекстовый поиск, потом создавать правила преобразования, потом переходить к словарю и пытаться вычислять группы товаров частотными методами...

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

  Ответить  
 
 автор: dirol   (26.03.2011 в 20:43)   письмо автору
 
   для: xpom   (26.03.2011 в 20:37)
 

попробуй через LIKE

  Ответить  
 
 автор: xpom   (26.03.2011 в 21:14)   письмо автору
 
   для: dirol   (26.03.2011 в 20:43)
 

но LIKE же выполняет точное сравнение..а приближенное?

  Ответить  
 
 автор: cheops   (26.03.2011 в 21:18)   письмо автору
 
   для: xpom   (26.03.2011 в 21:14)
 

У LIKE есть маска %, обозначающая произвольное количество символов, окружив этими масками слово Intel вы найдете практически всю продукцию Intel, окружив "Core 2 Duo" вы найдете изрядную группу процессоров этого класса.

  Ответить  
 
 автор: xpom   (26.03.2011 в 21:38)   письмо автору
 
   для: cheops   (26.03.2011 в 21:18)
 

но к сожалению я не смогу определенно, брать и какие то части окружать..например слово...потому что это данные с прайс листа парсятся...
а по другому никак?

  Ответить  
 
 автор: cheops   (26.03.2011 в 21:48)   письмо автору
 
   для: xpom   (26.03.2011 в 21:38)
 

Полностью автоматизировать это процесс достаточно сложно, пока не создан полноценный искусственный интелект следует прибегать к естественному (только для этого нужно разработать удобные инструменты, чтобы люди могли быстро и удобно составлять правила). Собственно со спамом тоже не просто бороться, но формула Байеса + кнопка "Это спам" со временем делают чудеса.

  Ответить  
 
 автор: xpom   (26.03.2011 в 22:25)   письмо автору
 
   для: cheops   (26.03.2011 в 21:48)
 

а как формула Байеса применяется в рнр?

  Ответить  
 
 автор: cheops   (26.03.2011 в 23:41)   письмо автору
 
   для: xpom   (26.03.2011 в 22:25)
 

По разному, например, для вычисления спам-сообщений и обычных в почте и на форумах (это самое известное приложение).

  Ответить  
 
 автор: xpom   (26.03.2011 в 23:57)   письмо автору
 
   для: cheops   (26.03.2011 в 23:41)
 

спам то спамом...а с наименованием товара как найти сходство? Можно таким методом это сделать?

  Ответить  
 
 автор: cheops   (27.03.2011 в 00:07)   письмо автору
 
   для: xpom   (26.03.2011 в 23:57)
 

Примерно тоже самое, строится большая база данных по признакам и по вашим прайсам (это похоже на это, а это не похоже на это), которая позволяет потом с высокой долей вероятности классифицировать новый товар. Правда новый прайс-лист может здорово выбиваться из системы наименований тех магазинов, по которым база набивалась, но не думаю, что это будет очень часто - все-таки пресса и литература жаргон и наименования достаточно быстро устаканивают, да и магазины заинтересованы в том, чтобы покупатели понимали о чем идет речь.

  Ответить  
 
 автор: xpom   (27.03.2011 в 14:50)   письмо автору
 
   для: cheops   (27.03.2011 в 00:07)
 

а где ж мы такую базу возьмем???
А например поиск по сайту, работает не по такому принципу, когда выводит только те материалы, где совпали только отдельные слова?

  Ответить  
 
 автор: cheops   (27.03.2011 в 15:10)   письмо автору
 
   для: xpom   (27.03.2011 в 14:50)
 

>а где ж мы такую базу возьмем???
Нарабатывайте, все равно же проблему решать придется. Если ваш сервис будет работать хотя бы год и у вас будут заняты люди на постоянной сортировке и улучшении базы данных - она у вас будет.

>А например поиск по сайту, работает не по такому принципу, когда выводит только те материалы,
>где совпали только отдельные слова?
Тут, как правило, используется полнотекстовый поиск - его тоже можно сделать элементом парсера, почем нет.

  Ответить  
 
 автор: xpom   (27.03.2011 в 15:47)   письмо автору
 
   для: cheops   (27.03.2011 в 15:10)
 

а пока нет базы, будут проблемы с таким методом, это можно будет в дальнейшем такое сделать..

>Тут, как правило, используется полнотекстовый поиск - его тоже можно сделать элементом парсера, почем нет.
У меня тоже такая мысль пришла...а как осуществляется полнотекстовый поиск?
Елемент парсера разбить на отдельные слова, а потом искать эти слова в базе через Like? Или есть лучший способ?

  Ответить  
 
 автор: cheops   (27.03.2011 в 15:54)   письмо автору
 
   для: xpom   (27.03.2011 в 15:47)
 

MySQL имеет встроенный механизм полнотекстового поиска, для этого поля нужно проиндексировать FULLTEXT-индексом и искать при помощи конструкции MATCH ... AGAINST().

  Ответить  
 
 автор: xpom   (27.03.2011 в 16:25)   письмо автору
 
   для: cheops   (27.03.2011 в 15:54)
 

А я где то читал, что если таблица с FULLTEXT-индексом, то замедляется работа выборки из этой таблицы базы данных, если будут тысячи строк в таблице с товарами, не станет база?

  Ответить  
 
 автор: cheops   (27.03.2011 в 16:58)   письмо автору
 
   для: xpom   (27.03.2011 в 16:25)
 

Индексы хранятся в отдельном файле, запросы, которые этот индекс замедляться не будут, а запросы обращающиеся к полнотекстовому поиску без этого индекса работать не будут.

[поправлено модератором: ветка про индексы выделена в отдельную тему]

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования