Skip to content

Latest commit

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date

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

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages