<НА ГЛАВНУЮ

Google AI запускает LangExtract: Python-библиотека для прозрачного извлечения данных из неструктурированного текста

Google AI представил LangExtract — мощную open-source Python-библиотеку для извлечения структурированных и проверяемых данных из неструктурированных текстов с использованием LLM, таких как Gemini.

Извлечение данных из неструктурированного текста

В современном мире, полном данных, важная информация часто скрыта в неструктурированных текстах — таких как медицинские записи, юридические контракты или отзывы клиентов. Извлечение структурированных и проверяемых данных из таких документов долгое время оставалось технической задачей. Новая open-source Python-библиотека от Google AI — LangExtract — решает эту проблему, используя крупные языковые модели (LLM), например Gemini, для точного и прозрачного извлечения.

Основные возможности LangExtract

  • Декларативное и проверяемое извлечение: Пользователи задают задачи извлечения с помощью естественных языковых инструкций и примеров few-shot, определяя конкретные сущности, отношения или факты. Каждое извлечённое значение связано с его исходным местом в тексте, что обеспечивает проверку и аудит.

  • Широкая область применения: LangExtract поддерживает разные сферы, включая медицину (извлечение лекарств и дозировок), финансы (анализ рисков), юриспруденцию (анализ контрактов), научные исследования и искусство (анализ произведений Шекспира).

  • Поддержка схем вывода с LLM: Работая на базе Gemini и совместно с другими LLM, библиотека обеспечивает соблюдение пользовательских схем вывода, таких как JSON, предотвращая ошибки и отклонения, привязывая результаты к инструкциям и исходному тексту.

  • Масштабируемость и визуализация: Эффективно обрабатывает длинные документы, разбивая их на части и параллельно извлекая данные, а также предоставляет интерактивные HTML-отчёты с подсветкой извлечённых сущностей в оригинальном тексте.

  • Легкая интеграция: LangExtract работает в Google Colab, Jupyter и как отдельные HTML-файлы, позволяя быстро разрабатывать и тестировать решения.

Установка

Установить LangExtract очень просто через pip:

pip install langextract

Пример использования: извлечение информации о персонажах из произведений Шекспира

import langextract as lx
import textwrap
 
# 1. Определяем инструкцию
prompt = textwrap.dedent("""
Извлеките персонажей, эмоции и отношения в порядке появления.
Используйте точный текст для извлечений. Не перефразируйте и не перекрывайте сущности.
Добавьте значимые атрибуты для каждого объекта для контекста.
""")
 
# 2. Пример высокого качества
examples = [
    lx.data.ExampleData(
        text="ROMEO. But soft! What light through yonder window breaks? It is the east, and Juliet is the sun.",
        extractions=[
            lx.data.Extraction(extraction_class="character", extraction_text="ROMEO", attributes={"emotional_state": "wonder"}),
            lx.data.Extraction(extraction_class="emotion", extraction_text="But soft!", attributes={"feeling": "gentle awe"}),
            lx.data.Extraction(extraction_class="relationship", extraction_text="Juliet is the sun", attributes={"type": "metaphor"}),
        ],
    )
]
 
# 3. Извлечение из нового текста
input_text = "Lady Juliet gazed longingly at the stars, her heart aching for Romeo"
 
result = lx.extract(
    text_or_documents=input_text,
    prompt_description=prompt,
    examples=examples,
    model_id="gemini-2.5-pro"
)
 
# 4. Сохранение и визуализация результатов
lx.io.save_annotated_documents([result], output_name="extraction_results.jsonl")
html_content = lx.visualize("extraction_results.jsonl")
with open("visualization.html", "w") as f:
    f.write(html_content)

Этот пример создаёт структурированные JSON-данные, привязанные к исходному тексту, и интерактивную HTML-визуализацию для удобного анализа.

Реальные применения

  • Медицина: Извлечение лекарств, дозировок и времени приёма из клинических документов, улучшая понятность и совместимость данных.
  • Финансы и юриспруденция: Автоматический поиск важных пунктов и рисков в сложных текстах с полной проверяемостью.
  • Наука: Автоматизация масштабного извлечения данных из научных публикаций.

Также доступна демонстрация RadExtract для структурирования радиологических отчётов с точной привязкой к исходному тексту.

Преимущества перед традиционными методами

| Особенность | Традиционные методы | Подход LangExtract | |-----------------------|-------------------------------|-----------------------------------------------------| | Соблюдение схем | Ручное, с ошибками | Контролируется инструкциями и примерами | | Проверяемость результатов | Минимальная | Все данные связаны с исходным текстом | | Масштабирование | Окна, с потерями данных | Разбиение, параллельное извлечение и агрегация | | Визуализация | Отсутствует или кастомная | Встроенные интерактивные HTML-отчёты | | Развёртывание | Жёстко привязано к модели | В первую очередь Gemini, совместимо с другими LLM |

LangExtract открывает новую эру в извлечении структурированных и проверяемых данных из неструктурированных текстов.

🇬🇧

Switch Language

Read this article in English

Switch to English