|
|
|
Критерий-шаблон
|
|||
|---|---|---|---|
|
#18+
Есть: Массив, в основном, текстовой ~33 000 строк (Справочник номенклатуры) Задача: В ентом массиве куча (по логике) одинаковых значений типа "уголок 50Х50", который могет иметь всемозможные дурацкие варианты: "угол 50х50" "уголок 50*50" "уголок50х50" и т.д. и т.п. Нужно: Алгоритм решения данной задачи, т.е. как то их отразить как одинаковые - для последующего сведения к единому названию... НО! Загвозка в том, что я никак не могу придумать алгоритм определения критериальных значений по которым буду искать вариации приведенного выше названия. Если у кого есть какие либо идеи, подскажите,плз. Спасибо. Stepler (щёлк-щёлк!!) Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2010, 14:52 |
|
||
|
Критерий-шаблон
|
|||
|---|---|---|---|
|
#18+
Stepler, в нете валом алгоритмов нечеткого сравнения текста Берете массив и поочередно сравниваете текущий элемент с остальными элементами. Там, где % совпадения выше чем X процентов - это фразы сходные. X определяется эмпирически. В общем 5 минут кодинга и ждите пока 99 млн записей обработаются формулой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2010, 15:02 |
|
||
|
Критерий-шаблон
|
|||
|---|---|---|---|
|
#18+
Stepler, недочитал. Видимо нужно из положим 10 найденных уголоков определить "наиуголкейший" Ну тут или маску надо придумать, типа перед цифрой пробел, между цифрами звездочка или максимум по критерию нечеткого совпадения. вида X1X2X3X4Итого суммаX1100%85%78%60%323%X285%100%50%20%255%X378%50%100%10%238%X460%20%10%100%190% X1 похожее на всех остальных, вот он и "главный" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2010, 15:08 |
|
||
|
Критерий-шаблон
|
|||
|---|---|---|---|
|
#18+
Shamanus, Спасибо, честно говоря, до простого поиска в инете не додумался... Спасиб исчо раз - буду лазить... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2010, 15:10 |
|
||
|
Критерий-шаблон
|
|||
|---|---|---|---|
|
#18+
Stepler, если не найдете стучите. У меня где то валялся. А вообще тут DLL ка на сях реализованная, подключаете в референсах и вуаля. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2010, 15:39 |
|
||
|
Критерий-шаблон
|
|||
|---|---|---|---|
|
#18+
Stepler Есть: Массив, в основном, текстовой ~33 000 строк (Справочник номенклатуры) Задача: В ентом массиве куча (по логике) одинаковых значений типа "уголок 50Х50", который могет иметь всемозможные дурацкие варианты: "угол 50х50" "уголок 50*50" "уголок50х50" и т.д. и т.п. Нужно: Алгоритм решения данной задачи, т.е. как то их отразить как одинаковые - для последующего сведения к единому названию... В качестве стартовой идеи: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2010, 06:53 |
|
||
|
Критерий-шаблон
|
|||
|---|---|---|---|
|
#18+
ZVI, Спасибо, но енто не совсем то - могет быть не только "уголок", но и другая номенклатура.. Пока решил так (код не отлажен, просто для пробы - так что не ругайте): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. с % совпадения - попробывал, не удачно - варианты не всегда отражены мах значением совпадения. Работает вроде надежно (до конца массива исчо не дошла), но долго. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2010, 10:45 |
|
||
|
|

start [/forum/topic.php?fid=61&gotonew=1&tid=2177359]: |
0ms |
get settings: |
11ms |
get forum list: |
18ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
39ms |
get topic data: |
12ms |
get first new msg: |
7ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
2ms |
| others: | 236ms |
| total: | 399ms |

| 0 / 0 |
