Как пример того для чего Скиур может использоваться – в каталоге сайтов Енота Поискуна сейчас 2148 ссылок посвящённым тематике закупок и присутствия российского государства в сети.
В своё время, чтобы не делать каталог просто набором ссылок, для него был создан специальный скрипт который время от времени проходил по ресурсам в каталоге и занимался обнаружением RSS лент каковых набралось чуть более 170.
1. Вначале проверяется можно ли сформировать RSS ленту по странице сайта в каталоге
2. Если не получается, то запускается алгоритм анализа страницы (и сайта) построения объектной карты сайта и из результатов его работы извлекаются разделы относящиеся к новостям.
3. Для найденных разделов проверяется можно ли по нему сформировать RSS ленту.
4. Если RSS лента формируется, то ссылка на неё добавляется в каталог и доступна для посетителей.
В итоге, примерно 20% всех распознанных лент идут не с главных, а с новостных страниц выявленных при анализе. При этом сам алгоритм построения объектной карты сейчас, объективно, несовершенен и всё ещё в работе, поскольку времени на него нужно больше чем у меня есть, но для узких задач вроде этой вполне уже применим.
Распознавание новостей всё ещё идёт прямо сейчас, но как промежуточные итоги могу сказать что:
1. Распознаются новости у, примерно, 65% сайтов. Это много, это даже очень много, куда больше чем я ожидал.
2. Причинами нераспознавания остальных 35% может быть, пока предварительно, поскольку требуется ручная проверка результатов:
- 35% случаев - нет новостей на сайте или новости подаются без дат;
- 15% случаев – кодировка не распознаётся, а дата содержит русскоязычную часть, например, название месяца
- 10% случаев – не распознаётся структура сайта. Обычно Скиур автоматически разбирает HTML и понимает как располагаются новостные блоки и как их собрать в RSS ленты, но есть случае когда этого сделать не удаётся;
- 15% случаев – неизвестный формат даты. Эта проблема быстро решается за счёт снижения скорости распознавания и именно по этой причине не решена в онлайновой версии алгоритма;
- 20% случаев – новости на сайте есть, но не на главной странице, а на новостных страницах, а алгоритм построения объектной карты эти разделы не нашёл;
- 5% случаев – сайт недоступен или отвечает слишком долго (более 30 секунд).
Основной недостаток всего этого процесса – производительность. Объективно много времени уходит на распознавание новостных блоков, их выравнивание и на построение объектных карт. Причём здесь оптимизация имеет три составляющие:
1. Техническая – изменение библиотек разбора HTML, оптимизация кода и т.д.
2. Алгоритмическая – применение уже накопленных наработок для ускорения распознавания дат. Частично это уже применяется, но, тут ещё требуются исследования и довольно затратные
3. Промышленная – сбор метаданных о процессе анализа и предварительное обучение алгоритма с построением шаблонов распознаванием и с динамической перестройкой шаблонов при выявлении несоответствий.
Плюс в процессе анализа сайтов определяются остальные их фичи – вроде ключевых разделов, коммерциализация, CMS, технология на которой он сделан, но это уже совсем другая история.
Пока что Скиур остаётся некоммерческим, но уже выходит из статуса экспериментального, а если походить по каталогу, то можно увидеть ссылки RSS лент ведущие на Скиур.
RSS