Цей proof-of-concept проєкт розроблений для створення вебсервісу, який автоматично перевіряє та надає рекомендації щодо виправлення форматування наукових статей за стандартами APA для журналу Journal of Applied Psychology (JAP). Метою є зниження кількості помилок форматування та економія часу користувачів.
-
Завантаження документів:
- Користувачі завантажують свої статті у форматі
.docx
, які система автоматично приймає через ендпоінт/validate
. - Перевіряється правильність формату файлу; якщо це не
.docx
, видається повідомлення про помилку.
В майбутньому можна додати перевірку розміру файла.
- Користувачі завантажують свої статті у форматі
-
Перевірка базового форматування:
- Кожен Analyzer відповідає за перевірку певних вимог APA: форматування тексту, відступи, хедери тощо.
- Кожне відхилення від стандартів APA, наприклад неправильний розмір шрифту чи відсутність хедеру, додається до списку зауважень (
FormatIssue
), які система надалі показує користувачу як пропозиції до виправлення.
-
Аналіз компонентів документу:
- Концепція подальшого розвитку передбачає розширення на додаткові компоненти, такі як
KeywordsAnalyzer
,TitlePageAnalyzer
,AbstractAnalyzer
тощо, щоб охопити всі вимоги до форматування згідно з APA. - Наразі ці класи існують як пусті заглушки з документацією, що описує майбутню функціональність.
- Концепція подальшого розвитку передбачає розширення на додаткові компоненти, такі як
-
Експорт виправленого документа:
- Після затвердження користувачем вибраних виправлень система згенерує фінальну версію документа з урахуванням вимог APA.
APACompositeAnalyzer
проаналізує документ і надасть зауваження. Враховуючи зауваження і їх тип, система форматування виправить зауваження відповідно до правил APA.- Враховуючи proof-of-concept, ця частина реалізації не включена до проєкту.
Проект організований за принципом Композитор
, де основний клас CompositeAnalyzer
приймає набір аналізаторів і викликає їх для перевірки документа. Це дозволяє додавати нові аналізатори чи видаляти наявні без змін у головному класі.
- Клас
FormatIssue
використовується для представлення помилок форматування, знайдених аналізаторами. Включає позицію помилки, тип, поточне значення та рекомендоване виправлення.
- Рішення: Використання регулярних виразів (regex) для пошуку цитувань у форматі
(Автор, Рік)
. Це дозволить знаходити цитати навіть у випадках, коли форматування було порушене.
- Рішення: Перевірка вирівнювання заголовків та шрифтів за допомогою
python-docx
з можливістю внесення пропозицій до виправлення.
На поточному етапі для тестування proof-of-concept є /mock/validate
ендпоінт. Цей ендпоінт створює документ з порушенням правил APA і аналізує його відповідно до загальних правил форматування.
- python-docx: для обробки файлів
.docx
(аналіз і внесення змін). - FastAPI: для створення REST API для завантаження документів.
- pyapa: для базового форматування згідно з правилами APA (опціонально, не використовується)
-
Клонуйте репозиторій:
git clone <URL> cd <project_folder>
-
Створіть віртуальне оточення та встановіть залежності:
python -m venv venv && source venv/bin/activate pip install -r requirements.txt
-
Запустіть додаток:
python -m app.main
Swagger: http://127.0.0.1:8000/api/docs