Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Группировка записей по "похожести"
|
|||
|---|---|---|---|
|
#18+
Всем привет! Есть таблица со списком продуктов от разных мерчантов (merchant_products): наименование, цена, категория (как ее обозначил мерчант). И в этой таблице такого рода записи: merchant_products Код: plaintext 1. 2. 3. 4. 5. 6. 7. Задача состоит в том чтобы распознать одинаковые продукты. А именно рассчитать вероятность того, что часть этих продуктов - один и тот же продукт. При значении расчитанной вероятности выше какого-либо значения (к примеру 90%) система принимает решение самостоятельно, в противном случае требует вмешательства оператора. В результате должна быть сформирована таблица products (id, name), и "распознанные" продукты должны ссылаться на соответствующую запись в таблице products. Имеем N параметров сравнения (name, price, category, и т.д.). Каждому параметру назначаем некий условный "вес", который определяет значимость параметра при сравнении. Например у названия продукта больше вес чем у категории. При сравнении численных параметров (цены например) особых проблем нет. Но как определить насколько отличаются (насколько похожи) строки: Super shampoo - 8 oz и Super shampoo 8 oz ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2005, 13:44 |
|
||
|
Группировка записей по "похожести"
|
|||
|---|---|---|---|
|
#18+
Я думаю, что на основе этого можно построить алгоритм группировки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2005, 14:00 |
|
||
|
Группировка записей по "похожести"
|
|||
|---|---|---|---|
|
#18+
Legka Но как определить насколько отличаются (насколько похожи) строки: Super shampoo - 8 oz и Super shampoo 8 oz ? Есть такой алгоритм Soundex: "Soundex" algorithm is standard Odell/Russell (1918): * * Produce a code of the form "letter, digit, digit, digit" * using these rules: * * 1) Retain the first letter unchanged. * * 2) For each succeeding letter, produce a result based * on the following table: * * letter result * * B, F, P, V digit 1 * C, G, J, K, Q, S, X, Z digit 2 * D, T digit 3 * L digit 4 * M, N digit 5 * R digit 6 * A, E, H, I, O, U, W, Y (nothing) * * * 3) If two or more adjacent letters produce the same * result in step 2, ignore all but the first of the * adjacent letters. * * 4) Repeat steps 2 and 3 until three digits have been * produced or until the source is exhausted. * * 5) If less than three digits were produced, right-fill * with zeros. * * * Notes: * * Non-alpha characters are ignored entirely; letters which * are separated only by non-alpha characters are considered * adjacent. If the source contains no alpha characters, a * value of "0000" is returned. * * Case is not significant. * * Letters which produce (nothing) in step 2 are still * significant with respect to step 3. That is, two letters * which produce the same digit are not considered adjacent * if they are separated by a letter that produces (nothing). * This is in accordance with the original algorithm. * ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2005, 14:48 |
|
||
|
Группировка записей по "похожести"
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2005, 09:40 |
|
||
|
Группировка записей по "похожести"
|
|||
|---|---|---|---|
|
#18+
Всем большое спасибо за пищу для размышлений. Будем копать.:) to Станислав C.: Насчет алгоритма Soundex. В Oracle есть его реализация в виде одноименной фнукции. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Для отдельных слов или коротких фраз с одинаковым порядком слов работает "на ура". А в общем случае скорее всего прийдется бить на слова. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2005, 12:05 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=33370280&tid=1545569]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
104ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
2ms |
| others: | 282ms |
| total: | 480ms |

| 0 / 0 |
