langextract: 一個將數據映射回原始文本以進行精確驗證的結構化資訊提取函式庫

langextract: 一個將數據映射回原始文本以進行精確驗證的結構化資訊提取函式庫

它解決了什麼問題

LangExtract 是一個 Python 函式庫,旨在從非結構化文本文件中提取結構化資訊。它解決了將雜亂、自由格式的文本(例如臨床筆記或報告)轉換為有組織數據的挑戰,同時確保每一件提取出的資訊都與原始文本掛鉤,以便於驗證。

運作方式

該函式庫使用大型語言模型 (LLMs) 和 few-shot prompting 策略。使用者透過提供提示詞 (prompt) 以及幾個高品質的範例,來定義提取任務,說明文本應如何映射到結構化實體。為了處理長文件,它採用了文本分塊 (text chunking)、並行處理和多次提取輪次 (multiple extraction passes) 的策略,以提高召回率。

對象是誰

它是為需要將非結構化文本轉換為結構化數據集,且無需微調模型的開發者和研究人員而構建的。對於處理特定領域文件(例如醫療報告或文學分析)的人來說特別有用,因為這些領域需要可追溯性和精確度。

重點功能

  • 精確的原始文本掛鉤 (Precise Source Grounding): 將提取內容映射到原始文本中確切的字元區間,以實現視覺上的可追溯性。
  • 可靠的結構化輸出: 使用受控生成 (controlled generation)(在受支援的模型中)和 few-shot 範例來強制執行一致的架構 (schemas)。
  • 長文件優化: 使用並行處理和多次輪次來克服「大海撈針」問題。
  • 互動式視覺化: 生成自包含的 HTML 檔案,以便在原始上下文中視覺化提取出的實體。
  • 彈性的 LLM 支援: 相容於雲端模型 (Gemini, OpenAI) 以及透過 Ollama 使用的本地模型。
  • 可擴展的供應商系統: 允許使用者透過插件系統添加自定義的 LLM 供應商。

Sources