# Оценка качества OCR и требования к улучшению ## Общая оценка ### Что получилось хорошо ✅ Структура документа (layout) определяется качественно. ✅ Порядок чтения блоков в целом корректный. ✅ Таблицы извлекаются хорошо. ✅ Display-формулы (отдельные блочные формулы) успешно выделяются и экспортируются в LaTeX. Например: ```latex A_{i}=Z\cdot r+u_{i}\cdot\sqrt{1-R} ``` является корректным LaTeX и без проблем отображается в MathJax/KaTeX. --- ## Основные проблемы ### 1. Inline-формулы практически не распознаются Это самая серьёзная проблема текущего pipeline. Формулы вида ```text u_i ~ N(0,1) R = r² r = corr(...) ``` не выделяются как математические выражения. Вместо этого они становятся частью обычного текста. Именно это является причиной большинства последующих ошибок. --- ### 2. LaTeX повреждается при генерации Markdown В результате появляются конструкции вида ```text \$R=r\^{}\{2\}\$ ``` ```text \textbackslash{}sim ``` ```text \textbackslash{}mathrm ``` ```text A\_i ``` Это уже невалидный LaTeX. MathJax здесь не является причиной проблемы — он получает уже повреждённый текст. --- ### 3. Избыточное экранирование Необходимо полностью исключить появление: ``` \$ \_ \textbackslash{} ``` если они являются результатом сериализации LaTeX. Markdown должен содержать настоящий LaTeX, а не его текстовое представление. --- ### 4. OCR допускает типичные ошибки Например ``` V a R ``` вместо ``` VaR ``` ``` P D ``` вместо ``` PD ``` ``` vhere ``` вместо ``` where ``` ``` ndividual ``` вместо ``` Individual ``` Это снижает качество итогового документа. --- # Требования к улучшению ## Высокий приоритет ### 1. Исправить обработку inline-формул Inline-математика должна сохраняться как ```markdown $u_i \sim N(0,1)$ ``` а не как текст ```text \$u\_\{i\}\textbackslash{}sim... ``` --- ### 2. Не экранировать LaTeX Запрещается преобразовывать ```latex \sqrt \frac \alpha \sim \mathrm ``` в ```text \textbackslash{}sqrt \textbackslash{}frac ... ``` --- ### 3. Сохранять display-формулы без изменений LaTeX, полученный от PP-StructureV3, должен использоваться без модификации. Формат вывода: ```markdown $$ ... $$ ``` --- ### 4. Улучшить OCR-постобработку Исправлять наиболее типичные ошибки OCR. Например: | Было | Должно стать | |------|--------------| | `V a R` | `VaR` | | `P D` | `PD` | | `N ^ {-1}` | `N^{-1}` | | `l` → `1` | при высокой уверенности | | `O` → `0` | при высокой уверенности | --- ## Средний приоритет ### 5. Валидировать LaTeX Перед сохранением желательно проверять: - баланс фигурных скобок; - баланс `\left...\right`; - баланс `$`; - корректность команд. --- ### 6. Генерировать "чистый" Markdown Итоговый Markdown должен сразу корректно отображаться через MathJax или KaTeX без дополнительной обработки. --- # Предлагаемая архитектура pipeline Текущий pipeline смешивает OCR, обработку текста и генерацию Markdown. Предлагается разделить его на независимые этапы: ``` PDF │ ▼ PP-StructureV3 │ ▼ Извлечение структуры документа │ ├── текст ├── таблицы ├── изображения └── display-формулы │ ▼ Постобработка OCR │ ▼ Выделение inline-формул │ ▼ Исправление типичных OCR-ошибок │ ▼ Генерация Markdown │ ▼ Валидация Markdown / LaTeX │ ▼ HTML + MathJax / KaTeX ``` --- # Итоговая оценка | Компонент | Оценка | |-----------|:------:| | Layout | ⭐⭐⭐⭐⭐ | | Reading order | ⭐⭐⭐⭐⭐ | | Таблицы | ⭐⭐⭐⭐⭐ | | Display-формулы | ⭐⭐⭐⭐☆ | | Русский OCR | ⭐⭐⭐☆☆ | | Inline-формулы | ⭐☆☆☆☆ | | Генерация Markdown | ⭐⭐☆☆☆ | ## Главный вывод Основная проблема текущего решения — не качество MathJax и не display-формул. Критические недостатки находятся в двух местах: 1. **inline-математические выражения не выделяются как отдельные математические объекты;** 2. **при генерации Markdown происходит повреждение LaTeX из-за его экранирования.** До устранения этих проблем невозможно получить Markdown, пригодный для качественного отображения формул и последующего анализа LLM.