XTR Опубликовано 11 Октября 2007 Жалоба Поделиться Опубликовано 11 Октября 2007 Всем админам и модерам форумов прекрасно известно такое явление, как кросспостинг т.е. создание одинаковых сообщений или тем в разных темах и разделах соответственно.Это сильно раздражает и пользователей и админов/модеров. Было бы неплохо, если бы перед публикацией сообщения оно проверялось на уникальность т.е. сравнивалось с последними, например, 100 сообщениями на форуме или с сообщениями за последние X минут (в зависимости от нагруженности сервера уже это можно подстроить).При чем сравнивать можно только с сообщениями от этого логина, что значительно ускорит проверку.Сообщение, заподозренное в том, что оно уже публиковалось отправляется на проверку модератором, например, или сразу в корзину, но пользователь ничего видеть не должен, чтобы он не начал его переделывать. Хороший алгоритм поиска нечетких дублей я пока точно не знаю, но есть идеи по простым и незамысловатым проверкам. Такой алгоритм было бы неплохо встроить в сам форум, но, можно и в виде отдельной модификации. Кто мог бы написать такой модуль с учетом наличия алгоритма поиска нечетких дублей? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
WildRAID Опубликовано 11 Октября 2007 Жалоба Поделиться Опубликовано 11 Октября 2007 Думаю, в этом случае пользователи начнут экспериментировать с этой модификацией. Тестировать алгоритм отсеивания сообщений. Даже если тихо все сделать - все равно заметят и раскусят. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
XTR Опубликовано 11 Октября 2007 Автор Жалоба Поделиться Опубликовано 11 Октября 2007 Думаю, в этом случае пользователи начнут экспериментировать с этой модификацией. Тестировать алгоритм отсеивания сообщений. Даже если тихо все сделать - все равно заметят и раскусят. Не каждый будет раскусывать - это во-первых Во-вторых, алгоритм можно и поменять, если что. Любой алгоритм можно обмануть, желающие всегда найдутся, но таковых крайне мало. Поэтому это не повод не писать такою модификацию Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Sannis Опубликовано 11 Октября 2007 Жалоба Поделиться Опубликовано 11 Октября 2007 В общем сложностей написать-то нет, есть 3 принципиальных минуса:1. Прийдётся в таблицу постов добавлять булево поле "не копия ли этот пост".2. Прийдётся во всех запросах вывода постов дописывать условие связанное с этим полем, это долго и к тому же ухудшает запросы, ибо будут увесистей запросы для любых постов, и правильных и неправильных.3. Прийдётся во всех установленных и устанавливаемых модах, которые могут быть с постами связаны, додумывать как изменять запросы. Могу сказать по своему опыту, что пункты 2-3 иногда могут вызывать затруднения. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 11 Октября 2007 Жалоба Поделиться Опубликовано 11 Октября 2007 компьютер не человек, искусственный интелект еще не изобрели, что значит проверка на уникальность?я могу заменить слова синонимами и переставить порядок слов, после чего вряд-ли какой-либо алгоритм сможет быстро определить сходствоа долгий сложный алгоритм загрузит и без того алчный ипб, которому и 16МБ мемори лимита мало Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
xRay Опубликовано 11 Октября 2007 Жалоба Поделиться Опубликовано 11 Октября 2007 Ну если только текст поста на уникальность проверять, но имхо это бесперспективняк Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
XTR Опубликовано 12 Октября 2007 Автор Жалоба Поделиться Опубликовано 12 Октября 2007 (изменено) Arhar, вы знаете, что поисковые машины, например, Яндекс отлично определяют нечеткие дубли? Как я уже писал выше, любой алгоритм можно обмануть, но для этого его надо исследовать, а этим будут заниматься единицы из сотен тысяч, а для форума вообще вряд ли кто. Sannis, добавлять к таблице ничего не придется. При поступлении текста поста в скрипт делается проверка на уникальнось по описанному выше приницпу, и если пост является дублем, то есть несколько вариантов:1) Выводится сообщение об ошибке.2) Ничего не выводится, пользователь просто перебрасывается в тему, в которой пытался запостить.3) Пользователь перебрасывается на тот пост, который является дублем к постируемому посту.4) Посту сразу присваивается раздел "Корзина", чтобы модератор потом смог видеть "откуда ноги растут". Скрипт определения нечетких дублей я могу сделать и сам, а вот встроить скрипт в форум не смогу. Изменено 12 Октября 2007 пользователем XTR Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Sannis Опубликовано 12 Октября 2007 Жалоба Поделиться Опубликовано 12 Октября 2007 Аффтар, перечитайте ваш первый пост. Сообщение, заподозренное в том, что оно уже публиковалось отправляется на проверку модератором, например, или сразу в корзину, но пользователь ничего видеть не должен, чтобы он не начал его переделывать.Для того чтобы пользователь не догнал что произошло, нужно сделать так чтобы он думал что сообщение добавилось. Если же сделать по этим 4м пунктам, то он нажмёт "Назад", отредактирует сообщение и запостит. А нужно чтобы оно добавилось, но помеченное как дубль: для автора видно, а для остальных - нет. А тут в силу вступает ещё фишка, если это первое сообщение темы и он даст на неё ссылку, то всё тоже вскроется, ибо для него она видна, а для остальных нет. P.S. Так что следует поработать над ТЗ, чтобы без неясностей и всё логично было. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
XTR Опубликовано 12 Октября 2007 Автор Жалоба Поделиться Опубликовано 12 Октября 2007 Sannis, пользователь может и увидеть, что произошло - это не так важно. Пусть редактирует сколько влезет.Посту можно присвоить статус "на модерации", например. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Sannis Опубликовано 12 Октября 2007 Жалоба Поделиться Опубликовано 12 Октября 2007 Ну. Если пост уйдёт на модерацию, пользователь его больше не увидит, заподозрит неладное. А если он сможет вернуться и подправить чтобы система не определила что это дубль - грош ей цена. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
XTR Опубликовано 12 Октября 2007 Автор Жалоба Поделиться Опубликовано 12 Октября 2007 (изменено) Ну. Если пост уйдёт на модерацию, пользователь его больше не увидит, заподозрит неладное. Вот и хорошо - напишет модератору, а тот ему покажет соотв. пункт правил форума Можно написать сразу, что это дубль и отправить его невозможно. Большинство просто забьет, а особо упорные будут наказаны позже модератором в крайнем случае А если он сможет вернуться и подправить чтобы система не определила что это дубль - грошь ей цена. Повторю еще раз: любую защиту можно обойти, весь вопрос в цене и временных затратах. И это не повод не делать защиту. Какие есть варианты действий в IPB при обнаружении дубля без изменения таблиц? Изменено 12 Октября 2007 пользователем XTR Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Sannis Опубликовано 12 Октября 2007 Жалоба Поделиться Опубликовано 12 Октября 2007 Тогда сначала нужно увидеть интефейс модуля проверки на дубль. И вы должны понимать, что это очень большая нагрузка на базу в любом случае, ибо с ней сравнение будет идти. А прикрутить можно будет одной строчкой. P.S. Хотя бы в псевдокоде. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
XTR Опубликовано 12 Октября 2007 Автор Жалоба Поделиться Опубликовано 12 Октября 2007 (изменено) Выбрать посты пользователя за последние 24 часа, например, но не более 30-50 штук в массив - это большая нагрузка? Прошу меня не смешить Проверка на дубликат - это уже моя забота и делаться скорее всего будет на PHP, а не средствами MySQL. Есть несколько идей по поводу алгоритма, но их надо опробовать на живых текстах на всякий случай, чтобы подобрать параметры. Изменено 12 Октября 2007 пользователем XTR Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 12 Октября 2007 Жалоба Поделиться Опубликовано 12 Октября 2007 тогда делайте алгоритм самой проверки, а прикрутить будет легко Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
XTR Опубликовано 12 Октября 2007 Автор Жалоба Поделиться Опубликовано 12 Октября 2007 Arhar, я готов заплатить денежку (в разумных пределах) IBR за такой модуль, а алгоритм сравнения я отлажу еще до этого.Модулю только нужно дать две переменных - пост и очередной пост из базы (в цикле). Соответственно в настройках хорошо бы задавать сколько постов максимально можно брать и за сколько прошедшего времени (за N часов, но не более N постов - это, если пользователь очень активен, чтобы не перегружать сервер все-таки, хотя вероятность такого крайне мала).Можно еще 2 или 3 варианта ответа, но мы тут подумали и решили, что наиболее честным и правильным будет просто сообщение о том, что пользователь постит дубль. Особо упорных придется учить уже модератору Если IBR готова написать такой модуль - прошу озвучить условия в личку Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 12 Октября 2007 Жалоба Поделиться Опубликовано 12 Октября 2007 IBR тут не причем, я просто ради спортивного интереса спрашиваюнасчет прикрутить, так это пожалуйстамогу даже сделать настройку группы - если в админке стоит да в графе сканировать на дубли, то будет жесткая загрузка, а если нет, то впередможно таким образом исключить админов, модераторов, ну и проверенных пользователей, допустимсоздадите группу, в которую попадают при наборе 30 сообщений... Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
XTR Опубликовано 12 Октября 2007 Автор Жалоба Поделиться Опубликовано 12 Октября 2007 Ок, как будет отлажен механизм сравнения текстов на дублированность - сразу отпишусь и сделаем модуль Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 12 Октября 2007 Жалоба Поделиться Опубликовано 12 Октября 2007 теперь заинтересован достаточно глубокопришел один наглец и создал 26 одинаковых рекламных сообщений) Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 12 Октября 2007 Жалоба Поделиться Опубликовано 12 Октября 2007 Надо ставить защиты от ботов. Сумлеваюсь, что он вручную их набил. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 12 Октября 2007 Жалоба Поделиться Опубликовано 12 Октября 2007 вручнуюоставил дурак свой номер аськи, а сообщения копипастилнайдем по горячим следам защита - код Гаррета плюс тема рекламы такая, что только МИРЭА касается Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
XTR Опубликовано 12 Октября 2007 Автор Жалоба Поделиться Опубликовано 12 Октября 2007 (изменено) Собстенно, самый первый вариант алгоритма готов - две простых проверки, но работают, кажется, неплохо.По шинглам Бродера я не стал делать т.к. это довольно ресурсоемкое занятие, да и для форумских постов не нужно такое качество. Впрочим, посмотрим, может позже сделаю Единственное, что перед сравнением постов надо вырезати цитирование из них.А в остальном, кусок кода на входе получает в двух переменных текст поста и очередной кусок из базы, а на выходе выдает 1 (дубль) или 0 (не дубль).Можете смело писать модуль, код пришлю куда надо - он простейший, может еще и доработаете более профессионально Song, защита от ботов - это капча? Если поставить ее на каждый пост, пользователи просто уйдут с форума. Изменено 12 Октября 2007 пользователем XTR Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 12 Октября 2007 Жалоба Поделиться Опубликовано 12 Октября 2007 защит от ботов можно много всяких придумать. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
WildRAID Опубликовано 12 Октября 2007 Жалоба Поделиться Опубликовано 12 Октября 2007 Подумалось, что можно попробовать делать замену знаков препинания на пробелы, затем разбивать пост через explode по пробела, делать trim, приводить к одному регистру. А затем проверять процент совпадений такого массива с теми, которые получим таким же способом из 10 последних постов этого пользователя... И тогда фразы: "Покупайте наших слонов, наши слоны самые большие в мире!" И "Наших купите слонов пожалуйста, они большие!" Будут считаться за дубль... ++++++++++++++ защит от ботов можно много всяких придумать. Зато от грамотного человека защита невозможна. Разве что совсем регистрацию закрыть... Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 12 Октября 2007 Жалоба Поделиться Опубликовано 12 Октября 2007 как невозможна?а бан по ip)))ах, да, динамический блаблабла..ну тогда бан по морде. наши калькуляторы самые большие калькуляторы в мире! Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
XTR Опубликовано 12 Октября 2007 Автор Жалоба Поделиться Опубликовано 12 Октября 2007 WildRAID, не совсем так, ни один алгоритм определения дубликатов не устоит против нормального спамера, особенно, если он будет спамить руками Рекомендую почитать http://community.livejournal.com/ru_ir/845.html и http://download.yandex.ru/IMAT2007/kosinov.pdf Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.