Содержит задания, выполненные по курсу CSCI572 в Университете Южной Калифорнии.
Языки: Питон 3.7.
I/P: набор запросов и соответствующие им 10 лучших результатов Google.
O/P: коэффициент Спирмена для каждого запроса, сравнивающего результаты Google и Bing.
Языки: Ява 11
Библиотеки: Crawler4j.
I/P: доменное имя веб-сайта для сканирования.
O/P: список URL-адресов, полученных вместе с их статистикой.
Языки: Ява 11
Библиотеки: Apache Hadoop.
Системы: Google Cloud, Microsoft Azure I/P: список URL-адресов для индексации.
O/P: индексные файлы для униграмм и биграмм для URL-адресов.
Языки: Java 11, Python 3.7, HTML, CSS, PHP, JavaScript, JQuery.
Библиотеки: Apache Lucene, Apache Solr, Apache Tika, NetworkX, jsoup, SpellCorrector Питера Норвига.
Функциональные возможности:
1. Расчет рейтинга страницы:
Использовал jsoup на Java для анализа всех ссылок с просканированных веб-страниц и создания файла EdgeList.
Использовал NetworkX в Python для создания ориентированного графика из EdgeList и расчета значений Page Rank для всех URL-адресов.
2. Настройка Lucene и Solr:
Создано ядро Solr для сканирования html-файлов и эффективного создания инвертированного индекса.
Выберите команду в Solr, чтобы получить веб-страницы по заданному запросу. Он внутренне использует векторное пространство Lucene и представление логической модели и сортирует результаты с помощью TF-IDF.
Предоставлены дополнительные функции для сортировки результатов веб-страницы с использованием ранее вычисленных значений рейтинга страницы.
3. Веб-страница поисковой системы Iditom:
Разработал PHP-код, который будет выступать в качестве клиента для получения запросов от пользователей. Пользователь может выбрать использование алгоритма ранжирования Lucene по умолчанию или алгоритма Page Rank для сортировки полученных результатов. Используя Client API для Solr, результаты веб-страницы извлекаются по запросу.
Предусмотрен веб-интерфейс типа Google.
4. Проверка орфографии и автозаполнение:
Создал текстовый файл словаря после анализа и предварительной обработки слов с просканированных веб-страниц с помощью Apache Tika.
Использовал алгоритм SpellCorrector Питера-Норвига и использовал этот словарь для вычисления вероятностей для расстояния редактирования 1 и 2.
В поисковую систему Iditom добавлена функция проверки орфографии, имитирующая Google (показ результатов для __ , поиск вместо __ ).
Использованы результаты автозаполнения Solr по умолчанию, в которых используется поиск Fuzzy Factory для предложений слов.
Посмотреть видео поисковой системы можно здесь — https://youtu.be/lYZ_SdsIX3A.