Победить дубликаты
В разнообразных тематических и не очень социальных сообществах каждый получает возможность донести какие-то свои мысли, идеи или просто опыт до других людей. При этом, естественно, лишь малая часть задумывается о том, что до них эти идеи были уже придуманы, мысли высказаны вслух (или попросту банальны и известны всем), а пришедшая в голову тема уже обсосана до косточек. Отсюда при достаточной популярности сетки возникают дубликаты новостей или любых других тем (например, помните засилье СуперХабра на главной?). Ну вы знаете, это когда кричат боян и минусуют.
Справедливости ради, надо сказать, что это происходит не только на таких сайтах. Среди блоггеров (и не только их) достаточно часты случаи единовременного перевода одного и того же текста. В данную секунду делается еще сотня проектов с одной функциональностью, несмотря на то, что уже существует десяток таких же. Это вообще распространенная проблема любых социумов.
Ведя речь именно о форумах и тематических сообществах вроде Хабрахабра или любого другого (который в данный момент делаете вы, например), можно сказать, что проблему дубликации можно решить простым и элегантным способом, который не заставит пользователя делать лишние движения. Ведь пользователи слишком ленивы, чтобы пользоваться поиском, - все думают, что они самые уникальные, самые умные и самые красивые.
Возьмем за пример поисковые системы, в которых сравнительно недавно появилась автоподсказка по набираемому запросу. В ней нет ничего сложного, но популярные запросы стало набирать проще.

Та же история с адресной строкой в браузере, которая позволяет снизить количество набираемых букв, если вы уже были на этом сайте.
Примерно такой подход, с небольшими изменениями, можно использовать и для победы над дубликатами в социальных сетях.

Алгоритм простой:
1. При добавлении топика вводятся идентификационные данные, которые можно использовать для поиска (на Хабре это заголовок и теги).
2. Выводится список схожих тем, в которых присутствуют слова из заголовка и тегов (из списка исключаются предлоги, используются частые замены вроде "Apple" -> "Эппл", возможна морфология в простейшем виде с обрезанием окончания "совещание" -> "совещан" и дальнейшим поиском).
2а. Если такая тема уже есть, пользователь может перейти в нее.
2б. Если нет - продолжает создание топика. На следующей странице он уже заполняет остаточную информацию (текст топика, дату и т.д.).
Конечно, все зависит от концепции сети. Если публикуются ссылки новости с небольшим по объему дисклаймером (как на news2, например), то ни к чему увеличивать количество страниц. К тому же, для ускорения процесса можно производить поиск в базе только по записям за последнюю неделю или использовать AJAX и выводить все сразу же, на странице добавления топика.
Такое техническое решение достаточно простое, чтобы его можно было легко реализовать на любой платформе. Однако, подобная реализация была встречена только однажды - в социальной сети предсказателей ziitrend. Для наглядности можете посмотреть скриншот, на котором дубликат побежден окончательно и бесповоротно. UPD. Ну и, естественно, забыл столп соцкультуры Digg.
Примечание. Да, проблема опять решена не полностью - например, в случае одновременного добавления (можно заносить во временную базу идентификационные данные и сигнализировать, что такой топик создается) или в случае идиотов, которые все равно будут добавлять свой топик, мотивируя тем, что "это не то".
И да, на самом деле, эта идея не нова. Не забывайте о ней в своих проектах.
Справедливости ради, надо сказать, что это происходит не только на таких сайтах. Среди блоггеров (и не только их) достаточно часты случаи единовременного перевода одного и того же текста. В данную секунду делается еще сотня проектов с одной функциональностью, несмотря на то, что уже существует десяток таких же. Это вообще распространенная проблема любых социумов.
Ведя речь именно о форумах и тематических сообществах вроде Хабрахабра или любого другого (который в данный момент делаете вы, например), можно сказать, что проблему дубликации можно решить простым и элегантным способом, который не заставит пользователя делать лишние движения. Ведь пользователи слишком ленивы, чтобы пользоваться поиском, - все думают, что они самые уникальные, самые умные и самые красивые.
Возьмем за пример поисковые системы, в которых сравнительно недавно появилась автоподсказка по набираемому запросу. В ней нет ничего сложного, но популярные запросы стало набирать проще.

Та же история с адресной строкой в браузере, которая позволяет снизить количество набираемых букв, если вы уже были на этом сайте.
Примерно такой подход, с небольшими изменениями, можно использовать и для победы над дубликатами в социальных сетях.

Алгоритм простой:
1. При добавлении топика вводятся идентификационные данные, которые можно использовать для поиска (на Хабре это заголовок и теги).
2. Выводится список схожих тем, в которых присутствуют слова из заголовка и тегов (из списка исключаются предлоги, используются частые замены вроде "Apple" -> "Эппл", возможна морфология в простейшем виде с обрезанием окончания "совещание" -> "совещан" и дальнейшим поиском).
2а. Если такая тема уже есть, пользователь может перейти в нее.
2б. Если нет - продолжает создание топика. На следующей странице он уже заполняет остаточную информацию (текст топика, дату и т.д.).
Конечно, все зависит от концепции сети. Если публикуются ссылки новости с небольшим по объему дисклаймером (как на news2, например), то ни к чему увеличивать количество страниц. К тому же, для ускорения процесса можно производить поиск в базе только по записям за последнюю неделю или использовать AJAX и выводить все сразу же, на странице добавления топика.
Такое техническое решение достаточно простое, чтобы его можно было легко реализовать на любой платформе. Однако, подобная реализация была встречена только однажды - в социальной сети предсказателей ziitrend. Для наглядности можете посмотреть скриншот, на котором дубликат побежден окончательно и бесповоротно. UPD. Ну и, естественно, забыл столп соцкультуры Digg.
Примечание. Да, проблема опять решена не полностью - например, в случае одновременного добавления (можно заносить во временную базу идентификационные данные и сигнализировать, что такой топик создается) или в случае идиотов, которые все равно будут добавлять свой топик, мотивируя тем, что "это не то".



комментарии (46)