An open API service indexing awesome lists of open source software.

https://github.com/exp98/information-retrieval

Практические задания по дисциплине "Информационный поиск", 1 курс магистратуры, Матмех, СПбГУ
https://github.com/exp98/information-retrieval

information-retrieval spimi

Last synced: 3 months ago
JSON representation

Практические задания по дисциплине "Информационный поиск", 1 курс магистратуры, Матмех, СПбГУ

Awesome Lists containing this project

README

        

## Информационный поиск
### Практические задания

Выполнил Глушков Егор, 1 курс магистратуры по направлению МОАИС, Матмех, СПбГУ

Формулировка задания №1 в файле *task.md*

### Запуск

Из корневой директории запускать:
- построение индекса (внутри настраивается размер блока и путь до файла-индекса)
> `python build_index.py`

- запросы
> `python main.py`

- Булевый запрос может содержать такие операторы, как *OR, or, |, AND, and, &, NOT, not, ~*
- Для искомых слов регистр букв не имеет значения
- Алгоритм не работает со скобками
- Примеры запроса (без кавычек): "*health OR aid AND not care*", "*~Moscow | Berlin & Rome*"
- Для вывода всех docID как результатов по искомому запросу следует раскомментировать строку 83 в *query_processing.py*
- В *query_processing.py* также представлены функции, отдельно осуществляющие множественный поиск отдельно с объединением и пересечением; поиск по одному слову / с отрицанием
- Датасет (новости от агентства Рейтерс) лежит в папке *data*, разделен на файлы, состоящие из набора новостей (документов в терминах данной программы)
- Непосредственное построение индекса осуществляется в *inverted_index.py* в соответствии с алгоритмом SPIMI
- Любое чтение и запись производится побитово / построчечно без выгрузки в оперативную память ввиду особенностей применения алгоритма
- Обработка слов ведется в файле *text_processing.py*
- *make_dataset.py* и *index/all_articles.txt* могут помочь в проверке (поиске) статей-документов по их ID
- *index/index.out* -- заранее построенный файл-индекс, с использованием которого и ведется поиск; удобен для проверки