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