Skip to content

lunaro-4/tfidf-text-processor

Repository files navigation

О проекте

Это репозиторий проекта, разрабатываемого в качестве тестового задания для Lesta Games

Суть проекта - создание веб-приложения, выводящего на экран статистику tf-idf для загруженых файлов.

Установка

Веб-сервис

Для хостинга веб-сервиса необходимо склонировать репозиторий и скачать зависимости

git clone https://github.com/lunaro-4/tfidf-text-processor.git
cd tfidf-text-processor
python -m venv venv 
venv/bin/bash build.sh

Вариант без создания виртуальной среды:

git clone https://github.com/lunaro-4/tfidf-text-processor.git
cd tfidf-text-processor
./build.sh

После этого зпускаем проект django с помощью одной из команд: Если установка проводилась с созданием виртуальной среды:

venv/bin/python ./manage.py runserver

Если виртуальная среда не создавалась:

python ./manage.py runserver

По умоланию, сервис доступен по адресу 127.0.0.1:8000

Веб-сервис внутри docker

Для запуска проекта внутри контейнера, необходимо клонировать репозиторий и построить контейнер:

git clone https://github.com/lunaro-4/tfidf-text-processor.git
cd tfidf-text-processor
sudo docker build --tag tfidf-text-processor .

По завершении создания образа, запускаем контейнер

sudo docker run -p 8000:8000 -rm --name tfidf-text-processor tfidf-text-processor .

Очень важно указать параметр -p <ваш_порт>:8000, чтобы вы могли подключится к сервису в вашем браузере

После этого сервис будет доступен в браузере по адресу 127.0.0.1:<ваш_порт>

Использование

Вне зависимости от метода установки, при переходе по ссылке вы увидете форму для загрузки файла и указания идентификатора библиотеки. Библиотека - это набор текстовых файлов. На основании этих наборов считается idf. Важно указать одинаковый идентификатор для всех файлов в библиотеке, чтобы правильно считался idf и правильно генерировался список кнопок.

После загрузки файла вы увидете новую кнопку, имеющую название загруженого файла. Название файла должно быть уникально, поэтому если вы загрузите файлы с одинаковыми названиями, система добавит случайные символы к названию файла.

Вы также можете загрузить файлы в различные библиотеки, указывая разные идентификаторы. Переключатся между библиотеками можно, указывая соответствующий идентификатор в поле ввода над кнопками файлов