Агрегация контента и его обработка. Сборник статей по архитектуре распределенных систем и программной инженерии - страница 8



Подобный подход к построению архитектуры модуля классификации используется в проекте Hypatia [99] – экспертной системе, разработанной для отделов канцелярии и делопроизводства и обеспечивающей категоризацию, семантический поиск, обобщение, извлечение знаний, агрегацию и многие другие функции в области анализа текстовых документов.

7. Предлагаемая система

7.1. Архитектура системы

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

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

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

Высокоуровневая архитектура предлагаемой системы показана на рисунке 2.


Рисунок 2. Архитектура экспертной системы категоризации агрегированного контента


Система, показанная на рисунке 2, состоит из кластера загрузчиков контента [100], т. е. веб-краулеров, модуля парсинга контента, модуля классификации, модуля предварительной обработки, классификатора спама, классификатора на основе нечетких отпечатков, классификатора на основе атрибутов и SVM-классификатора.

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

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


7.2. Получение информации

Загрузчики контента отвечают за постоянное наполнение системы данными: они отправляют сотни запросов к источникам в Интернете и сохраняют веб-страницы в базу данных хранилища контента.

Парсер контента – это распределенный набор сервисов-парсеров, которые получают на вход агрегированные данные и извлекают из них структурированную информацию в соответствии с бизнес-правилами. Полученные в результате обработанные данные затем сохраняются в БД агрегированного контента. Так же, как и БД с загруженными страницами, БД агрегированного контента является реляционной базой данных (PostgreSQL [101]). В системе повсеместно используется master-slave репликация для обеспечения отказоустойчивости и стабильной работы.

Классификатор извлекает обработанные данные из БД агрегированного контента и добавляет их для последующей обработки в очередь классификации (RabbitMq [102]). Очередь сообщений в данном случае используется для масштабирования нагрузки, т. к. объем обрабатываемой информации очень велик.