Slide 1

Slide 1 text

Суперсжатые полнотекстовые индексы Рубаненко Мария МФТИ / Fintech AI / ШАД(Яндекс) 2026

Slide 2

Slide 2 text

Содержание 2 ● 1. Постановка задачи ● 2. Вспомогательные понятия про суперсжатие текста ❏ 2.1. Вейвлет-дерево ❏ 2.2. Преобразование Берроуза-Уилера ❏ 2.3. Обратное преобразование Берроуза-Уилера ● 3. Суперсжатые полнотекстовые индексы ❏ 3.1. FM-индекс ❏ 3.2. RLFM-индекс ❏ 3.3. Структуры сдвига ● 4. Как реализовать суперсжатые полнотекстовые индексы ● 5. Выводы

Slide 3

Slide 3 text

1. Постановка задачи 3

Slide 4

Slide 4 text

1. Постановка задачи 4

Slide 5

Slide 5 text

2. Вспомогательные понятия про суперсжатие текста 5 ● 1. Постановка задачи ● 2. Вспомогательные понятия про суперсжатие текста ❏ 2.1. Вейвлет-дерево ❏ 2.2. Преобразование Берроуза-Уилера ❏ 2.3. Обратное преобразование Берроуза-Уилера ● 3. Суперсжатые полнотекстовые индексы ❏ 3.1. FM-индекс ❏ 3.2. RLFM-индекс ❏ 3.3. Структуры сдвига ● 4. Как реализовать суперсжатые полнотекстовые индексы ● 5. Выводы

Slide 6

Slide 6 text

2.1. Вейвлет-дерево 6

Slide 7

Slide 7 text

2.1. Вейвлет-дерево 7

Slide 8

Slide 8 text

2.1. Вейвлет-дерево 8

Slide 9

Slide 9 text

2.1. Вейвлет-дерево 9

Slide 10

Slide 10 text

2.1. Вейвлет-дерево 10

Slide 11

Slide 11 text

2.2. Преобразование Берроуза-Уилера 11

Slide 12

Slide 12 text

2.2. Преобразование Берроуза-Уилера 12

Slide 13

Slide 13 text

2.3. Обратное преобразование Берроуза-Уилера 13

Slide 14

Slide 14 text

2.3. Обратное преобразование Берроуза-Уилера 14

Slide 15

Slide 15 text

2.3. Обратное преобразование Берроуза-Уилера 15

Slide 16

Slide 16 text

2.3. Обратное преобразование Берроуза-Уилера 16

Slide 17

Slide 17 text

Переходим к основной части Господи, спаси и сохрани…

Slide 18

Slide 18 text

3. Суперсжатые полнотекстовые индексы 18 ● 1. Постановка задачи ● 2. Вспомогательные понятия про суперсжатие текста ❏ 2.1. Вейвлет-дерево ❏ 2.2. Преобразование Берроуза-Уилера ❏ 2.3. Обратное преобразование Берроуза-Уилера ● 3. Суперсжатые полнотекстовые индексы ❏ 3.1. FM-индекс ❏ 3.2. RLFM-индекс ❏ 3.3. Структуры сдвига ● 4. Как реализовать суперсжатые полнотекстовые индексы ● 5. Выводы

Slide 19

Slide 19 text

3.1. FM-индекс (Full-text index in Minute space) 19

Slide 20

Slide 20 text

3.1. FM-индекс 20

Slide 21

Slide 21 text

3.1. FM-индекс 21

Slide 22

Slide 22 text

3.1. FM-индекс 22

Slide 23

Slide 23 text

3.1. FM-индекс 23

Slide 24

Slide 24 text

3.1. FM-индекс 24

Slide 25

Slide 25 text

3.1. FM-индекс 25

Slide 26

Slide 26 text

3.1. FM-индекс 26

Slide 27

Slide 27 text

3.1. FM-индекс 27

Slide 28

Slide 28 text

3.1. FM-индекс 28

Slide 29

Slide 29 text

3.2. RLFM-индекс 29

Slide 30

Slide 30 text

3.2. RLFM-индекс 30

Slide 31

Slide 31 text

3.2. RLFM-индекс 31

Slide 32

Slide 32 text

3.2. RLFM-индекс 32

Slide 33

Slide 33 text

3.2. RLFM-индекс 33

Slide 34

Slide 34 text

3.2. RLFM-индекс 34

Slide 35

Slide 35 text

3.2. RLFM-индекс 35

Slide 36

Slide 36 text

3.2. RLFM-индекс 36

Slide 37

Slide 37 text

3.2. RLFM-индекс 37

Slide 38

Slide 38 text

3.2. RLFM-индекс 38

Slide 39

Slide 39 text

3.2. RLFM-индекс 39

Slide 40

Slide 40 text

3.2. RLFM-индекс 40

Slide 41

Slide 41 text

3.2. RLFM-индекс 41

Slide 42

Slide 42 text

3.2. RLFM-индекс 42

Slide 43

Slide 43 text

3.2. RLFM-индекс 43

Slide 44

Slide 44 text

3.2. RLFM-индекс 44

Slide 45

Slide 45 text

3.2. RLFM-индекс 45

Slide 46

Slide 46 text

3.3. Структуры сдвига 46

Slide 47

Slide 47 text

3.3. Структуры сдвига 47

Slide 48

Slide 48 text

3.3. Структуры сдвига 48

Slide 49

Slide 49 text

3.3. Структуры сдвига 49

Slide 50

Slide 50 text

3.3. Структуры сдвига 50

Slide 51

Slide 51 text

3.3. Структуры сдвига 51

Slide 52

Slide 52 text

3.3. Структуры сдвига 52

Slide 53

Slide 53 text

3.3. Структуры сдвига 53

Slide 54

Slide 54 text

3.3. Структуры сдвига 54

Slide 55

Slide 55 text

4. Как реализовать суперсжатые полнотекстовые индексы 55 ● 1. Постановка задачи ● 2. Вспомогательные понятия про суперсжатие текста ❏ 2.1. Вейвлет-дерево ❏ 2.2. Преобразование Берроуза-Уилера ❏ 2.3. Обратное преобразование Берроуза-Уилера ● 3. Суперсжатые полнотекстовые индексы ❏ 3.1. FM-индекс ❏ 3.2. RLFM-индекс ❏ 3.3. Структуры сдвига ● 4. Как реализовать суперсжатые полнотекстовые индексы ● 5. Выводы

Slide 56

Slide 56 text

4. Как реализовать суперсжатые полнотекстовые индексы 56 https://github.com/U-Ar/full-br-index https://github.com/nicolaprezza/r-index BR-index R-index

Slide 57

Slide 57 text

4. Как реализовать суперсжатые полнотекстовые индексы 57 https://github.com/mohsenzakeri/Movi https://github.com/biointec/b-move Movi B-move

Slide 58

Slide 58 text

4. Как реализовать суперсжатые полнотекстовые индексы 58 https://gitlab.com/manzai/Big-BWT Big-BWT

Slide 59

Slide 59 text

5. Выводы 59 Как можно быстро находить вхождения шаблонов в повторяющихся текстовых данных большого размера: ● используйте суперсжатые полнотекстовые индексы на основе структуры сдвига; ● размещайте таблицу сдвига в одном непрерывном блоке памяти, чтобы уменьшить cache miss; ● используйте инструкции CPU для подгрузки следующей строки таблицы заранее, чтобы скрыть задержку памяти;

Slide 60

Slide 60 text

● Материалы к докладу: https://github.com/mariyana-rubanenko/MoscowPython_107 60 ● Контактная информация: telegram - https://t.me/maryrubik GitHub Telegram

Slide 61

Slide 61 text

Спасибо за внимание! 61 Ура, это закончилось, брат