File size: 6,199 Bytes
f210e39
 
 
 
 
 
 
 
 
d4a5975
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
---
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:** Комбинирование текстового содержания таблицы с ее структурной информацией.