Текст книги "Агрегация контента и его обработка. Сборник статей по архитектуре распределенных систем и программной инженерии"
Автор книги: Денис Кирьянов
Жанр: Компьютеры: прочее, Компьютеры
Возрастные ограничения: +12
сообщить о неприемлемом содержимом
Текущая страница: 2 (всего у книги 7 страниц) [доступный отрывок для чтения: 2 страниц]
5. Инструментарий для создания экспертных систем
Разработка экспертных систем – очень сложная задача, требующая инженеров по знаниям, которые переводят экспертные знания на язык экспертной системы. Для ускорения процесса разработки часто используется специализированное программное обеспечение. В этом разделе представлен краткий обзор некоторых оболочек и языков программирования, которые используются для создания экспертных систем.
5.1. Exsys Corvid
Exsys Corvid [51] уже много лет является одной из самых популярных коммерческих оболочек и активно используется до сих пор. Он включает в себя инструменты для программной отладки и тестирования, а также редактирования и модификации знаний и данных. Система логического вывода (Corvid Inference Engine), написанная на Java, позволяет решать сложные задачи с использованием правил ЕСЛИ – ТО.
Экспертные системы автоматизации знаний на основе Exsys Corvid нашли свое широкое применение в самых разных областях, таких как медицина, техническое обслуживание, управление человеческими ресурсами, госсектор, энергетика и т. д. [52]. Использование Exsys Corvid в качестве инструмента разработки для реализации экспертных систем описано в статьях [53—56].
5.2. CLIPS
CLIPS [57] – хорошо известный программный инструмент для построения экспертных систем на основе правил. Он написан на языке программирования C и использует прямую цепочку логического вывода (forward chaining). В настоящее время CLIPS активно используется в многочисленных современных проектах, таких как разработка экспертной системы для выбора тоннелепроходческой машины [58], прототипирование экспертных систем на основе правил [59], а также в реализации цифрового фитнес-тренера [60].
5.3. Java Expert System Shell (JESS)
Java Expert System Shell (JESS) – это еще одна популярная оболочка для создания экспертных систем. Данная оболочка является интерпретатором языка программирования Jess и может использоваться в консольных и графических приложениях. С архитектурной точки зрения система JESS основана на продукционной модели представления знаний (production system) и выполняет программы, основанные на правилах [61].
JESS успешно использовалась во многих проектах, включая интерактивную голосовую систему [62], обнаружение семантических веб-сервисов [63], анализ рисков безопасности [64], создание виртуальной лабораторной платформы [65], и многих других проектах.
5.4. Kappa PC
Kappa PC [66, 67] представляет собой оболочку, объединяющую критически важные технологии, необходимые для быстрой разработки недорогих и высокопроизводительных экспертных систем. Позволяет писать приложения с использованием графического пользовательского интерфейса и генерирует стандартный программный код ANSI C. Компоненты предметной области представлены как объекты и могут описывать объекты реального мира, такие как автомобили, или нематериальные понятия, такие как собственность, и эти объекты могут быть расширены с помощью методов [66].
Применение программного обеспечения Kappa PC можно найти во многих проектах, таких как экспертная система для проектирования коммерческих автобусов [68] или консультативная система, помогающая повысить эффективность транспортной системы [69].
5.5. Prolog
Prolog [70—72] – язык логического программирования, который очень популярен в программировании искусственного интеллекта и часто используется для разработки экспертных систем. Основными особенностями Prolog являются механизм сопоставления с образцом (pattern matching), поддержка поиска с возвратом (backtracking), а также возможность древовидного структурирования данных.
5.6. Flex
Flex – это набор инструментов для разработки экспертных систем на основе языка программирования Prolog. Поддерживает рассуждения на основе фреймов с наследованием, программирование на основе правил и процедуры, управляемые данными, полностью интегрированные в среду логического программирования [73, с. 9]. Существует множество экспертных систем, построенных с использованием этой оболочки, например: экспертная система выбора площадки для тепловых электростанций [74] и экспертная система для интерпретации результатов микроматрицы аллергенов [75].
5.7. Gensym G2
G2 – мощная экспертная система для операций в реальном времени, предоставляемая Gensym Corporation. G2 может обрабатывать десятки тысяч правил в секунду, поддерживает рассуждения как в пределах установленных временных рамок, так и рассуждения по умолчанию; определение правил на естественном языке и планирование приоритетов задач [76].
G2 используется в таких проектах, как, например, динамическое моделирование угольной шахты [77] и реализация концептуальной основы моделирования биофармацевтического завода [78], где требуются высокая производительность и надежность.
5.8. Lisp
Lisp, помимо Prolog, – это еще один популярный язык программирования для создания экспертных систем, который сегодня активно используется в таких проектах, как экспертная система диагностики и лечения диабета [79], а также во многих других.
5.9. VisiRule
VisiRule [81] – популярный инструмент визуального моделирования, предназначенный для построения надежных моделей принятия решений. VisiRule не требует навыков программирования и генерирует код Flex и Prolog на основе визуальных моделей. Пример работы VisiRule можно найти в исследовании [81], описывающем создание экспертной системы принятия решений на основе правил.
Как было показано выше, существует множество оболочек и языков программирования, которые можно использовать для построения экспертных систем. К сожалению, многие инструменты в настоящее время не поддерживаются. Технический отчет [82] содержит подробный обзор многих из них.
6. Задачи категоризации и классификации с использованием экспертных систем
Экспертные системы могут использоваться для решения проблемы категоризации, т. е. они могут определять некоторые объекты или последствия неопределенных знаний посредством иерархической категоризации. База знаний таких категориальных систем состоит из таксономического набора вербальных категорий, а их целью является определение категории входного объекта на основе имеющихся фактов [83].
Поскольку категориальное знание состоит только из логических связей между фактами и не подвергается сомнению, его можно выразить в виде правил ЕСЛИ – ТО. Категориальные экспертные системы также требуют механизма логического вывода для решения конкретной проблемы. Механизм логического вывода может использовать методы как обратной (backward chaining), так и прямой (forward chaining) цепочки рассуждений и, кроме того, включать модули объяснения и разрешения конфликтов [84, с. 25—30].
Текущие исследования показывают, что при разработке модулей классификации в подобных экспертных системах в качестве альтернативы подходу, основанному на правилах, широкое применение находят нейронные сети. Экспертные системы очень часто применяются для решения задач классификации и категоризации данных, и в этом разделе содержится описание некоторых из них.
6.1. Категориальная экспертная система Jurassic
Jurassic [85] является хорошо известным примером категориальной экспертной системы. Ее база знаний состоит из 423 правил, которые представлены в виде ориентированного ациклического графа с глубиной, равной пяти.
В Jurassic используется подход [86] представления объектов не в виде наборов признаков, а в виде списков, что позволяет включать в одно объектное представление копии одного и того же объекта, различающиеся своим положением в списке. Система выполняет категоризацию с использованием нейронной дедуктивной системы. В случае неопределенных знаний сходство определяется на основе общих признаков.
6.2. Экспертная система для классификации множественного интеллекта учащихся
В работе [87] представлена экспертная система, которая классифицирует способности студентов в одной из трех областей: инженерия, менеджмент и естественные науки. Архитектура системы включает в себя пользовательский интерфейс, механизм логического вывода, базу знаний, базу данных студентов и базу данных, содержащую ответы студентов на вопросы, которые используются для определения наиболее подходящего курса для каждого студента.
База знаний системы содержит предустановленные правила, которые необходимо корректировать в процессе работы. Система определяет предпочтительный курс для учащегося на основе весов, рассчитанных с помощью специальных функций, определенных для каждого типа интеллекта для каждого класса.
6.3. Экспертная система классификации трещин дорожного покрытия
В исследовании [88] рассматривается мультиагентная экспертная система автоматического обнаружения признаков разрушения дорожного покрытия. В качестве компонента, выполняющего задачу классификации, в ней используется экспертная система, работающая при помощи нейронной сети. Данная система является гибридной [89] и имеет довольно сложную архитектуру, состоящую из трех подсистем, и помимо экспертной системы использует различные технологии, такие как нечеткая логика [90], обработка изображений, методы мягких вычислений (soft computing) и т. д.
6.4. Экспертная система классификации скачков напряжения
В работе [91] представлена экспертная система классификации скачков напряжения в энергосистеме. Экспертная система обрабатывает четыре класса событий, которые могут быть вызваны неисправностями трансформатора или индукционного двигателя, а также скачкообразными изменениями напряжения. Задача классификации основана на характеристиках данных событий, связанных с временным снижением напряжения. База знаний системы содержит признаки, однозначно характеризующие события в наборе правил.
6.5. Экспертная система классификации твитов
Экспертные системы часто используются в задаче классификации контента. Например, в исследовании [92] представлена MISNIS – экспертная система, которая автоматически классифицирует твиты по набору интересующих тем. Система использует метод Twitter Topic Fuzzy Fingerprints [93] и сравнивает нечеткие отпечатки отдельного текста с отпечатками потенциального автора. Чтобы определить, относится ли твит к определенной теме, система создает отпечаток темы и отпечаток трендовых тем.
6.6. Экспертная система категоризации многоязычных документов
Проект GENIE, описанный в статье [94], представляет собой многоязычную экспертную систему категоризации текста на основе правил, которая состоит из пяти этапов: предварительная обработка, классификация на основе атрибутов, статистическая классификация, географическая классификация и онтологическая классификация.
Процесс категоризации начинается с этапа предварительной обработки, который включает в себя лемматизацию [95], распознавание именованных сущностей (named entity recognition, NER) [96] и извлечение ключевых слов [97]. Затем выполняется классификация на основе атрибутов, основанная на тезаурусе (thesaurus), то есть списке слов и наборе их отношений. Следующим этапом является статистическая классификация, где методы машинного обучения используются для поиска закономерностей, соответствующих статистической информации, и получения меток, соответствующих общим темам документа.
После система применяет географический классификатор для определения возможных географических ссылок, включенных в текст. Географический классификатор использует специальный компонент – географический справочник (gazetteer) [98], который представляет систематизированную информацию о местах и географических названиях.
На конечном этапе осуществляется онтологическая классификация с использованием лексической базы данных, которая содержит наборы синонимов и семантических отношений между ними.
Подобный подход к построению архитектуры модуля классификации используется в проекте Hypatia [99] – экспертной системе, разработанной для отделов канцелярии и делопроизводства и обеспечивающей категоризацию, семантический поиск, обобщение, извлечение знаний, агрегацию и многие другие функции в области анализа текстовых документов.
7. Предлагаемая система
7.1. Архитектура системы
Предлагаемая экспертная система категоризации рассматривается как часть высоконагруженной распределенной системы агрегации контента, агрегирующей текстовые данные различных типов, таких как новости, блоги, объявления о работе, информация о компании (включая отзывы о работе), события (встречи, конференции, выставки и т. д.), и отображает его в удобном для пользователя виде.
Поскольку основной целью этой системы является предоставление релевантного ответа на пользовательский запрос, решение проблемы категоризации агрегированного контента очень актуально. Задача усложняется огромным объемом данных, что подразумевает необходимость обеспечения высокой производительности и масштабируемости работы системы категоризации.
Каждый из агрегированных документов обладает набором свойств, таких как заголовок, дата создания, URL, тип, краткое описание и т. д. Эти свойства используются механизмом на основе правил для категоризации данных в том случае, когда данные, полученные на этапе нейросетевой обработки, недостаточны для принятия конечного решения.
Высокоуровневая архитектура предлагаемой системы показана на рисунке 2.
Рисунок 2. Архитектура экспертной системы категоризации агрегированного контента
Система, показанная на рисунке 2, состоит из кластера загрузчиков контента [100], т. е. веб-краулеров, модуля парсинга контента, модуля классификации, модуля предварительной обработки, классификатора спама, классификатора на основе нечетких отпечатков, классификатора на основе атрибутов и SVM-классификатора.
В системе также имеется тезаурус – база данных со списком слов на разных языках, которые используются в категоризации данных. На каждом этапе система пытается получить метки, соответствующие категориям обрабатываемого контента.
Всю представленную систему можно разделить на две части: первая часть – поиск информации, вторая – ее последующая обработка и категоризация. Эти части будут описаны ниже, уделяя больше внимания части категоризации, поскольку технология агрегирования контента не является основной темой данного исследования.
7.2. Получение информации
Загрузчики контента отвечают за постоянное наполнение системы данными: они отправляют сотни запросов к источникам в Интернете и сохраняют веб-страницы в базу данных хранилища контента.
Парсер контента – это распределенный набор сервисов-парсеров, которые получают на вход агрегированные данные и извлекают из них структурированную информацию в соответствии с бизнес-правилами. Полученные в результате обработанные данные затем сохраняются в БД агрегированного контента. Так же, как и БД с загруженными страницами, БД агрегированного контента является реляционной базой данных (PostgreSQL [101]). В системе повсеместно используется master-slave репликация для обеспечения отказоустойчивости и стабильной работы.
Классификатор извлекает обработанные данные из БД агрегированного контента и добавляет их для последующей обработки в очередь классификации (RabbitMq [102]). Очередь сообщений в данном случае используется для масштабирования нагрузки, т. к. объем обрабатываемой информации очень велик.
7.3. Предварительная обработка
Модуль предварительной обработки автоматически извлекает HTML-данные из очереди сообщений, поступивших на классификацию, и производит дальнейшую предварительную обработку, цель которой – облегчение дальнейшей работы механизма категоризации.
Рисунок 3. Архитектура модуля предварительной обработки
Архитектура модуля предварительной обработки показана на рисунке 3.
Как следует из рисунка 3, архитектура модуля предварительной обработки состоит из отдельных приложений, выполняющих удаление HTML-разметки, приведение к нижнему регистру, удаление стоп-слов, стемминг [103], удаление знаков пунктуации, лемматизацию, а также извлечение ключевых слов с использованием алгоритма TF-IDF [104].
7.4. Классификатор спама
Рассматриваемая система агрегирования контента должна иметь эффективный механизм обнаружения спама и нежелательного контента. Проблема состоит в том, что спам может содержаться в различных типах контента и принимать многочисленные формы: от скрытой рекламы до незаконного контента в статьях, агрегированных комментариях и отзывах. Идентификация и классификация спама является актуальной научно-технической проблемой, которая решается разнообразными способами, включая применение экспертных систем на основе правил, а также систем, базисом которых являются алгоритмы машинного обучения.
Например, в исследовании [105] описан фреймворк для гетерогенного обучения на основе cost-based методов, которые применяются для обнаружения спама в сообщениях Twitter и представляют собой сочетание работы экспертов и алгоритмов машинного обучения, отвечающих за фильтрацию спама в сообщениях.
В статье [106] спам-сообщения были идентифицированы с помощью ИИ на основе алгоритмов глубокого обучения. Исследователи применили шесть моделей обучения и обнаружили, что XGBoost [107] имеет лучшую производительность среди моделей машинного обучения при определении спама.
Классификатор спама, входящий в состав предлагаемой системы, основан на поведенческом методе, описанном в [108], который совмещает подход, основанный на правилах, с нейросетевой обработкой. Данный метод использовался авторами указанного исследования для решения задач обнаружения спама в электронных письмах. Архитектура предлагаемого классификатора спама показана на рисунке 4.
Рисунок 4. Архитектура классификатора спама
Классификатор спама работает следующим образом: при поступлении новой партии агрегированного контента запускается анализ входного текста на предмет наличия внешних ссылок, занесенных в спам-список. При обнаружении совпадений на этом этапе данные считаются спамом и сохраняются в БД со спамом.
Следующим шагом является обработка на основе правил, в которой используются знания предметной области из базы знаний. Если данные определяются как спам, то они снова сохраняются в БД со спамом.
Для выявления спам-поведения предполагается формировать новости, комментарии, блоги и другой агрегированный контент в соответствии с их ключевыми словами, тегами, датой создания, информацией об авторе, внешними ссылками, описаниями изображений и т. п. и представлять эти данные в векторной форме с последующей нейросетевой обработкой, как описано в статье [108].
7.5. Классификатор на основе алгоритма нечетких отпечатков
Весь агрегированный контент должен иметь основные категории, соответствующие общему содержанию смысла. Кроме того, есть более конкретные подкатегории. Например, для категории «Спорт» возможны подкатегории «Хоккей» или «Футбол».
Для этого используется классификатор на основе алгоритма нечетких отпечатков (Fuzzy fingerprints classifier), определяющий основные категории для каждого типа агрегированного контента. Для таких типов контента, как статьи и блоги, которые содержат большое количество текстовых данных, этот модуль применяет алгоритм нечетких отпечатков [109]. В случае комментариев и обзоров, которые менее многословны, используется алгоритм Twitter Topic Fuzzy Fingerprints [93].
Для определения основной категории анализируемого контента создается его отпечаток на основе наборов обучающих данных, содержащих объекты с известной категорией. Созданные отпечатки сохраняются в базу данных PostgreSQL.
Если классификатор получает неоднозначные результаты, в действие вступает механизм, основанный на правилах, который использует логику предметной области, связанную со свойствами анализируемого документа.
7.6. Классификация на основе атрибутов и SVM-классификация
Идея использования классификатора на основе атрибутов была заимствована из конструкции экспертной системы GENIE [94]. Это основанный на правилах процесс, который находит подкатегории обработанных документов в соответствии с их свойствами и на основе основной категории, найденной на предыдущем этапе с помощью классификатора нечетких отпечатков.
На последнем этапе обработки данных используется SVM-классификатор, реализованный на основе метода опорных векторов (support vector machine, SVM) [110, 111]. SVM-классификатор ищет совпадения для извлечения подкатегорий, которые могли быть пропущены классификатором на основе атрибутов.
Внимание! Это не конец книги.
Если начало книги вам понравилось, то полную версию можно приобрести у нашего партнёра - распространителя легального контента. Поддержите автора!Правообладателям!
Данное произведение размещено по согласованию с ООО "ЛитРес" (20% исходного текста). Если размещение книги нарушает чьи-либо права, то сообщите об этом.Читателям!
Оплатили, но не знаете что делать дальше?