Заканчиваем измерять блог.
Мы остановились на форме запроса (
вопроса). Утверждалось, что удобнее всего запросить подходящих авторов подсунув "'эталонного" - найди похожих или фрагмент текста - найди пишуших так же. Алгоритмы для сравнения предлагалось побрать среди наработанных для задачи определения авторства или выявления плагиата. Вроде бы этого должно хватить, но всегда же хочется большего! Попробуем добавить ещё один механизьм.
Есть важное отличие поиска авторов от поиска документов: обычно автор "настучал" заметно больше "букфф" (и слов), чем есть в нормальном документе. Где-то интуитивно хочется оценить объём половозрелого блога в
50+kb (постов)
. Понятно, это пальцем в небо, но если размер заметно меньше, всякие статистические вкусности будут работать грубо (да и чего его искать, если он маленький такой).
Если же слов достаточно, то машинка вполне могла бы выдавть статистику встречаемости слов (символов) и сравнивать их с распрделением по всему массиву блогов. Тогда стало бы возможным распознавать (и отбирать) авторов по характерному набору словечек (жаргону) или же "выщемлять" этот жаргон, предварительно отобрав блоги по другим признакам (пол, возраст и род занятий). К примеру, если частота встречаемости
скобок, кавычек и звёздочек у автора заметно выше средней - он, скорее всего, програмер (может бывший). Если часто встречается набор слов
"сервер", "скуль", "жопа'' и "бубен'' - вполне может оказаться сисадмином. У кого что болит, тот про то и .. пишет.
Конечно же, такие запросы было бы удобно называть и сохранять (а они могут быть объемными) . Наверное, их можно было бы "складывать" - т.е. применять последовательно.
Gatekeeper, это ещё не "фильтрационная решётка"? - нет наверное, но мы двигаемся!
Перейдём к
ответам: поскольку список отобранных авторов должен, по идее, быть компактным, я бы выводил его в таблицу. Строки - авторы, столбцы - значения реквизитов (пол, возраст..) и функций (число ПЧ, записей, друзей..). Конечно же, структура столбцов должна настраиваться пользователем.
Итак, в сухом остатке, для сравнения блогов нам нужно:
- индексирующий движок, с группировкой по автору;
- способ апдейтить индекс - на сервере, либо через ATOM feed (RSS-хуже), ползать спайдером по сайту будет не практично;
- реализация функций сравнения текстов методами задачи проверки авторства, для начала можно взять код Хмелёва Лингвоанализатор;
- реализация статистических функций анализа текста - точно не надо писать самому - суффиксы, префиксы.. где-то есть готовое;
- и самый креатив - придумать способ сохранения настроек фильтров и выдачи результатов;
На мой взгляд вполне обозримо. Технические детали можно обсуждать. Главное, если делать, то для кого и как продать?
Но об этом в следующей серии...