ContextGem文档数据提取工具使用详解

开发工具 潘老师 1周前 (04-14) 12 ℃ (0) 扫码查看

今天给大家介绍一个好用的框架——ContextGem,免费又开源,能帮大家简化从文档中提取结构化数据和获取关键洞察的流程。下面就来详细了解一下。

一、ContextGem优势

(一)简化开发流程

ContextGem为开发者打造了一个灵活又直观的框架。借助它,开发者不用写大量复杂代码,就能轻松从文档里提取结构化数据,获取有价值的信息,大大缩短了开发时间。

(二)自动化功能

它具备多种自动化功能,像自动动态提示、数据建模与验证、精确的段落和句子映射、提供理由支持,还有神经分割(SaT)等。

(三)多语言支持

在全球化的今天,多语言处理能力很关键。ContextGem无需额外提示,就能支持多语言的输入和输出,方便处理各种语言的文档。

(四)统一的提取管道

ContextGem提供了单一、统一的提取管道,支持声明式、可序列化的数据处理方式。

(五)多LLM支持

它支持多个大语言模型(LLM)提供商,还提供了简单的API接口,方便开发者根据需求轻松切换不同的LLM,选择最适合项目的模型。

二、ContextGem的核心组件

(一)文档模型(Document Model)

这是存放文本或视觉内容的地方,也就是我们要处理的文档,是数据提取的基础。

(二)方面模型(Aspect Model)

它主要用于定义文档中的特定区域或主题。通过确定这些方面,我们可以更有针对性地提取相关信息。

(三)概念模型(Concept Model)

从方面或文档中提取出来的一个个信息单元或实体,就是概念模型。

三、安装与快速上手

(一)安装ContextGem

在命令行中执行以下命令,就能完成安装:

pip install -U contextgem

这里的pip是Python的包管理工具,install表示安装,-U参数用于升级包到最新版本,contextgem就是我们要安装的框架名称。

(二)快速开始:方面提取

import os
from contextgem import Aspect, Document, DocumentLLM

# 示例文档
doc = Document(
    raw_text=(
        "SERVICE AGREEMENT\n"
        "SERVICES. Provider agrees to provide the following services to Client: "
        "Cloud-based data analytics platform access and maintenance...\n"
        "PAYMENT. Client agrees to pay $5,000 per month for the services. "
        "Payment is due on the 1st of each month. Late payments will incur a 2% fee per month...\n"
        "CONFIDENTIALITY. Both parties agree to keep all proprietary information confidential "
        "for a period of 5 years following termination of this Agreement..."
    ),
)

# 定义方面
doc.aspects = [
    Aspect(
        name="Payment Terms",
        description="Payment terms and conditions in the contract",
    ),
]

# 定义LLM
llm = DocumentLLM(
    model="openai/gpt-4o-mini",
    api_key=os.environ.get("CONTEXTGEM_OPENAI_API_KEY"),
)

# 提取信息
doc = llm.extract_all(doc)

# 访问提取的信息
for item in doc.aspects[0].extracted_items:
    print(f"• {item.value}")

上述代码中,首先导入所需的模块。然后创建一个Document对象,设置示例文档内容。接着定义一个Aspect对象,用于指定要提取的方面是合同中的付款条款。之后设置使用的LLM模型,并传入API密钥。调用llm.extract_all(doc)方法进行信息提取,最后遍历提取到的信息并打印。

(三)快速开始:概念提取

import os
from contextgem import Document, DocumentLLM, StringConcept

# 示例文档
doc = Document(
    raw_text=(
        "Consultancy Agreement\n"
        "This agreement between Company A (Supplier) and Company B (Customer)...\n"
        "The term of the agreement is 1 year from the Effective Date...\n"
        "The Supplier shall provide consultancy services as described in Annex 2...\n"
        "The Customer shall pay the Supplier within 30 calendar days of receiving an invoice...\n"
        "The purple elephant danced gracefully on the moon while eating ice cream.\n"
        "This agreement is governed by the laws of Norway...\n"
    ),
)

# 定义概念
doc.concepts = [
    StringConcept(
        name="Anomalies",
        description="Anomalies in the document",
        add_references=True,
        reference_depth="sentences",
        add_justifications=True,
        justification_depth="brief",
    )
]

# 定义LLM
llm = DocumentLLM(
    model="openai/gpt-4o-mini",
    api_key=os.environ.get("CONTEXTGEM_OPENAI_API_KEY"),
)

# 提取信息
doc = llm.extract_all(doc)

# 访问提取的信息
print(doc.concepts[0].extracted_items)

这段代码同样先导入模块,创建Document对象并设置示例文档。接着定义一个StringConcept对象,用于提取文档中的异常信息,并设置了添加引用和理由的相关参数。之后设置LLM模型和API密钥,进行信息提取,最后打印提取到的异常信息。

四、优化策略

为了让数据提取更高效,ContextGem提供了多种优化策略。比如选择合适的LLM,不同的模型在处理特定任务时可能有不同的表现,选对模型能提高提取准确率;还有优化长文档处理,长文档处理起来相对复杂,合理的优化可以提升处理速度,降低成本。如果想了解更多优化策略的详细信息,可以参考ContextGem的官方文档

希望通过这篇文章,大家能对ContextGem有更深入的了解,在处理文档数据提取任务时,不妨试试这个框架,有兴趣的赶紧体验下吧。


版权声明:本站文章,如无说明,均为本站原创,转载请注明文章来源。如有侵权,请联系博主删除。
本文链接:https://www.panziye.com/tool/17165.html
喜欢 (0)
请潘老师喝杯Coffee吧!】
分享 (0)
用户头像
发表我的评论
取消评论
表情 贴图 签到 代码

Hi,您需要填写昵称和邮箱!

  • 昵称【必填】
  • 邮箱【必填】
  • 网址【可选】