|
|
|
Удаление нерелевантных записей
|
|||
|---|---|---|---|
|
#18+
Добрый день, есть таблица со строками "COTE d"Оr" ШОКОЛАД ТЕМНЫЙ 48% КАКАО 2*75Г. 150Г Шоколад "Кот д"Ор" 48% какао 150г Шоколад Cote D*Or тёмн.с какао 48% ШОКОЛАД COTE D`OR 48% КАКАО ТЕМНЫЙ 150Г. Шоколад горький Коте де Ор 2х75г. классика Банан жареный в мармеладе ШОКОЛАД КОТ Д"ОР 48% КАКАО ТЕМНЫЙ 150Г Шоколад КОТ де"ОР 48% какао 150г Шоколад Кот Дор 48% Какао 150г Шоколад Кот Дор темный 48% - - м/у 150 гр на таблице есть индекс для полнотекстового поиска. Можно ли выделить запросом строку с бананом? Т.е. задача в выделении строки с минимальной релевантностью по отношению ко всем другим строкам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2015, 10:34:03 |
|
||
|
Удаление нерелевантных записей
|
|||
|---|---|---|---|
|
#18+
OlegONзадача в выделении строки с минимальной релевантностью по отношению ко всем другим строкам.Не бывает "ко всем другим". Релевантность считается для двух записей. Предполагаю, что задачу можно решить, например, выбрав запись, для которой сумма релевантностей всем записям таблицы минимальна. Типа (схематично) Код: sql 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2015, 10:47:16 |
|
||
|
Удаление нерелевантных записей
|
|||
|---|---|---|---|
|
#18+
OlegON, Критерии "релевантности" - какие? Только по количеству совпадающих слов? 48% - тоже "слово"? 2*75Г. - опять "слово"? Алгоритм примерно следующий: 1. Создаете "таблицу слов". К каждому слову добавляете поле "частота встречаемости этого слова в строках". 2. Составляете запрос, который тупо суммирует "частоту встречаемости слов" из строки. Строки с минимальной частотой и будут "нерелевантными". 2.1. подзапросом разбиваете строку на слова. 2.2. джойните подзапрос слов с таблицей слов. 2.3. суммируете частоты для найденных слов, группируя слова по иденту строк. 2.4. сортируете по возрастанию суммы. 2.5. отрезаете сколько надо "минимальных" результатов. Как-то так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2015, 10:49:58 |
|
||
|
Удаление нерелевантных записей
|
|||
|---|---|---|---|
|
#18+
Спасибо большое за ответы, на самом деле задача достаточно расплывчатая с точки зрения на сам алгоритм. Надеялся на неизвестные мне возможности полнотекстового поиска. Т.е. критерии релевантности мне не известны, надо выкинуть бананы из шоколада :) Со словарем, боюсь, не получится, речь идет о миллионах строк. Пошел дальше думать над сложением релевантности, как было предложено Akina. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2015, 18:27:26 |
|
||
|
Удаление нерелевантных записей
|
|||
|---|---|---|---|
|
#18+
OlegONнадо выкинуть бананы из шоколада :)А "банан в шоколаде" нужно выкидывать или нет? Я бы пошел от статистического пути. Например, выделить первые слова, привести к нормальной форме, сгруппировать с подсчетом количества, просмотреть глазом на предмет откровенного мусора (заодно научиться его автоматически фильтровать), разбить на два подмножества - которые встречаются в качестве первых слов больше некоторого порога и меньше его же. Первое подмножество - шоколад без бананов. Второе просмотреть глазами. Попутно можно посмотреть, где и почему слова с первой позиции встречаются на других позициях. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2015, 18:38:14 |
|
||
|
Удаление нерелевантных записей
|
|||
|---|---|---|---|
|
#18+
miksoft, Там первая же строка - "крах" всем "первым словам". :) На самом деле, мимо словаря - эта задача практически не решается. Кстати, словарь растет гораздо медленнее "миллиона строк". Я когда-то тоже боялся словарей. В Зализняке - около 95тыщ ... и из них полезных для товарного анализа ... упс менее 60тыщ. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2015, 19:07:41 |
|
||
|
Удаление нерелевантных записей
|
|||
|---|---|---|---|
|
#18+
OlegON, Тем более. Вы верно оцениваете сопоставление ваших "миллионов" строк "каждую со всеми остальными" (миллион сравнений по миллиону для одного миллиона строк) :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2015, 19:09:13 |
|
||
|
Удаление нерелевантных записей
|
|||
|---|---|---|---|
|
#18+
Arhat109Там первая же строка - "крах" всем "первым словам". :)Ну почему же? Она пойдет во второе подмножество, из которого его можно будет вытащить в процессе "посмотреть, где и почему слова с первой позиции встречаются на других позициях". Я к тому, что слова, которые часто встречаются на первой позиции, имеют значительно большую вероятность оказаться наименованием товара, нежели остальные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2015, 19:12:20 |
|
||
|
Удаление нерелевантных записей
|
|||
|---|---|---|---|
|
#18+
OlegONречь идет о миллионах строк. Пошел дальше думать над сложением релевантности, как было предложено Akina.Не думай. Триллион полнотекстовых сравнений и миллион суммирований ни один сервер не выдержит. Ищи способ автоматической категоризации или словаризации значений. Хотя бы на пару порядков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2015, 19:52:02 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38858198&tid=1833674]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
56ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 210ms |
| total: | 360ms |

| 0 / 0 |
