Программный модуль извлечения именованных сущностей (Named Entity Recognition), оптимизированный для работы с математическими и научно-техническими текстами на русском языке.
Проект представляет собой специализированное NLU-решение (Natural Language Understanding) для структурирования неструктурированных научных данных. Система автоматически идентифицирует и классифицирует математические термины, имена ученых, названия теорем и сложные формульные выражения.
Ключевой особенностью является гибридная архитектура, которая нивелирует типичные ошибки нейросетевых моделей при работе со специфическими символами математической нотации.
Система спроектирована на основе разделения ответственности между статистическими и детерминированными методами обработки данных (Separation of Concerns):
- Контекстуальный нейросетевой слой: Использует архитектуру трансформеров (семейство BERT) для задачи Token Classification. Модель анализирует семантические связи в предложении, что позволяет точно определять границы имен ученых (NAME), научных терминов (TERM) и названий теорем (THEOREM).
- Слой жесткого парсинга (RegEx): Применяет каскад регулярных выражений для детерминированного извлечения математических формул (FORMULA). Это решение гарантирует целостность спецсимволов (^, /, =, <, >), которые часто искажаются при токенизации стандартными WordPiece-алгоритмами.
- Механизм автономной адаптации (Shadow Retraining): Реализован конвейер фонового дообучения классификатора. Система накапливает результаты предсказаний с высоким коэффициентом уверенности (confidence > 0.50) и использует их для автоматического уточнения весов модели без остановки основного сервиса.
- Классификация сущностей: Точное выделение классов TERM, NAME, THEOREM и FORMULA.
- Динамическая инфраструктура: Код реализует паттерн динамической маршрутизации путей, автоматически вычисляя расположение весов моделей и ресурсов относительно исполняемого файла. Это обеспечивает полную переносимость проекта между различными окружениями.
- Интерфейс визуализации: Легковесная веб-панель для интерактивного анализа текстов с цветовой индикацией типов найденных сущностей.
- Разместите исходный код проекта в директории
Site. - Установите необходимые зависимости из состава
requirements.txt: pip install -r requirements.txt Важное требование к структуре: Директория с весами обученной модели (saved_model) должна располагаться на один уровень выше папки Site (родительская директория проекта).
Запустите ASGI-сервер: uvicorn app:app --reload
После запуска интерфейс будет доступен по адресу: http://127.0.0.1:8000