отчет. Н. Ф. Гусарова, Н. В
Скачать 2.27 Mb.
|
ЦЕЛЬ РАБОТЫПровести теоретическое и практическое исследование анализа меди- цинских данных из социальных сетей и тематических форумов. ЗАДАНИЕ НА ПРАКТИЧЕСКУЮ РАБОТУ И ПОРЯДОК ВЫПОЛНЕНИЯПровести анализ, какой спектр задач можно решить путем краулинга ме- дицинских данных из соц. сетей и из тематических форумов? Привести подробное описание применяемых механизмов, обеспечиваю- щих гарантированное качество обработки и интерпретации медицинских данных? Описать по каким параметрам контролируется качество? Найти научную статью, посвященную исследованиям в данной научной области, провести ее подробный анализ и представить отчет, содержащий подобное исследование медицинских текстов из социальных сетей или те- матических форумов. ПРИМЕР ВЫПОЛНЕНИЯ РАБОТЫЦель работы: Провести теоретическое и практическое исследование ана- лиза медицинских данных из социальных сетей и тематических форумов. Задание на данную практическую работу должно содержать два раз- дела, первый раздел – это теоретический анализ современных подходов к решению задач краулинга медицинских данных, второй раздел – это по- дробный анализ научной статьи из данной предметной области и подобное исследование медицинских текстов из социальных сетей или тематических форумов. Первая (теоретическая) часть. Типы краулеров [10]Сфокусированный краулер (Focused Web Crawler) – это краулер, задача которого заключается в том, чтобы загрузить связанные с друг дру- гом страницы по конкретной теме. Еще такой вид краулеров называют те- матическим (Topic Crawler). Принцип его работы основывается на том, что каждый раз переходя к новому документу, данный краулер проверяет насколько он релевантен обозначенной теме, переход осуществляется только на документы, соответствующие теме. Его достоинства состоят в том, что он экономичен и не требует значительных вычислительных ресур- сов. Инкриментный краулер (Incremental Crawler) – традиционный вид краулера, который периодически обновляет собранные в своем хранилище документы. Помимо замены старых версий документов на новые, он может обновлять ранг документов, сортируя их на менее важные и более важные. Распределенный краулер (Distributed Crawler) – это тип краулера базирующегося на распределенных вычислениях. Как правило он включает несколько вычислительных узлов, один из которых назначается мастером, а другие дочерними узлами. Это тип краулеров использует алгоритм Page Rank для улучшения релевантности поиска. Достоинство этого вида крауле- ров в их надежности и отказоустойчивости. Параллельный краулер (Parallel Crawler) – такой краулер состоит из нескольких краулер-процессов, каждый из которых работает над своим выбранным множеством данных. Кросплатформенный краулер (Cross-platform Crawler) – такой краулер должен одинаково устанавливаться и настраиваться на машинах с различными операционными системами описание наиболее популярных краулеров с открытым исходным кодом, описанных в приведенных выше источниках. Nutch (http://nutch.apache.org), тип: инкрементный, параллельный, распределенный, кросплатформенный) — это инструмент поиска в Вебе и краулер, написанный на java, поддерживающий граф связей узлов, различ- ные парсеры, фильтры и нормализаторы URL. Он интегрирован с Apache Lucene, Apache Hadoop 1.X, 2.X и в своей ветке 2.X позволяет использовать различные хранилища данных, такие как Cassandra, Hbase и др. Данный краулер является масштабируемным (до 100 узлов в кластере и легко настраивается и расширяется, в полной мере является “вежливым”. Scrapy (http://scrapy.org), тип: сфокусированный, параллельный, кросплатформенный) — это расширяемый и гибкий краулер, написанный на Python, который легко устанавливается, прозрачный, поддерживает вы- грузку данных в JSON, XML, CSV. Отлично подходит для сфокусирован- ного краулинга (под словом «краулинг» мы понимаем процесс сбора данных в Вебе, состоящий из: навигации на веб-страницы, анализа их ссылок и со- держимого). “Вежливый” и устойчивый, расширяемый инструмент. Он активно развивается сообществом и сейчас. Но данный краулер куда менее производительный нежели Apache Nutch или же Heritrix. Open Search Server (http://www.open-search-server.com, тип: инкре- ментный, параллельный, кроплатформенный) – это краулер и поисковый движок, ядро которого написано на java, являющийся “вежливым” и под- держивающий современные подходы к полнотекстовому поиску, в частно- сти поддерживает геолокацию. Кроме того, он обеспечивает автоматиче- скую классификацию текстов и поддержку синонимов, поддерживает 18 языков, краулит базы данных, веб и файловые хранилища. Он использует такие технологии как: Apache Lucene, Zkoss, Apache Tomcat и т.д. Это надежный и производительный инструмент. Norconex HTTP Collector (http://www.norconex.com/product/collector-http, тип: инкрементный, параллельный, кросплатформенный) - позволяет выполнять задачи кру- линга и сохранять собранные данные в любое настроенное хранилище в том числе и в поисковый индекс, написан на java, является “вежливым”. Он весьма производительный, поддерживает все востребованные функции: фильтрацию, нормализацию, а также распознавание языков, гибкость извле- чения данных и т.д. Краулер активно развивается и поддерживается коммер- ческим проектом. Bixo (http://openbixo.org, тип: инкрементный, параллельный, рас- пределенный, кросплатформенный) — это инструмент анализа и извлече- ния данных из веба, написанный на java. Он работает на основе Cascading, позволяет переносить данные в хранилища данных (Data Warehouse, DWH). Расширяемый, настраиваемый, устойчивый и “вежливый”. Bixo ориентиро- ван именно на анализ данных, он масштабируем до 1000 вычислительных узлов и подходит для анализа данных больших объемов. Разработчики этого инструмента построили его после разработки од- ного из проектов для вертикального поиска, основанном на Nutch, поэтому они постарались учесть недостатки Nutch для этого типа задач. Данный ин- струмент рекомендуют использовать для таких задач как: найти и проана- лизировать комментарии продукта где-либо, отслеживать популярность в социальной сети, проанализировать данные о стоимости продукта и т.д. Crawler4j (https://github.com/yasserg/crawler4j), тип: параллель- ный, кросплатформенный) — это краулер, написанный на java, с простым API, с его помощью можно легко организовать многопоточный краулинг. Данный инструмент можно легко встроить в проект, но при этом не поддер- живает индексирования, является “вежливым”, но может порождать излиш- нюю нагрузку на исследуемый хост. mnoGoSearch, тип: инкрементный, параллельный платформа - Unix) - это индексатор, написанный на C, управляемый из командной строки, который может быть запущен из под Apache Web Server или любого другого HTTP-сервера поддерживающего стандарт интерфейса связи внеш- ней программы с веб-сервером (Common Gateway Interface, CGI). Этот ин- струмент может быть проинтегрирован с различными базами, в зависимости от нужд пользователя. Данный проект продолжает развиваться, но никакой информации о расширяемости он не предоставляет. Arachnode.net (http://arachnode.net, тип: инкрементный, парал- лельный, кросплатформенный) — это краулер, написанный на C# и исполь- зующий платформу .NET и SQL Server 2008. Данный краулер является “веж- ливым” и поддерживает загрузку, индексацию и сохранение интернет-кон- тента, включая адреса e-mail, файлы и веб-страницы. Активно продолжает развиваться, ценится сообществом, но отсутствует в некоторых рейтингах. GNU Wget (http://www.gnu.org/software/wget, тип: сфокусирован- ный, платформа Linux) — это продолжающий развиваться инструмент, написанный на C, который позволяет получать файлы из наиболее широко использующихся интернет-протоколов (HTTP, HTTPS, FTP). Данный ин- струмент полезен, но подходит в основном для выгрузки конкретных дан- ных или сайта, но не масштабного краулинга сегментов Веба. Приведем еще некоторые краулеры, которые до сих пор в некоторых рейтингах присут- ствуют и даже упоминаются среди передовых, но которые по факту давно уже не развиваются. Heritrix (http://crawler.archive.org/) — это веб-краулер с открытым исходным кодом, расширяемый, предназначенный для краулинга большого объема данных, «вежливый» по отношению к robots.txt, он собирает данные так, чтобы не нагружать вебсайт чрезмерной нагрузкой. Но несмотря на то, что в западных публикациях данный краулер считается одним из лучших, сейчас он недоступен на территории РФ, т.к. был заблокирован Роско надзо- ром. http://Dig (http://www.htdig.org/) — это веб-краулер и поисковая система, до 2004г. он был одним из самых популярных краулеров и именно с ним сравнивался в свое время Nutch. Но после 2004г. он больше не выпус- кал релизов и растерял свою аудиторию. Grub (http://grub.org/, https://sourceforge.net/projects/grub/) — это распределенный веб-краулер, позволяющий строить индекс Веба. Grub client выполняет задачи краулинга в период простоя клиентской машины и отправляет собранные данные на сервер. Проблема этого краулера, согласно обзору Apache Nutch, состоит в том, что распределенный таким образом кра- улинг не оправдает себя, т.к. он будет генерировать еще больше нагрузки своим трафиком при обработке запросов. После 2013г. Релизов этого про- екта больше не было. ASPseek (https://github.com/pld-linux/aspseek) — это интернет-по- исковик, состоящий из индексирующего робота, поискового фонового по- тока и CGI интерфейса. Он может проиндексировать несколько миллионов URLs и поддерживает поиск по словам, фразам и логический поиск. Поиск может быть уточнен по времени или ранжирован с помощью pagerank. |