(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Базовая самоформирующаяся онтология

Семантический Паук - собиратель информации из Всемирной Паутины.

Найти и классифицировать

Когда-нибудь, когда он вырастет, наш Паучок будет бегать по Паутине, читать информацию, написанную людьми и для людей и выделять из нее данные, пригодные для машин. Потом уже большие Машины начнут пользоваться этой информацией и вот тут-то и наступит время Терминаторов, но до этого еще далеко. А пока Семантический Паук делает первые шаги.

Зачем это нужно? 

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

Постановка задачи

Есть набор страниц из интернет, есть онтология некой предметной области (Tbox в owl). Необходимо в автоматическом режиме выделить на рассматриваемых страницах объекты онтологии и дополнить онтологию (Abox).

Метод решения

Язык программирования - java, основа краулера - проект crawler4j, первая онтология - онтология работы над проектами (MoWoP).

 

Проект "Базовая самоформирующаяся онтология"

ToDo:

  1. Составить базовую онтологию
  2. Выбрать модель хранения ont в памяти, научиться считывать онтологию в память
  3. Составить список базовых сайтов
  4. Настроить crawler4j на обход п.3
  5. Сделать алгоритм "разумного" пополнения данных. Например, как написано ниже.

Тестовый запуск: человек + фирма. Ч.1

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

Итак, эксперимент №1
Имеется набор данных ("триплетов", "троек") по а) человеку и б) организации. Представим этот набор данных следующим образом:
Человек

  • Фамилия
  • Имя
  • Отчество
  • Дата рождения
  • ИНН

Организация

  • Название
  • Организационно-правовая форма
  • Дата регистрации
  • ИНН

Данные связаны следующим образом:

Субъект Связь Объект Примечание
Человек имеет_имя Имя  
Человек имеет_фамилию Фамилия  
Человек имеет_отчество Отчество  
Человек родился Дата_рождения  
Человек имеет_инн ИНН_человека  
Человек владелец Организация  
Организация имеет_название Название  
Организация зарегистрирована_как Орг_прав_форма  
Организация зарегистрирована_когда Дата_регистрации  
Организация имеет_инн ИНН_организации  

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

Задача семантического паука - на основе имеющихся данных (онтология частично заполнена, т.е. присутствует A-Box и частично Е-box) и массива данных постараться заполнить остальные поля.
В случае спорных моментов данные должны предоставляться человеку-эксперту. ​Алгоритм работы семанического паука должен быть в разумных пределах общим, однако это не должно мешать заложить разумные подсказки типа использования соцсетей и реестров налоговых служб.

Для начала предположим, что нам известны ФИО человека и название компании, далее в схему должны быть добавлены шаблоны, потом - словари синонимов и т.д.

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

  • facebook.com
  • vk.com
  • odnoklassniki.ru
  • реестры налоговой и регистрации юр.лиц

Вопрос 2: хранение "онтологии" и найденных данных
Очевидно, что с точки зрения дальнейшей совместимости не стоит пренебрегать стандартами. Следовательно, и А-box, и начальные, и получаемые данные следует хранить в owl-файле.

Вопрос 3: алгоримт перебора страниц и выделения релевантных данных
Самый сложный вопрос, но, так как сравнивать все равно не с чем, пусть будет такой алгоритм:

  1. Берем первый сайт из списка
  2. Делаем поиск по этому сайту первой тройки из онтологии (возможно, стоит ввести поисковые коэффициенты-веса??)
  3. на первых n страницах из выдачи ищем все оставшиеся тройки
  4. В случае обнаружения данных дописываем их в онтологию
  5. В случае подозрения на обнаружение данных выводим запрос эксперту
  6. Переходим к следующему сайту и пункту 2.

Тестовый запуск: человек + фирма. Ч.2

Мини-онтология, несмотря на то, что она мини, будет у нас носить все черты полноценной предметной онтологии - т.е. разрабатываться в protege, храниться в owl-файле и обрабатываться по правилам и логике "больших" баз знаний.
В первом приближении выглядит это так:

Ссылки по теме


 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 25.02.2014 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
erwin Data Modeler Workgroup Edition r9.7 - Product plus 1 Year Enterprise Maintenance Commercial
IBM Domino Messaging Server Processor Value Unit (PVU) License + SW Subscription & Support 12 Months
ABBYY Lingvo x6 Английская Профессиональная версия
Quest Software. TOAD Xpert Edition
VMware Workstation 14 Pro for Linux and Windows, ESD
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Безопасность компьютерных сетей и защита информации
CASE-технологии
OS Linux для начинающих. Новости + статьи + обзоры + ссылки
СУБД Oracle "с нуля"
Программирование на Visual Basic/Visual Studio и ASP/ASP.NET
Все о PHP и даже больше
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100