GEO

如何从文本提取结构化信息?2024 LangExtract库使用指南 | Geoz.com.cn

2026/2/9
如何从文本提取结构化信息?2024 LangExtract库使用指南 | Geoz.com.cn
AI Summary (BLUF)

LangExtract is a Python library powered by large language models (like Gemini) that extracts structured information from unstructured text with precise source localization and interactive visualization capabilities. It offers reliable structured output, long-document optimization, domain adaptability, and is open-source under Apache 2.0 license. (LangExtract是一个基于大语言模型(如Gemini)的Python库,能够从非结构化文本中提取结构化信息,具备精确的源定位和交互式可视化功能。它提供可靠的结构化输出、长文档优化、领域适应性,并在Apache 2.0许可证下开源。)

概述

在当今数据驱动的世界中,大量关键信息被锁在非结构化的文本中,如报告、合同、研究论文和临床记录。手动提取这些信息不仅耗时,而且容易出错。LangExtract 应运而生,它是一个强大的 Python 库,旨在利用大型语言模型(如 Google 的 Gemini)的能力,自动化地从非结构化文本中提取结构化信息,同时提供精确的源定位和交互式可视化功能。

在当今数据驱动的世界中,大量关键信息被锁在非结构化的文本中,如报告、合同、研究论文和临床记录。手动提取这些信息不仅耗时,而且容易出错。LangExtract 应运而生,它是一个强大的 Python 库,旨在利用大型语言模型(如 Google 的 Gemini)的能力,自动化地从非结构化文本中提取结构化信息,同时提供精确的源定位和交互式可视化功能。

核心功能

精确源定位

LangExtract 的核心优势之一是其精确的源定位能力。它将每个提取出的结构化结果(如实体、关系)映射回原始文本中的确切位置。这种映射通过交互式可视化以高亮形式呈现,使用户能够轻松追踪和验证信息的来源,极大地增强了结果的可信度和可审计性。

LangExtract 的核心优势之一是其精确的源定位能力。它将每个提取出的结构化结果(如实体、关系)映射回原始文本中的确切位置。这种映射通过交互式可视化以高亮形式呈现,使用户能够轻松追踪和验证信息的来源,极大地增强了结果的可信度和可审计性。

可靠的结构化输出

该库基于用户提供的少量示例(Few-Shot Examples)来强制执行一致的输出模式。它利用了 Gemini 等先进模型所支持的“受控生成”功能,确保提取结果严格遵循预定义的结构和格式,从而生成高质量、标准化的数据。

该库基于用户提供的少量示例(Few-Shot Examples)来强制执行一致的输出模式。它利用了 Gemini 等先进模型所支持的“受控生成”功能,确保提取结果严格遵循预定义的结构和格式,从而生成高质量、标准化的数据。

长文档优化

处理长篇文档是信息提取中的经典挑战(常被称为“大海捞针”问题)。LangExtract 通过优化的文本分块策略、并行处理以及多轮提取传递等技术,有效克服上下文长度限制,在长文档中实现更高的信息召回率。

处理长篇文档是信息提取中的经典挑战(常被称为“大海捞针”问题)。LangExtract 通过优化的文本分块策略、并行处理以及多轮提取传递等技术,有效克服上下文长度限制,在长文档中实现更高的信息召回率。

领域适应性

LangExtract 的设计极具灵活性。用户无需对底层大语言模型进行微调,仅需提供少量针对特定领域的示例,即可快速定义和定制提取任务。这使得它能够轻松适应医疗、法律、金融、学术研究等不同领域的独特需求。

LangExtract 的设计极具灵活性。用户无需对底层大语言模型进行微调,仅需提供少量针对特定领域的示例,即可快速定义和定制提取任务。这使得它能够轻松适应医疗、法律、金融、学术研究等不同领域的独特需求。

交互式可视化

库内建了强大的可视化功能,能够生成交互式 HTML 报告。在这些可视化界面中,提取出的实体和关系会在原文上下文中被直观地高亮显示,方便用户进行结果审查、分析和演示。

库内建了强大的可视化功能,能够生成交互式 HTML 报告。在这些可视化界面中,提取出的实体和关系会在原文上下文中被直观地高亮显示,方便用户进行结果审查、分析和演示。

开源与透明

LangExtract 在 Apache 2.0 开源许可证下发布,允许免费用于商业和个人项目。其开发过程是社区驱动且完全透明的,鼓励开发者审查代码、贡献功能并共同改进。

LangExtract 在 Apache 2.0 开源许可证下发布,允许免费用于商业和个人项目。其开发过程是社区驱动且完全透明的,鼓励开发者审查代码、贡献功能并共同改进。

应用领域

LangExtract 的多功能性使其在多个关键领域具有广泛的应用前景:

  • 医疗健康 (Healthcare): 从临床记录、医疗报告和病历中提取关键信息(如药物、剂量、诊断、患者信息),同时保持严格的源可追溯性,这对于合规性和审计至关重要。

    从临床记录、医疗报告和病历中提取关键信息(如药物、剂量、诊断、患者信息),同时保持严格的源可追溯性,这对于合规性和审计至关重要。

  • 法律文档 (Legal Documents): 自动化分析合同、协议和法律文件,提取条款、关键日期、签约方、义务和权利等结构化信息。

    自动化分析合同、协议和法律文件,提取条款、关键日期、签约方、义务和权利等结构化信息。

  • 研究分析 (Research Analysis): 帮助研究人员分析大量文献,从学术论文中提取实体(如方法、数据集、结论)、引用关系,并将无组织的文本数据转化为结构化知识库。

    帮助研究人员分析大量文献,从学术论文中提取实体(如方法、数据集、结论)、引用关系,并将无组织的文本数据转化为结构化知识库。

  • 商业智能 (Business Intelligence): 将报告、新闻、市场分析、客户反馈等商业文档转换为可用于分析和决策制定的结构化数据。

    将报告、新闻、市场分析、客户反馈等商业文档转换为可用于分析和决策制定的结构化数据。

开发者社区评价

自发布以来,LangExtract 在开发者社区中引起了显著关注和积极反响:

  • AI 透明度与可追溯性: “它将语言转化为结构化的‘黄金’数据,并带来了前所未有的 AI 透明度和可追溯性潜力。”

    “It turns language into structured gold with unprecedented potential for AI transparency and traceability.”

  • 数据科学的未来: “这是数据科学领域的一项重大进步,使我们能够从最复杂的文档中可靠地提取结构化数据。”

    “A huge leap forward for data science, enabling structured data extraction from even the most complex documents.”

  • 开发者生产力: “在所有涉及文档处理的开发项目中都极其有用,能显著提高工作流程的效率。”

    “Incredibly useful for any development project involving documents, significantly boosting workflow efficiency.”

  • 全球影响力: “该工具已在全球范围内受到关注,国际开发者社区表现出强烈的兴趣和采纳意愿。”

    “The tool is gaining global attention with strong interest from international developer communities.”

社区特别强调了其核心优势:非常适合处理医疗报告和临床文档完美适用于金融文档分析和数据提取是学术研究和文献分析的强大工具,并且支持云端和本地模型,性能卓越

社区特别强调了其核心优势:非常适合处理医疗报告和临床文档完美适用于金融文档分析和数据提取是学术研究和文献分析的强大工具,并且支持云端和本地模型,性能卓越

快速入门指南

只需三个简单步骤,即可开始使用 LangExtract。

1. 定义提取任务

首先,创建引导模型提取的提示词(Prompt)和少量高质量示例。

import langextract as lx

# 定义提取规则
prompt = "从文本中提取角色和情感"

# 提供高质量示例
examples = [
    lx.data.ExampleData(
        text="ROMEO: But soft! What light...",
        extractions=[
            lx.data.Extraction(
                extraction_class="character",
                extraction_text="ROMEO"
            )
        ]
    )
]

First, create a prompt and a few high-quality examples to guide the model's extraction.

import langextract as lx

# Define extraction rules
prompt = "Extract characters and sentiments from the text"

# Provide high-quality examples
examples = [
    lx.data.ExampleData(
        text="ROMEO: But soft! What light...",
        extractions=[
            lx.data.Extraction(
                extraction_class="character",
                extraction_text="ROMEO"
            )
        ]
    )
]

2. 执行提取

使用定义好的任务来处理您的文本或文档集合。

result = lx.extract(
    text_or_documents=input_text,
    prompt_description=prompt,
    examples=examples,
    model_id="gemini-2.5-flash" # 指定使用的模型
)

Process your text or collection of documents using the defined task.

result = lx.extract(
    text_or_documents=input_text,
    prompt_description=prompt,
    examples=examples,
    model_id="gemini-2.5-flash" # Specify the model to use
)

3. 可视化与保存结果

将结果保存为文件,并生成交互式 HTML 可视化报告进行查看。

# 保存结构化结果
lx.io.save_annotated_documents(
    [result],
    output_name="results.jsonl"
)

# 生成交互式可视化HTML
html_content = lx.visualize("results.jsonl")
with open("visualization.html", "w") as f:
    f.write(html_content)

Save the structured results and generate an interactive HTML visualization report.

# Save structured results
lx.io.save_annotated_documents(
    [result],
    output_name="results.jsonl"
)

# Generate interactive visualization HTML
html_content = lx.visualize("results.jsonl")
with open("visualization.html", "w") as f:
    f.write(html_content)

实际应用案例

以下案例展示了 LangExtract 在不同领域的强大应用能力:

  • 14.7万字符文学分析: 从莎士比亚的《罗密欧与朱丽叶》全文中提取角色、情感和关系网络。展示了其处理完整长文档、并行计算和生成交互式可视化的能力。

    147k Character Literary Analysis: Extracted characters, sentiments, and relationships from the entire text of Shakespeare's "Romeo and Juliet". Demonstrates capabilities in full-document processing, parallel computing, and interactive visualization.

  • 98% 准确率医疗记录结构化: 处理临床记录,精确提取药物名称、剂量和患者信息。此案例强调了其在 HIPAA 合规环境下的处理能力、专业医疗实体识别和严格的源可追溯性。

    98% Accuracy Medical Record Structuring: Processed clinical notes to accurately extract medication names, dosages, and patient information. This case highlights its capabilities in HIPAA-compliant processing, specialized medical entity recognition, and strict source traceability.

  • 在线演示 RadExtract: 一个实时处理放射学报告的现场演示。用户可以直接在浏览器中体验 LangExtract 如何将非结构化的放射报告转化为结构化数据,无需任何安装。

    Live Demo RadExtract: A live demonstration that processes radiology reports in real-time. Users can experience firsthand how LangExtract transforms unstructured radiology notes into structured data directly in their browser, with no installation required.

安装与设置

基本安装

通过 pip 命令即可轻松安装 LangExtract。

$ pip install langextract

LangExtract can be easily installed via pip.

$ pip install langextract

开发环境设置

如果您想从源代码贡献或探索,可以克隆仓库并进行开发安装。

$ git clone https://github.com/google/langextract.git
$ cd langextract
$ pip install -e ".[dev]"

If you wish to contribute or explore from the source code, you can clone the repository and perform a development installation.

$ git clone https://github.com/google/langextract.git
$ cd langextract
$ pip install -e ".[dev]"

API 密钥设置

若要使用 Gemini 等云端大语言模型,您需要设置相应的 API 密钥。

# 在终端中设置环境变量
$ export LANGEXTRACT_API_KEY="your-api-key-here"

# 或者,在项目根目录的 .env 文件中添加
LANGEXTRACT_API_KEY=your-api-key-here

To use cloud-based large language models like Gemini, you need to set up the corresponding API key.

# Set as an environment variable in the terminal
$ export LANGEXTRACT_API_KEY="your-api-key-here"

# Alternatively, add it to a .env file in the project root
LANGEXTRACT_API_KEY=your-api-key-here

结语

LangExtract 通过结合大型语言模型的强大理解能力与精确的工程化控制,为从非结构化文本中提取结构化信息提供了一个高效、可靠且透明的解决方案。无论您是数据科学家、领域专家还是软件开发者,它都能显著提升您处理文本数据的工作流程。

LangExtract provides an efficient, reliable, and transparent solution for extracting structured information from unstructured text by combining the powerful comprehension of large language models with precise engineering controls. Whether you are a data scientist, a domain expert, or a software developer, it can significantly enhance your workflow for processing textual data.

准备开始了吗? 使用 pip 安装 LangExtract,您可以在几分钟内开始从文本数据中提取有价值的结构化信息。

$ pip install langextract

查看 官方文档 以获取更详细的指南和 API 参考。

Ready to get started? Install LangExtract via pip, and you can begin extracting valuable structured information from your text data within minutes.

$ pip install langextract

Check out the official documentation for more detailed guides and API references.

← 返回文章列表
分享到:微博

版权与免责声明:本文仅用于信息分享与交流,不构成任何形式的法律、投资、医疗或其他专业建议,也不构成对任何结果的承诺或保证。

文中提及的商标、品牌、Logo、产品名称及相关图片/素材,其权利归各自合法权利人所有。本站内容可能基于公开资料整理,亦可能使用 AI 辅助生成或润色;我们尽力确保准确与合规,但不保证完整性、时效性与适用性,请读者自行甄别并以官方信息为准。

若本文内容或素材涉嫌侵权、隐私不当或存在错误,请相关权利人/当事人联系本站,我们将及时核实并采取删除、修正或下架等处理措施。 也请勿在评论或联系信息中提交身份证号、手机号、住址等个人敏感信息。