Для практики отсортировал мои отчёты к лабам из ИТМО, разбивая на 4 класса (maths, physics, robotics, other)
PyPDF2,pdfminer.six,Spire.Docдля text extraction из .pdf и .docx файловnltk,pymorphy3для обработки текста (стоп-слова, лемматизация, очистка от мусора)sklearn:TfidfVectorizer,RandomForestClassifier,GridSearchCVдля векторизации текстов и обучения классификатораjoblibдля сохранения и загрузки векторайзера и модели
docs-classifier/ ├── docs_raw/ # Исходные документы ├── docs_arranged/[other/maths/physics/robotics] # Отсортированные по категориям ├── file_scripts.py # Логика загрузки, чтения и обработки документов ├── preprocessing.py # Итоговые функции для использования (можно убрать) ├── model.py # Обучение TfIdfVectorizer и классификатора ├── sort.py # Скрипт сортировки документов по категориям ├── labels.txt # Метки категорий └── requirements.txt # Зависимости