Skip to content

magicarm22/Crawler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 

Repository files navigation

Crawler with Machine Learning and Web search module

Данный проект представляет собой поисковый робот для сайта en.wikipedia.org. Он состоит из следующих модулей:

  1. Поисковый робот, который переходит на стартовую страницу, собирает ссылки, которые есть на данной странице и выбирает, какие ссылки еще не были посещены (модуль Spider)
  2. Если ссылка не была посещена (проверка проводится по MySql таблице с записями всех пройденных страниц), то ссылка отправляется в очередь RabbitMQ. (модули RabbitMQ, Mysql_connector)
  3. Потоки достают из очереди RabbitMQ ссылки, переходят на сайт при помощи jsoup и парсят сайт на части (Заголовок, статья). (модуль Writer)
  4. Из полученных данных формируется json, который отправлется в ElasticSearch (модули Writer и Elastic) Таким образом формируется NoSql база данных ElasticSearch.

Машинное обучение

Для использования машинного обучения на данном проекте потребовалось подготовить тренировочные данные для классификации статей из wikipedia.org на три категории:
  1. Люди
  2. Время (история)
  3. Места и организации.

Данный модуль проделывает следующие действия:

  1. Получение документа с категорией из ElasticSearch
  2. Подготовка документа
    • Приведение все к нижнему регистру
    • Удаление всех знаков препинания
    • Удаление стоп-слов
    • Леммирование (приведение каждого слова к его лемме)
  3. Добавить подготовленный документ с категорией в csv файл.
  4. Повторить п.1-3 для всех документов с категориями

Сформировав csv файл, он подается на модуль weka для обучения при помощи NaiveBayes классификатора. После модель сохраняется для дальнейшего использования для определения категорий неопределнных статей.

Веб-поиск

Для проверки точности работы ElasticSearch был разработан модуль, которые представляет собой сайт с поисковой строкой. Когда пользователь вводит строку, происходит запрос в базу данных ElasticSearch, которая выдает список ссылок, наиболее подходящих под введенный запрос. Ссылки выводятся в виде таблицы, все ссылки кликабельны.

About

Поисковый робот

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published