powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Удаление нерелевантных записей
9 сообщений из 9, страница 1 из 1
Удаление нерелевантных записей
    #38858171
OlegON
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день,

есть таблица со строками

"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 гр

на таблице есть индекс для полнотекстового поиска. Можно ли выделить запросом строку с бананом? Т.е. задача в выделении строки с минимальной релевантностью по отношению ко всем другим строкам.
...
Рейтинг: 0 / 0
Удаление нерелевантных записей
    #38858198
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OlegONзадача в выделении строки с минимальной релевантностью по отношению ко всем другим строкам.Не бывает "ко всем другим". Релевантность считается для двух записей.
Предполагаю, что задачу можно решить, например, выбрав запись, для которой сумма релевантностей всем записям таблицы минимальна. Типа (схематично)

Код: sql
1.
2.
3.
4.
5.
SELECT t1.id
FROM table t1, table t2
GROUP BY t1.id
ORDER BY SUM(MATCH t1.txt AGAINST t2.txt) ASC
LIMIT 1
...
Рейтинг: 0 / 0
Удаление нерелевантных записей
    #38858203
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OlegON,

Критерии "релевантности" - какие? Только по количеству совпадающих слов?
48% - тоже "слово"?
2*75Г. - опять "слово"?

Алгоритм примерно следующий:

1. Создаете "таблицу слов". К каждому слову добавляете поле "частота встречаемости этого слова в строках".
2. Составляете запрос, который тупо суммирует "частоту встречаемости слов" из строки. Строки с минимальной частотой и будут "нерелевантными".
2.1. подзапросом разбиваете строку на слова.
2.2. джойните подзапрос слов с таблицей слов.
2.3. суммируете частоты для найденных слов, группируя слова по иденту строк.
2.4. сортируете по возрастанию суммы.
2.5. отрезаете сколько надо "минимальных" результатов.

Как-то так.
...
Рейтинг: 0 / 0
Удаление нерелевантных записей
    #38860015
OlegON
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо большое за ответы, на самом деле задача достаточно расплывчатая с точки зрения на сам алгоритм.
Надеялся на неизвестные мне возможности полнотекстового поиска.
Т.е. критерии релевантности мне не известны, надо выкинуть бананы из шоколада :)
Со словарем, боюсь, не получится, речь идет о миллионах строк. Пошел дальше думать над сложением релевантности, как было предложено Akina.
...
Рейтинг: 0 / 0
Удаление нерелевантных записей
    #38860030
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OlegONнадо выкинуть бананы из шоколада :)А "банан в шоколаде" нужно выкидывать или нет?

Я бы пошел от статистического пути. Например, выделить первые слова, привести к нормальной форме, сгруппировать с подсчетом количества, просмотреть глазом на предмет откровенного мусора (заодно научиться его автоматически фильтровать), разбить на два подмножества - которые встречаются в качестве первых слов больше некоторого порога и меньше его же. Первое подмножество - шоколад без бананов. Второе просмотреть глазами. Попутно можно посмотреть, где и почему слова с первой позиции встречаются на других позициях.
...
Рейтинг: 0 / 0
Удаление нерелевантных записей
    #38860063
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft,

Там первая же строка - "крах" всем "первым словам". :)

На самом деле, мимо словаря - эта задача практически не решается. Кстати, словарь растет гораздо медленнее "миллиона строк". Я когда-то тоже боялся словарей. В Зализняке - около 95тыщ ... и из них полезных для товарного анализа ... упс менее 60тыщ. :)
...
Рейтинг: 0 / 0
Удаление нерелевантных записей
    #38860065
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OlegON,

Тем более. Вы верно оцениваете сопоставление ваших "миллионов" строк "каждую со всеми остальными" (миллион сравнений по миллиону для одного миллиона строк) :)
...
Рейтинг: 0 / 0
Удаление нерелевантных записей
    #38860067
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109Там первая же строка - "крах" всем "первым словам". :)Ну почему же? Она пойдет во второе подмножество, из которого его можно будет вытащить в процессе "посмотреть, где и почему слова с первой позиции встречаются на других позициях".

Я к тому, что слова, которые часто встречаются на первой позиции, имеют значительно большую вероятность оказаться наименованием товара, нежели остальные.
...
Рейтинг: 0 / 0
Удаление нерелевантных записей
    #38860090
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OlegONречь идет о миллионах строк. Пошел дальше думать над сложением релевантности, как было предложено Akina.Не думай. Триллион полнотекстовых сравнений и миллион суммирований ни один сервер не выдержит.

Ищи способ автоматической категоризации или словаризации значений. Хотя бы на пару порядков.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Удаление нерелевантных записей
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]