Данный проект был сделан в рамках учебного курса по языку Python.
Консольная утилита.
Поисковая система.
Строит индекс для заданной директории, возвращает самые релевантные документы по заданному слову или логическому выражению.
Фильтрация идёт по значению TF-IDF.
Запуск: перейти в директорию с проектом и написать в консоли python main.py <путь к директории> (опционально) -r <диапазон поиска> -s (если нужны сниппеты)
После построения индекса можно вводить любые слова и логические выражения.
Пример:
- python main.py C:\Users\Username\Documents -r 10
- python main.py C:\Users\Username\Documents -s
- Работает только с .txt файлами. Все остальные форматы игнорируются
- Поисковая система использует тезаурус от ruwordnet, для улучшения поиска с помощью синонимов
- Если установить флаг -s, то к каждому документу будет выводиться сниппет:
- -s - флаг, который нужно поставить до построения индекса, чтобы выводились сниппеты
- python main.py C:\Users\Username\Documents -s
- В сниппетах выводится предложение, в котором выражение или слово имеет наибольший вес, то есть встречается чаще всего
- Если вводить слово в кавычках ("..." или '...'), то оно будет искаться с точностью до морфологии
- солнце - ищутся документы, в которых есть слово солнце, его синонимы и все морфологические формы
- "солнца" - ищутся документы, в которых есть конкретная форма слова в родительном падеже
- Можно искать как по словам, так и по логическим выражениям, используя операции and, or, not
- Пример: (слово1 or слово2) and not слово3
- Можно выводить результаты в заданном диапазоне
- Пример: python main.py C:\Users\Username\Documents -r 10 (10 - значение по умолчанию)
- Пример: слово1 -r 3 (3 - значение для этого запроса)
- Для каждого документа выводится его TF-IDF