Как найти дубли в базе

Статус
В этой теме нельзя размещать новые ответы.

webinteger

Читатель
Заблокирован
Регистрация
8 Авг 2007
Сообщения
17
Реакции
3
  • Автор темы
  • Заблокирован
  • #1
Есть доска объявлений, и порой подают одно и то объявление несколько раз, или изменят 1-2 слова и добавляют снова. Каким способом можно выбрать такие похожие объявления. У меня есть идея считать количество определенных букв и записывать в отдельную колонку потом при добавлении сверить, может у кого-то будут лучшие идеи.
 
Буквы счетать бесполезное занятие.

Первое, нужно запретить постить ботам (правильная капча и т.д.).

Второе, без модерации не обойтись. А ещё лучше предмодерации.

Втретьих, в таких сообщениях должна быть информация об обратной связи, следовательно можно фильтровать по ней.
 
  • Автор темы
  • Заблокирован
  • #3
Первое, нужно запретить постить ботам (правильная капча и т.д.). - есть

Второе, без модерации не обойтись. А ещё лучше предмодерации. - есть , но хочется избавитса от модерации.

Втретьих, в таких сообщениях должна быть информация об обратной связи, следовательно можно фильтровать по ней. -
пользователи дают несколько объявлений разного содержания, но контактная информация одинакова.

Мне посоветовали писать алгоритм высчитывания позиций слов в тексте, но покищо я не представляю как.
 
есть в пхп функция, levenshtein()
Для просмотра ссылки Войди или Зарегистрируйся
длина строки ессно ограничена, но эт всё решаемо..
имхо создать базу подозрительных сообщений, а потом сравнивать новое сообщения с подозрительными с использованием этой функции.. если число мало, значит скорее всего сообщение уже есть...
 
  • Автор темы
  • Заблокирован
  • #5
есть в пхп функция, levenshtein()
Для просмотра ссылки Войди или Зарегистрируйся
длина строки ессно ограничена, но эт всё решаемо..
имхо создать базу подозрительных сообщений, а потом сравнивать новое сообщения с подозрительными с использованием этой функции.. если число мало, значит скорее всего сообщение уже есть...

"создать базу подозрительных сообщений" - ето уже ручная модерация, + от етой функціии мне говорили сервак может упасть , уявите в базе 10000 сообщений , каждий день добавляетса около 80 штук.
 
Вариант из теории поисковых систем - есть статьи как определяются сходие страницы (дубли). Там чистая математика и статистика...

Например, сделать свертку текста в большое число или функцию, так чтобы при отличии нескольких слов отличались только некоторые разряды функции. И потом эти функции сравнивать...

Весной мне попадалась пара таких статей на русском - сейчас не могу вспомнить где именно...
 
  • Автор темы
  • Заблокирован
  • #7
Точнее можете указать в какую сторону рыть, как оказывается данный вопрос интересует не только меня, вчера написал вебмастеру одной доски объявлений как он борется с дублежами, он отписал что ручной модерациею, и тоже хотел бы программно фильтровать. Вопрос очень актуален, только ответов никак неможу найти.
 
Знаешь, у тебя скорее вопрос не из области программирования, а удобства пользователя.
Как ты ранее сказал, у тебя стоит капча из чего следует вывод, что пользователи специально заходят на борду, чтобы добавить такое же сообщение.
Далее мыслим логически, они это делают не просто так, а с какой то целью. Нужно определить эту цель и предоставить им более удобное средство достигать эту цель.
В результате пользователям работать с бордой удобнее, и ты не паришся с ду***ми объявлений.

p.s. Сдается мне, что они просто хотят чтобы их объявление было первым в списке ;)
p.p.s Почитай чтонибудь по юзабилити.
p.p.p.s. Есть более злобный вариант, сделать так, чтобы пользователям было невыгодно плодить объявления :)
 
а не проще сначала проверять наличие существования обявления в базе?
 
можно выбрать все слова из объявления в массив, упорядочить их и сравнить с такими же массивами объявлений, котовые уже есть в базе...
если количество совпадений близко к количеству слов в объявлении - значит это дубль (только надо исключить короткие обявления - иначе сообщения в пару слов не пройдут проверку)...

решение конечно кривоватое, но сработать может...
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху