Cегментация веб-страниц и ее проблемы

Определение и получение различных элементов информации с интернета  становится все сложнее и сложнее. Кроме основного контента (статьи, видео) современные веб-страницы содержат большое количество различных элементов, таких как навигационное меню, объявления,  комментарии, различные вставки документов, результаты работы встроенных плагинов социальных сетей и т.д.

Сегментация различных элементов в соответствующие и не соответствующие основному смысловому содержимому части имеет важное значение для повышения качества результатов. Существует несколько областей применения сегментации веб-страниц: (1) Извлечение содержимого для более тесной интеграции с различными социальными сервисами, для предоставления качественной информации аудитории. (2) Удаление информационного шума увеличивает классическую производительности системы. (3) Повышение качества интернет поиска по ключевым словам страницы.

Чаще всего структура веб-страницы (т. е. дерево DOM) анализируется на наличие определенных шаблонов с последующим их удалением.

 

Визуальная проблема

Удивительно, насколько различные  HTML  структуры документов можно встретить на различных веб-сайтах. Этому способствует не только использование различных макетов, но также и то, что есть универсальные способы моделирования  структуры (злоупотребление различными тегами, использование <div>  и <table> верстки и т.д.). Эта ситуация делает сегментацию веб-страницы нетривиальной задачей.

 

Лингвистическая проблема

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

Общепринятое предположении, что вероятность наличия в документе класса х исключительно зависит от вероятности соседних низших классов х - 1:

 

                     

 

Например, если текст разделен на блоки почти одинакового размера, то считается, что вероятности возникновения какого-либо класса отрицательно гипергеометрическая (Закон Фрумкина или законом текстовых блоков):

 

С учетом этого закона для правильной сегментации очевидной стратегией является изучение статистических свойств последующих блоков с точки зрения их количественных свойств.  Целесообразно рассматривать эти распределение для сегментации внутри текстовых блоков. Ципф утверждает, что частота появления объектов определенного класса приблизительно обратно пропорциональна  его порядковому номеру (рангу):

 

 

Возвращаясь к проблеме сегментации веб-страницы, весьма сомнительно, что нахождение какого-либо HTML тега форматирования даст достаточную информацию для проведения правильной сегментации, даст ответ на вопрос отнесения данной информации к основному смысловому содержанию страницы.  Но во всех правилах есть исключения. Есть несколько тегов, наличие которых дает высокий шанс отнесения данной информации к определенному сегменту. Например, при нахождении тегов <H1> ,<H2>,<H3>  с большой долей вероятности можно утверждать, что информация, заключенная в этих тегах относится к основному содержанию страницы, относится к названию. Также очевидно, что отсутствие тегов является сильным индикатором для идентификации информации как пустого блока (атомарного блока).

Таким образом, веб-страницы моделируются в виде серии атомарных блоков, чередующихся  с последовательностью из одного или нескольких открытых и закрытых тегов. Назовем последовательности атомарных блоков - разрывом. Отбросив подобные разрывы, получив чистую последовательность тегов , мы значительно упростим задачу сегментации.

Следующее необходимое действие – это анализ самих тегов, оставшихся блоков. Хотя всегда можно определить наличие в блоке некоторых тегов на основе различных правил, мы ориентируемся на анализе блоков на наличие текстовых свойств. Например,  наличие в блоке только коротких предложений (“Контакты”, “ Главная”, “Обратная связь”)  скорее всего соответствует навигационному меню, т.е не соответствует основному содержимому.  А наличие в подвале страницы одного предложения (“Copyright  (c)  2013  by … All rights reserved”)  относится к информационному блоку, который также не относится к содержимому.

 

Это похоже на анализ стиля письма, сравнивая длины предложений. Но в случае отсутствием надлежащего предложения в шаблоне элемента, возникают серьезные трудности в анализе текстовых свойств блока.  В таком случаем  мы можем заменить длины предложений в тексте на плотность текста, то есть в частности количество слов. Определение плотности текста было предложено  Джеретом Спулом и соавторами, как соотношение между общим количеством слов в блоке и высотой блока в дюймах. Аналогичное понятие известно в Computer Vision, как интенсивность области изображения.

Рассмотрим эту концепцию в рамках HTML текста. Аналогом пикселей изображения в HTML является символьные данные (атомарные части текста),  изображение представляет собой последовательность пикселей, в  нашем случаем последовательность элементарных частей (символов ) представляет собой блок с текстом. Для определения  высота текстового блока,  мы сформируем весь текст с учетом постоянной максимальной ширины строки (в символах)  . В результате плотности блока  можно рассчитать следующим образом:

 

 

Это определение плотности текста не учитывает лексический и грамматический анализы, которые должны быть выполнены. Этот показатель может служить своего рода дискриминатором  между сентенциальным текстом (высокой плотности) и текстовыми шаблонами (низкой плотности). Предположим .  Это традиционная ширина экрана терминалов. Если предположить, что средняя длина слова 5,1 символа,  то мы можем записать максимум  отдельных слов (лексем) в строке, что примерно соответствует одному среднему предложению. Также очевидно, что абсолютный максимум 40 односимвольных предложений в каждой строке. Эти вычисления необходимы, чтобы исключить последнюю строку многострочного блока, так как было бы ошибкой вычислять фактическую плотность с учетом строки,  которая не полностью соответствует длине . Учитывая набор лексем T, содержащихся в множестве заполненных строк  L, покрывающих блок , мы можем переформулировать уравнение 4 следующим образом:

 

 

                      (5)

 

Удвоение числа лексем приводит к почти удвоенному числу линий, которые необходимо нормировать снова (формула 5).

 

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