Lexify — это веб-приложение для автоматической проверки текстовых документов на лингвистическую приемлемость и соответствие стандартам оформления библиографических ссылок. Оно позволяет пользователям загружать документы в формате .docx, анализировать их содержимое и получать отчеты с выделенными ошибками и рекомендациями.
Проект разработан для упрощения процесса проверки научных и технических текстов. Основные функции включают:
- Разделение текста на предложения и список литературы.
- Проверка текста на наличие запрещенных символов, слов и последовательностей.
- Анализ предложений с использованием моделей машинного обучения (например, RoBERTa) для выявления лингвистически неприемлемых конструкций.
- Проверка оформления ссылок на соответствие стандартам (ГОСТ, APA, IEEE и др.).
- Генерация отчетов в формате PDF с выделением ошибок.
Приложение построено на фреймворке Django и использует такие инструменты, как LibreOffice для конвертации файлов, NLTK и BeautifulSoup для обработки текста, а также библиотеки для работы с библиографическими данными (CrossRef, CiteProc).
- Обработка текста: разделение документа на текст и список литературы, токенизация предложений.
- Проверка правил: использование заранее заданных правил для поиска ошибок (например, запрещенные слова или глаголы в будущем времени).
- Машинное обучение: оценка лингвистической приемлемости предложений с помощью моделей, таких как
iproskurina/tda-ruroberta-large-ru-cola. - Анализ ссылок: проверка соответствия ГОСТ и другим стилям оформления с использованием регулярных выражений и данных CrossRef.
- Аутентификация: вход через email с отправкой кода подтверждения.
- Отчеты: генерация PDF-отчетов с результатами анализа.
- Python 3.8+
- Django
- LibreOffice (для конвертации .docx в HTML и PDF)
- Библиотеки Python:
nltkbeautifulsoup4transformers(с поддержкой 4-битной квантизации)crossref-commonshabanerodoi2bibbibtexparserciteproc-pypymorphy3pdfkitих подкаталоги
- CUDA (опционально, для ускорения работы моделей ML на GPU)
-
Клонируйте репозиторий:
git clone https://git.miem.hse.ru/1746/lexify2.git cd lexify2 -
Установите зависимости:
pip install -r requirements.txt
-
Установите LibreOffice:
- На Ubuntu:
sudo apt-get install libreoffice - На других системах следуйте официальной документации LibreOffice.
- На Ubuntu:
-
Настройте переменные окружения в
django_project/settings.py:- Укажите
DEFAULT_FROM_EMAILдля отправки кодов подтверждения. - Настройте путь к стилям CSL:
docx/static/csl/.
- Укажите
-
Примените миграции базы данных:
python manage.py migrate
-
Запустите сервер:
python manage.py runserver
- Перейдите на главную страницу:
http://localhost:8000/. - Войдите в систему через страницу
/login/, указав email и получив код подтверждения. - Загрузите документ .docx через страницу
/check/, выбрав стиль оформления (например, ГОСТ). - Дождитесь завершения анализа и просмотрите результаты в браузере.
- Скачайте PDF-отчет с выделенными ошибками через кнопку "Скачать отчет".
- Django: фреймворк для веб-приложения.
- NLTK: токенизация текста.
- BeautifulSoup: парсинг HTML.
- Transformers: модели машинного обучения.
- CrossRef: получение библиографических данных по DOI.
- Pymorphy3: морфологический анализ русского языка.
Полный список зависимостей указан в requirements.txt.
views.py: обработка запросов и рендеринг страниц.parser.py: разделение текста и ссылок.rules.py: проверка текста по заданным правилам.references.py: анализ ссылок.llm.py: интеграция моделей ML.models.py: модели базы данных (Paragraph, UserToken, AnalysisLog).urls.py: маршруты приложения.
- Плесовских Александр Евгеньевич: Тимлид, системный администратор.
- Аношин Виктор Иванович: ML-разработчик.
- Канукова Лилия Аслановна: Технический писатель, Дата-аналитик.
- Орлов Кирилл Олегович: Backend разработчик.
- Романова Татьяна Владимировна: ML-разработчик.
- Хомин Максим Вячеславович: Стажер.
- Палиенко Мария Алексеевна: Стажер.
- Голуб Владислав Витальевич: Стажер.
