![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| lazarevmax_mcx |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 26.6.2004 Репутация: нет Всего: нет |
Такая проблема:
нужно сравнить две строки названий товара из прайса: Сетевой фильтр Sven Platinum, 1.8 метра Сетевой фильтр <Sven Platinum Pro> 1.8 м и чтобы в результате сравнений было true. а если сравниваются строки: Сетевой фильтр Sven Platinum, 1.8 метра Сетевой фильтр Sven Optima Special 1.8 м возвращал false.... У кого может быть есть идеи? |
|||
|
||||
| Pakshin A. S. |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 5056 Регистрация: 16.2.2003 Репутация: 21 Всего: 61 |
||||
|
||||
| Zero |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: 8 Всего: 24 |
А у меня такая: 1. Создаёш два буфера типа string; 2. Потом загоняшь в каждый буферы соответствующие строки; 3. Потом через цикл по кол-ву символов во втором буфере, удаляешь символы из него которые не подходят по определённым критериям (например: спецсимволы, скобки и т.п.) 4. Далее остатки буферов сравниваешь. Это сообщение отредактировал(а) Zero - 2.10.2005, 11:42 |
|||
|
||||
| Vet |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 101 Регистрация: 24.2.2005 Репутация: нет Всего: нет |
lazarevmax_mcx, под твое условие подошло бы и:
Pos('Sven Platinum', 'Строка с фильтром') > 0 |
|||
|
||||
| cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 2 Всего: 99 |
А у меня другая идея: навести порядок в прайс-листе.
Зачем парится над хитрыми решениями поиска и сравнения, когда можно внести ограничения в систему ввода наименований товара и обеспечить тем самым порядок! -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
| Pakshin A. S. |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 5056 Регистрация: 16.2.2003 Репутация: 21 Всего: 61 |
cardinal Это-то само собой, но релизовать реальную сравнивалку строк тоже интересно...
|
|||
|
||||
| Zero |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: 8 Всего: 24 |
cardinal а если у них уже всё введено, и lazarevmax_mcx парится над тем как это всё объеденить, то ты предлагаешь, не парится над прогой и сделать всё вручную, т.к. голова умнее программы???
|
|||
|
||||
| Pakshin A. S. |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 5056 Регистрация: 16.2.2003 Репутация: 21 Всего: 61 |
Впринцепе если уже речь пошла о голове, то мы ведь не сможет реализовать принцип сравнения двух строк, который аботает у нас в голове, а только максимально приблизиться к нему, а значит погрешности все-таки будут...
|
|||
|
||||
| cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 2 Всего: 99 |
А что если кто-то начал делать г...., извиняюсь, то надо продолжать это делать? Возможно это как раз тот момент, в который еще можно переработать все вручную, чтобы в будущем не париться. -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 15 Всего: 98 |
+ это хорошо, что автор знает что Сетевой фильтр Sven Platinum и Сетевой фильтр Sven Platinum Pro это одно и то же. ибо я, например, так бы не сказал...
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| Петрович |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1000 Регистрация: 2.12.2003 Где: Москва Репутация: 25 Всего: 55 |
Интересно, значит предположим имеем три строки:
1. Сетевой фильтр Sven Platinum 2. Сетевой фильтр Sven Platinum Pro 3. Сетевой фильтр Sven Optima Special При этом первые две это один товар, а третья это другой товар. Интересно, но по моему, это задача даже не для искуственного интелекта, а для системы с самообучением, которая сама в состоянии производить поиск в инете, в бумажных справочниках производителей и пр.литературе. Иначе, как она сможет определить что Platinum и Platinum Pro это одно и то же, однако сильно отличается от Optima Special? Добавлено @ 17:39 Кстати, а как на счет Сетевой фильтр Sven Platinum Pro Plus? Это сообщение отредактировал(а) Петрович - 4.10.2005, 17:38 -------------------- Все знать невозможно, но хочется |
|||
|
||||
| Pakshin A. S. |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 5056 Регистрация: 16.2.2003 Репутация: 21 Всего: 61 |
Я предлагаю попробовать нечто типа процента несовпадения строк. Т. е. использовать схему распознавания букв, скажем в FineReader...
|
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 15 Всего: 98 |
ды а толку с этого процента несовпадения? проблему предыдущих двух постов это не решит...
тут разве-что можно создать базу всех встречающихся наименований и вручную их сруппировать ( ну или id-шники одинаковые попрописывать ) и уже по этим id-шникам определять оно или не оно... -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| Zero |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: 8 Всего: 24 |
Петрович с плюсом это уже будет совсем другой элемент А я предумал ещё один способ: 1. Рассмотреть в цикле каждое отдельное слово первой строки, и найти такоеже слово во второй строке; 2. потом: -- если во второй строке, слов больше чем на одно то это разные товары, -- если слова первой строки ненайдены во второй то тоже разные; 3. Если после сравнения каждое слово первой строки будет найдено во второй строке, и во второй строке останится максимум 1 слово, тогда ─ это один и тот же товар;.... При этом регистр должен быть одним (например все символы должны быть маленькими), при этом в обоих строках удалить все спецсимволы и т.п. Это сообщение отредактировал(а) Zero - 5.10.2005, 11:48 |
||||
|
|||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 15 Всего: 98 |
пункт 2.2 -- не катит ( если сравнивать наоборот )
+ алгоритм не катит -- не факт что какой-нить "креатив платинум" и "креатив про" тоже одно и то же. -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |