Skip to content

alexanderplesovskikh/lexify

Repository files navigation

Lexify ✅

Lexify — это веб-приложение для автоматической проверки текстовых документов на лингвистическую приемлемость и соответствие стандартам оформления библиографических ссылок. Оно позволяет пользователям загружать документы в формате .docx, анализировать их содержимое и получать отчеты с выделенными ошибками и рекомендациями.

lexify hero image

Ссылка на проект

app.lexiqo.ru

Описание

Проект разработан для упрощения процесса проверки научных и технических текстов. Основные функции включают:

  • Разделение текста на предложения и список литературы.
  • Проверка текста на наличие запрещенных символов, слов и последовательностей.
  • Анализ предложений с использованием моделей машинного обучения (например, 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:
    • nltk
    • beautifulsoup4
    • transformers (с поддержкой 4-битной квантизации)
    • crossref-commons
    • habanero
    • doi2bib
    • bibtexparser
    • citeproc-py
    • pymorphy3
    • pdfkit
    • их подкаталоги
  • CUDA (опционально, для ускорения работы моделей ML на GPU)

Инструкции

  1. Клонируйте репозиторий:

    git clone https://git.miem.hse.ru/1746/lexify2.git
    cd lexify2
  2. Установите зависимости:

    pip install -r requirements.txt
  3. Установите LibreOffice:

    • На Ubuntu: sudo apt-get install libreoffice
    • На других системах следуйте официальной документации LibreOffice.
  4. Настройте переменные окружения в django_project/settings.py:

    • Укажите DEFAULT_FROM_EMAIL для отправки кодов подтверждения.
    • Настройте путь к стилям CSL: docx/static/csl/.
  5. Примените миграции базы данных:

    python manage.py migrate
  6. Запустите сервер:

    python manage.py runserver

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

  1. Перейдите на главную страницу: http://localhost:8000/.
  2. Войдите в систему через страницу /login/, указав email и получив код подтверждения.
  3. Загрузите документ .docx через страницу /check/, выбрав стиль оформления (например, ГОСТ).
  4. Дождитесь завершения анализа и просмотрите результаты в браузере.
  5. Скачайте 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-разработчик.
  • Хомин Максим Вячеславович: Стажер.
  • Палиенко Мария Алексеевна: Стажер.
  • Голуб Владислав Витальевич: Стажер.

About

✅ Lexify — это веб-приложение для автоматической проверки текстовых документов на лингвистическую приемлемость и соответствие стандартам оформления библиографических ссылок. Оно позволяет пользователям загружать документы в формате .docx, анализировать их содержимое и получать отчеты с выделенными ошибками и рекомендациями.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors