--- title: README emoji: ⚡ colorFrom: purple colorTo: red sdk: static pinned: false --- ### **1. Экстракция и Распознавание Структуры Таблиц** --- #### **1.1. Проблема: Обработка фрагментированных таблиц** - **Формальное описание:** Реконструкция единой логической таблицы из физических фрагментов, распределенных по нескольким страницам в PDF-документах или требующих прокрутки в HTML. - **Ключевые вызовы:** - **Идентификация заголовков и футеров:** Необходимо отличать строки заголовка, которые могут повторяться на каждой странице, от уникальных строк данных. - **Сопоставление колонок:** Алгоритм должен корректно сопоставлять колонки между разными страницами, даже если их ширина или выравнивание незначительно меняются. - **Обеспечение целостности данных:** Важно гарантировать, что строки, перенесенные на следующую страницу, будут правильно объединены, а последовательность данных не нарушится. - **Обнаружение границ:** Автоматическое определение того, где заканчивается одна большая таблица и начинается другая, или где она просто прерывается разрывом страницы. #### **1.2. Проблема: Парсинг сложных и плотных табличных структур** - **Формальное описание:** Корректное распознавание и представление иерархической и реляционной структуры в таблицах со сложной компоновкой, такой как объединенные ячейки, вложенные заголовки или высокая плотность данных. - **Ключевые вызовы:** - **Объединенные ячейки (`colspan` и `rowspan`):** Необходимо точно определять, на какое количество строк или столбцов простирается объединенная ячейка, и правильно ассоциировать ее содержимое со всеми соответствующими данными. - **Многоуровневые заголовки:** Таблицы часто имеют иерархические заголовки (например, "Продажи" -> "Онлайн" / "Офлайн"). Требуется сохранить эту иерархию для правильной интерпретации данных. - **Отсутствие четких границ:** В некоторых документах (особенно сканированных) линии сетки могут отсутствовать или быть слабо выраженными, что усложняет сегментацию ячеек. - **Плотные таблицы:** Таблицы с большим количеством мелких ячеек требуют высокой точности от алгоритмов распознавания, чтобы избежать слияния или неверного разделения ячеек. --- ### **2. Выравнивание и Нормализация Схемы Таблиц** - **Формальное описание:** Унификация и нормализация схемы таблиц, которые могут содержать внутренние подсекции, необязательные колонки или различные варианты представления одних и тех же данных. - **Ключевые вызовы:** - **Семантическое разделение:** Идентификация и разделение таблицы на логические под-таблицы на основе семантических разделителей (например, пустая строка, заголовок подраздела внутри таблицы). - **Корректное представление** --- ### **3. Индексация и Поиск Таблиц (Table Retrieval)** Этот этап направлен на создание эффективной системы поиска, позволяющей находить релевантные таблицы по запросам на естественном языке. - **Формальное описание:** Адаптация и оптимизация моделей класса RAG (Retrieval-Augmented Generation) для выполнения семантического поиска и ответов на вопросы на основе корпуса неструктурированных и структурированных табличных данных. - **Ключевые вызовы:** - **Векторное представление (Embedding) таблиц** - **Row-based/Cell-based embedding:** Векторизация отдельных строк или ячеек. - **Structural embedding:** Кодирование структуры таблицы (названия колонок, их взаимосвязи). - **Hybrid embedding:** Комбинирование текстового содержания таблицы с ее структурной информацией.