- Скачать минимум 100 текстовых страниц с помощью краулера.
- Записать каждую страницу в отдельный текстовый файл.
- Создать файл index.txt в котором хранится номер документа и ссылка на страницу.
Входным аргументом программы должен быть веб-адрес страницы.
Ссылки с первой страницы ведут на другие, которые также скачиваются и заносятся в файл index.txt. Если на первой странице не набралось достаточного количества страниц (100), то операция повторяется для дочерних страниц первой.
Каждая страница должна содержать не менее 1000 слов.
- Из сохраненных документов выделить отдельные слова (токенизация).
- Лемматизировать токены (допускается использование сторонних библиотек, устно могу спросить какие есть способы для лемматизации).
Русский язык обязателен.
-
Создать инвертированный список терминов (индекс).
-
Реализовать булев поиск по построенному индексу (т.е. вводится выражение содержащее слова с тремя логическими И, ИЛИ, НЕ, по которому выдается список документов, содержащий данное выражение).
Примеры:- str1 & str2 | str3
- str1 & !str2 | !str3
- str1 | str2 | str3
- str1 | !str2 | !str3
Для каждого cкачанного документа из задания №1:
- Рассчитать IDF и TF–IDF каждого токена в каждом документе.
- Рассчитать IDF и TF–IDF каждой леммы в каждом документе.
Разработать поисковую систему на основе векторного поиска по построенному индексу.