# Умный поиск книг Этот проект представляет собой систему умного поиска книг, которая позволяет пользователям искать книги по их описанию. Проект был выполнен командой из пяти человек: Анной Филиной, Иваном Никифоровым, Ильвиром Хасановым, Марией Козловой и Викторией Князевой. ## Описание задачи Магазин электронных книг выразил желание улучшить свою систему поиска, которая в настоящее время основана только на авторе и названии книги. Однако аннотации к книгам, содержащие полезную информацию для пользователей, не учитываются в поисковой системе. Задачей нашей команды было создание системы поиска книг, учитывающей описания, и предоставление пользователю наиболее подходящих вариантов книг по его запросу. ## Решение Для реализации данной системы мы использовали следующие технологии и инструменты: - **Языковая модель ruBERT**: Мы применили языковую модель ruBERT (Russian BERT) для анализа и понимания содержания книг и запросов пользователей. Для данного проекта была использована модель [cointegrated/rubert-tiny2](https://huggingface.co/cointegrated/rubert-tiny2), которая является легковесной версией ruBERT. Эта модель обучается на русском языке и способна эффективно обрабатывать текстовые данные, включая описания книг. - **Парсинг данных**: Анна Филина и Иван Никифоров занимались парсингом данных с сайта [biblio-globus.ru](https://www.biblio-globus.ru). С помощью парсера был собран датасет, содержащий 45 тысяч книг разных жанров. Датасет включает названия, аннотации, авторов, жанры, ссылки на изображения обложек и страницы книг на сайте Библио-Глобуса. - **Embeddings**: Для обработки текстовых данных и вычисления семантических векторов (embeddings) мы использовали модель ruBERT. Эти embeddings позволяют сравнивать и находить семантически похожие описания книг и запросы пользователей. ## Файлы проекта В проекте вы найдете следующие файлы: - `parser.ipynb`: Файл с кодом для парсинга данных с сайта biblio-globus.ru и создания датасета книг. - `app.py`: Файл с кодом для создания веб-приложения с использованием Streamlit. Этот файл отвечает за интерфейс пользователя, обработку запросов и отображение результатов поиска. - `requirements.txt`: Файл со списком зависимостей, необходимых для запуска проекта. - `books_dataset.csv`: Файл с датасетом книг, содержащим названия, аннотации, авторов, жанры, ссылки на изображения обложек и страницы книг на сайте Библио-Глобуса. ## Установка и запуск Для запуска проекта выполните следующие шаги: 1. Установите необходимые зависимости, выполнив команду: ``` pip install -r requirements.txt ``` 2. Запустите приложение Streamlit, выполнив команду: ``` streamlit run app.py ``` Приложение будет запущено, и веб-интерфейс для умного поиска книг будет доступен по адресу [http://localhost:8501](http://localhost:8501). ## Дальнейшее развитие В дальнейшем мы планируем расширить функциональность системы умного поиска книг, добавив возможность фильтрации по различным критериям, рекомендации книг на основе предпочтений пользователей и другие улучшения, которые позволят сделать поиск книг еще более удобным и персонализированным.