В этом руководстве я покажу вам, как извлекать структурированные данные из PDF-файлов с помощью моделей визуального языка (VLM), таких как Gemini Flash или GPT-4o.
Gemini, последняя серия моделей визуального языка от Google, продемонстрировала высочайший уровень понимания текста и изображений. Эти улучшенные мультимодальные возможности и длинное контекстное окно делают его особенно полезным для обработки визуально сложных данных PDF, с которыми трудно справиться традиционным моделям извлечения, таких как рисунки, диаграммы, таблицы и диаграммы.
Таким образом, вы можете легко создать свой собственный инструмент извлечения данных для извлечения визуальных файлов и веб-страниц. Вот как:
Длинное контекстное окно и мультимодальные возможности Gemini делают его особенно полезным для обработки визуально сложных данных PDF, где традиционные модели извлечения не справляются.
Прежде чем мы углубимся в извлечение, давайте настроим нашу среду разработки. В этом руководстве предполагается, что в вашей системе установлен Python. Если нет, загрузите и установите его с https://www.python.org/downloads/
⚠️ Обратите внимание: если вы не хотите использовать Python, вы можете использовать облачную платформу thepi.pe для загрузки файлов и скачивания результатов в формате CSV без написания кода.
Откройте терминал или командную строку и выполните следующие команды:
pip install git https://github.com/emcf/thepipe pip install pandas
Для новичков в Python: pip — это установщик пакетов для Python, и эти команды загрузят и установят необходимые библиотеки.
Чтобы использовать thepipe, вам понадобится ключ API.
Отказ от ответственности: thepi.pe — бесплатный инструмент с открытым исходным кодом, но стоимость API составляет примерно 0,00002 доллара США за токен. Если вы хотите избежать таких затрат, ознакомьтесь с инструкциями по локальной настройке на GitHub. Обратите внимание, что вам все равно придется платить выбранному вами поставщику LLM.
Вот как его получить и настроить:
Теперь вам нужно установить это как переменную среды. Этот процесс зависит от вашей операционной системы:
Для Windows:
Для macOS и Linux:
Откройте терминал и добавьте следующую строку в файл конфигурации оболочки (например, ~/.bashrc или ~/.zshrc):
export THEPIPE_API_KEY=your_api_key_here
Затем перезагрузите конфигурацию:
source ~/.bashrc # or ~/.zshrc
Ключом к успешному извлечению является определение четкой схемы данных, которые вы хотите извлечь. Допустим, мы извлекаем данные из документа ведомости объемов:
Пример страницы из документа «Количественная ведомость». Данные на каждой странице не зависят от других страниц, поэтому мы выполняем извлечение «постранично». На каждой странице необходимо извлечь несколько фрагментов данных, поэтому мы устанавливаем для нескольких извлечений значение True
Глядя на имена столбцов, мы можем извлечь такую схему:
schema = { "item": "string", "unit": "string", "quantity": "int", }
Вы можете изменить схему по своему вкусу на платформе thepi.pe. Нажав «Просмотреть схему», вы получите схему, которую вы можете скопировать и вставить для использования с API Python
Теперь давайте воспользуемся Extract_from_file для извлечения данных из PDF-файла:
from thepipe.extract import extract_from_file results = extract_from_file( file_path = "bill_of_quantity.pdf", schema = schema, ai_model = "google/gemini-flash-1.5b", chunking_method = "chunk_by_page" )
Здесь мы используем chunking_method="chunk_by_page", потому что мы хотим отправлять каждую страницу в модель искусственного интеллекта индивидуально (PDF слишком велик, чтобы передать все сразу). Мы также устанавливаем Multiple_extractions=True, поскольку каждая страница PDF содержит несколько строк данных. Вот как выглядит страница из PDF-файла:
Результаты извлечения PDF-файла с объемами работ, просмотренные на платформе thepi.pe
Результаты извлечения возвращаются в виде списка словарей. Мы можем обработать эти результаты, чтобы создать DataFrame pandas:
import pandas as pd df = pd.DataFrame(results) # Display the first few rows of the DataFrame print(df.head())
При этом создается DataFrame со всей извлеченной информацией, включая текстовое содержимое и описания визуальных элементов, таких как рисунки и таблицы.
Теперь, когда у нас есть данные в DataFrame, мы можем легко экспортировать их в различные форматы. Вот несколько вариантов:
df.to_excel("extracted_research_data.xlsx", index=False, sheet_name="Research Data")
При этом создается файл Excel с именем «extracted_research_data.xlsx» и листом с именем «Данные исследования». Параметр index=False предотвращает включение индекса DataFrame в качестве отдельного столбца.
Если вы предпочитаете более простой формат, вы можете экспортировать в CSV:
df.to_csv("extracted_research_data.csv", index=False)
При этом создается файл CSV, который можно открыть в Excel или любом текстовом редакторе.
Ключ к успешному извлечению лежит в определении четкой схемы и использовании мультимодальных возможностей модели ИИ. По мере того, как вы освоитесь с этими методами, вы сможете изучить более продвинутые функции, такие как настраиваемые методы фрагментирования, настраиваемые подсказки для извлечения и интеграцию процесса извлечения в более крупные конвейеры данных.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3