TGViewer
Симулейтив Симулейтив @simulative_official · 7.47K subscribers
Post #3342 751
Как мы спасли текст, который съедала LLMSherpa: гибрид для парсинга

Привет! На связи Валерия Елпатьевская, ментор курса «Инженер данных» 👋🏻

Делюсь кейсом, который отлично показывает, что в обработке документов нет универсального инструмента.

Для сервиса парсинга мы взяли библиотеку LLMSherpa. Она идеально считывала заголовки, таблицы, списки и сохраняла логическую структуру текста. Это казалось идеальным решением, но со временем мы обнаружили неочевидную вещь. Часть текста просто пропадала, если фрагмент переходил на следующую страницу и был небольшим.

Терять структуру нельзя. Терять содержимое — тем более. Как быть?

Пришлось писать кастомный парсер-гибрид:

➖ Взяли LLMSherpa как источник структурного скелета.
➖ Подключили сырой экстрактор (pdfplumber/textract/python-docx) для полного покрытия текста.
➖ Написали алгоритм мержа: если расхождение по длине выводов превышает порог (например, >= 30 символов), скрипт построчно сравнивает результаты двух библиотек, находит совпадения, а пропуски заполняет текстом из сырого источника, строго сохраняя порядок строк.

В результате у нас получились чанки с идеальной структурой и ~100% покрытием текста. Мы перестали терять контекст на стыках страниц, сохранив при этом представление о форматировании документа.

Какие выводы из этого можно сделать:
🔶 Ни одна библиотека не универсальна. Структурный парсер вместе с сырым экстрактором оказались надёжнее, чем по отдельности.
🔶 Нужна валидация на стыке компонентов. Сравнение длины, хэши или посимвольный чек экономят часы дебага в проде.
🔶 Кастомный мерж-алгоритм иногда проще и быстрее, чем ожидание обновления библиотеки. Не бойтесь строить обвязку самостоятельно!

А вы сталкивались с тем, что готовые инструменты теряли часть данных? Делитесь кейсами в комментариях ⬇️

📈 Симулейтив | 📱 ВК | 📱 YouTube | 📱 Канал о DS
  • 🔥 4
  • ❤ 2
More from @simulative_official
  1. Sep 28, 2026#проанализировали_и_поняли
  2. Sep 27, 2026💻💻💻💻💻 Как работает ML-инженер — на примере поиска похожих текстов Пользователь вводит…
  3. Sep 25, 2026Сегодня собираем ETL-пайплайн на данных GitHub — от источника до дашборда Сегодня в 19:00…
  4. Sep 24, 2026💻💻💻💻💻 Собираем ETL-пайплайн на данных GitHub Как данные проходят путь от внешнего сер…
  5. Sep 24, 2026Post #3582
  6. Sep 23, 2026Что происходит между вопросом бизнеса и готовым дашбордом? Сегодня в 19:00 покажем этот пу…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →