Фильтрация контента и тематический поиск

Давно зревшие у рассуждения, а сейчас ещё и подтолкнутые ситуацией, извиняюсь за неприличное слово, со «школьным порталом».

Вопрос в том как правильно обеспечить контентную фильтрацию, при этом обеспечив достаточный объём информации.

1. Белые списки

В первую очередь эта технология применима как раз если говорить о тематических поисковиках. Составляется список «белых» модерируемых ресурсов которые категоризируются при необходимости и активно пополняются. Соответственно любой поисковый запрос охватывает только те ресурсы которые в этом списке перечислены, но не более. Суть в том что борьба за чистоту результатов, переносится на уровень предварительной разрешительной фильтрации источников этих результатов.

Технологии и продукты создания поиска по белым спискам:

  • Flexum http://www.flexum.ru — проекта компании «Поисковые технологии». Позволяют создать свой поисковик по выбранным сайтам, регулировать их индексирование и так далее. Для каждого поисковика индекс свой и индексирование индивидуальная. Также есть возможность управление классификацией, выдачей результатов и много другого вкусного. Если бы я не использовал Google Coop ранее, то выбрал бы именно Flexum.
  • Google Coop http://www.google.com/coop —  даёт возможность построить свой маленький поисковик над поисковым индексом Google, при этом можно настроить его только на работу по белому списку, внеся перечень необходимых для поиска ресурсов.
  • Яндекс.XMLhttp://xml.yandex.ru — не так удобно как Flexum или Coop так как требуется, но вполне приемлим
  • IBM Omnifind Yahoo Edition http://omnifind.ibm.yahoo.net — совместная IBM/Yahoo разработка для корпоративного и тематического поиска. Требует отдельного сервера и предварительной инсталляции и настройки, зато нет зависимости от внешнего сервиса. Также умеет индексировать по белому списку.

Для того же «школьного поиска» могла бы использоваться любая из этих технологий с равным успехом и относительно небольшими затратами.

2. Блокировка поиска по ключевым словам/фразам.

Классический метод который используют, те же edu.gogo.ru, school.yandex.ru и google.com в режиме максимальной фильтрации.

Составляется список ключевых слов наиболее часто используемых для получения взрослого и неприличного контента. При обнаружении что пользователь использует данное ключевое слово или фразу, результаты поиска не выводятся и либо выдаётся пустая страница результатов, либо предупреждение от фильтра. Здесь есть свои забавности так как русский язык весьма двусмысленнен и одни и те же слова в разных контекстах могут быть как матерными так и вполне приличными.

Так «член» — это скорее неприличное слово и, возможно, блокировать его надо, но в контексте «член-корреспондент академии РАН» вполне приличное. Итого необходимо не просто составить список «плохих слов», а работа фильтра должна быть по аналогии с работой правильного файервола. А то есть, ключевое слово должно быть, на самом деле, правилом имеющим вес и категорию (запретить, разрешить) и приоритет. Альтернатива — это привязывать «корректные словосочетания» к слову/фразе с неприличным содержанием и делать проверку по белому списку таких словосочетаний для найденных слов. В любом случае это только эскизное описание алгоритма, его можно описать и куда точнее.

Проблема блокировки поиска по ключевым словам в том что многие сайты со взрослым содержимым могут под них не попадать, а «неприличное содержание» и просто порнография могут выпадать на невинные запросы вроде «славная киска» или «тёлочка«. Фактически блокировка по ключевым словам помогает лишь в случаях целенаправленного поиска  неприличностей, но не спасает от приличных запросов с «неожиданным результатом». Плюсы блокировки по ключевым словам — в относительной простоте реализации.

Именно на этом принципе работает небезызвестный школьный поиск через edu.gogo.ru с небезызвестными результатами и в семейном поиске Яндекса (family.yandex.ru) с лишь чуть лучшими результатами.

Ещё одна из проблем блокировки по ключевым словам в том что их тысячи и даже простые эксперименты вроде тех что я привёл выше, позволяют их обойти. Не говоря уже о том что многие используют слэнг в итоге поддержание активного блокировочного списка требует, либо операторов, либо «социализации» с привлечением активных посетителей к подбору подобных слов.

3. Блокировка индексирования по ключевым на странице

Более сложная логика требующая поддержки на уровне индексатора поисковика. При индексировании страницы он должен проверить есть ли на ней ключевые слова из блокируемого списка и, по их наличию, либо не индексировать страницу, либо метить её как «содержание для взрослых» и показывать лишь при снятии ограничительных фильтров.

Подобный механизм фильтрации используется в Google и Yahoo где можно использовать Safe Search, но, к примеру, не используется в Яндексе.

4. Блокировка по пользовательским меткам

При просмотре результатов поиска или материалов на сайте у пользователей есть возможность пометить страницу, видео или изображение как «только для взрослых». Поисковик учитывает подобные метки как и метки назначенные автоматически при индексировании. Детали реализации алгоритма могут отличатьс и социализация фильтра может обеспечиваться как метками на индексируемых сайтах, так и метками пользователями поисковика — суть в том что это не гарантия отсутствия взрослого контента, а лишь его уменьшение. Тем не менее такой подход действенен для крупных социальных сайтов вроде youtube.com или livejournal.com.

5. Ноу-хау распознавания изображений

Ещё в 2001 году были публикации о алгоритмах распознавания кожи процента открытой кожи на изображениях и мало что изменилось с того времени. Автоматика без исскуственного интеллекта здесь будет невозможна, но то что такие алгоритмы некоторыми поисковиками всё же используются — это факт.

6. Ручная чистка индексов и ключевых фраз

Говорят что высокая релевантность Google определяется не только алгоритмами, но и наличием множества операторов которые постоянно вычищают из индексов спам. Проблема здесь в стоимости таких работ и в её объёмах учитывая миллиарды индексируемых документов.

Как резюме. Я считаю что стоит разнести два понятия «защищённый поиск» и «фильтруемый поиск».

Защищённый поиск — это блокировка взрослого контента на 99%

Фильтруемый поиск — частичная и негарантированная блокировка контента.

Так вот построенить защищённый поиск можно только при работе по белому списку и никак иначе. Все остальные алгоритмы блокировки могут лишь улучшить качество текущей поисковой выдачи.

Кроме того фильтрацию контента можно улучшить следующим образом:

1. Социализировать подборки ключевых слов для внесения в блок-лист. Можно хоть в виде отдельной соц. сети, можно прямо в интерфейсе поисковика. Плюсы есть у обоих подходов. В случае соц. сети возможно создание общего списка блокированных слов, а различные поисковики могут пополнять свои внутренние блок-листы из него, а также проще модерация и голосования. В случае же интерфейса поисковика — внести блокированное слово может каждый его пользователь, но модерацию придётся проводить уже оператором поисковика.

2. Введя возможности установки пользовательских меток в сопряжённом с поиском сервисами.

Так одна из проблем того же edu.gogo.ru в том что кроме основного поискового индекса он также выдаёт результаты с социальных сервисов mail.ru, вроде video.mail.ru или «Ответы». В идеале этих результатов вообще не должно быть, но если им и быть то социальная фильтрация необходима.

About This Author

Яндекс.Метрика