목록으로
Google AI Releases LangExtract: An Open Source Python Library that Extracts Structured Data from Unstructured Text Documents
Blog2025.08.10

Google AI Releases LangExtract: An Open Source Python Library that Extracts Structured Data from Unstructured Text Documents

요약

Google AI는 비정형 텍스트에서 LLM을 사용하여 추적 가능한 정보를 추출하는 새로운 오픈소스 Python 라이브러리인 LangExtract를 출시했습니다.
이 라이브러리는 Gemini와 같은 LLM 기반으로 선언적이고 추적 가능한 추출, JSON 스키마 강제, 대규모 텍스트 처리, 대화형 HTML 시각화 기능을 제공합니다.
LangExtract는 의료, 금융, 법률, 연구 등 다양한 도메인에서 활용 가능하며, 기존 LLM의 약점인 환각 및 스키마 드리프트를 해결하여 정확하고 검증 가능한 데이터 추출을 지원합니다.

상세 내용

Google AI에서 개발한 새로운 오픈소스 Python 라이브러리인 LangExtract는 비정형 텍스트에서 가치 있는 정보를 추출하는 문제를 해결하기 위해 고안되었습니다. 이는 임상 기록, 법률 계약서, 고객 피드백 등에서 의미 있고 추적 가능한 정보를 추출하는 기술적, 실용적 난제를 해결하며, Gemini와 같은 대규모 언어 모델(LLM)을 활용하여 강력하고 자동화된 추출 기능을 제공합니다.

LangExtract의 핵심 혁신 사항은 다음과 같습니다.

  • Declarative and Traceable Extraction (선언적 및 추적 가능한 추출):
  • * 사용자는 자연어 명령(natural language instructions)과 고품질의 "few-shot" 예시를 사용하여 추출 작업을 정의합니다. 이는 prompt_descriptionexamples 매개변수를 통해 이루어지며, examples는 원본 text와 그에 상응하는 lx.data.Extraction 객체(예: extraction_class, extraction_text, attributes를 포함)를 포함하는 lx.data.ExampleData 객체의 리스트로 구성됩니다.
    * 모든 추출된 정보는 원본 텍스트에 직접 연결되어(source-anchored), 검증, 감사, 그리고 End-to-End 추적 가능성을 보장합니다. 이는 추출된 엔티티가 원본 문서 내의 정확한 위치(span) 정보를 유지함을 의미합니다.

  • Domain Versatility (도메인 다용성):
  • * LangExtract는 건강(임상 노트, 의료 보고서), 금융(요약, 위험 문서), 법률(계약서), 연구 문헌, 심지어 예술 분야(셰익스피어 분석) 등 다양한 실제 도메인에서 활용 가능합니다. 의약품, 복용량 추출이나 문학 작품 내의 관계 및 감정 추출과 같은 실제 사용 사례를 지원합니다.

  • Schema Enforcement with LLMs (LLM을 통한 스키마 강제):
  • * Gemini를 포함한 다양한 LLM을 기반으로 하며, JSON과 같은 사용자 정의 출력 스키마(custom output schemas)를 강제할 수 있습니다. 이는 추출 결과가 정확할 뿐만 아니라 다운스트림 데이터베이스, 분석, 또는 AI 파이프라인에서 즉시 사용 가능함을 의미합니다.
    * 이 기술은 LLM의 환각(hallucination) 및 스키마 드리프트(schema drift)와 같은 전통적인 약점을 해결하는데, 이는 LLM의 출력을 사용자 지침(prompt_description)과 실제 원본 텍스트에 grounding하여 일관되고 구조화된 출력을 유도하기 때문입니다.

  • Scalability and Visualization (확장성 및 시각화):
  • * Large Volumes 처리: 긴 문서를 효율적으로 처리하기 위해 chunking(분할), parallelizing(병렬 처리), aggregating results(결과 집계) 전략을 사용합니다. 이는 LLM의 Context Window 한계를 극복하고 대규모 문서에서 정보를 추출하는 데 필수적인 기술입니다.
    * Interactive Visualization: 개발자는 추출된 각 엔티티를 원본 문서 내의 해당 위치와 함께 보여주는 대화형 HTML 보고서를 생성할 수 있습니다. 이는 lx.visualize 함수를 통해 구현되며, 감사를 용이하게 하고 오류 분석을 간소화합니다.
    * Google Colab, Jupyter, 또는 독립형 HTML 파일로 매끄럽게 통합되어 빠른 개발 및 연구 피드백 루프를 지원합니다.

    LangExtract는 pip install langextract 명령으로 쉽게 설치할 수 있으며, Python 스크립트 내에서 lx.extract() 함수를 사용하여 텍스트 추출을 수행하고 lx.io.save_annotated_documents()lx.visualize() 함수를 통해 결과를 저장하고 시각화할 수 있습니다. 이는 선언적이고 설명 가능한 추출, 소스 컨텍스트에 기반한 추적 가능한 결과, 신속한 반복을 위한 즉각적인 시각화, 그리고 Python 워크플로우에 쉬운 통합을 제공하여 텍스트에서 구조화되고 실행 가능한 데이터를 추출하는 새로운 시대를 제시합니다.

    원본 보기
    Web
    Shared by Anonymous