Я делаю анализатор чата со статистикой по использованным оскорбительным словам и соответствующей оценкой.
Структура таблицы:
Сообщения: id - уникальный идентификатор сообщения, from_id - идентификатор отправителя, дата -дата отправки, текст - текст.
Оскорбительно:
id - уникальный идентификатор оскорбительного слова, найденного в сообщении, type - числовое значение, связанное с корнем оскорбительного слова,from_id - идентификатор отправителя (такой же, как в сообщениях), in_message - идентификатор сообщения, в котором используется это оскорбительное слово, text - само оскорбительное слово.
Далее я делаю следующий запрос для созданияребята:
SELECT from_id, COUNT(*)
FROM `Offensive`
GROUP BY from_id
ORDER BY `COUNT(*)` DESC
Однако мошенники начали писать сообщения типа «ебать, ебать, ебать, ебать».повысить свой рейтинг.Я думаю, что я могу просеять этот вид мошенничества, создав рейтинг с помощью запроса, который не учитывает более определенного количества оскорбительных слов за N раз, но, к сожалению, я не знаю, как это сделать...
Я также попробовал это:
SELECT from_id, COUNT(*)
FROM (
SELECT count(*), from_id, in_message
FROM `Offensive`
GROUP BY in_message
HAVING `count(*)`<100
) AS lol
GROUP BY from_id
ORDER BY `COUNT(*)` DESC
- не учитывать сообщения, содержащие более определенного количества оскорбительных слов, но в этом случае это просто занимает не болееодно оскорбительное слово на сообщение