通过人工智能对文件进行分类和文件分离

文档自动化中经常被忽视的、真正困难的问题之一,也是在日常操作中非常恼人的问题,就是自动将一批文档分离成个别有意义的文档,并将它们分配到一个文档类别。在传统的扫描过程中,这通常是通过手动准备纸张并在每个第一页上放置一个条形码作为文件分隔符来实现的。但这是劳动密集型的,而且容易出错。此外,随着我们变得越来越数字化,即使是基于纸张的流程,我们通常也不再有机会接触到纸张。因此,目标将是简单地扫描整个堆栈,并通过一个智能算法将其分开。

幸运的是,这在今天已经可以实现,例如从Konfuzio技术栈中作为一个集成功能。然而,这并不意味着它很容易。它需要相当多的经验和基础设施,以稳定和可靠的方式管理多个相互依赖的分类和分离步骤。然而,这正是Konfuzio所提供的开箱即用的功能。

文档结构化在原则上是如何工作的?嗯,和人类的方式完全一样(我们的信条!)。逐页浏览堆栈,确定它是什么类型的页面,它是否与前一页有关,或者是否开始了一个新的主题/表格。然后检查页码是否安全,如果它们在那里的话。如果有疑问,请回到一个或多个页面进行检查,然后再决定是否分开。

文件分离

将文件分割成文件

在人工智能分类中,这被整合到一连串的算法中。该系统是在已经正确分离的样本上进行训练的。Konfuzio为每一页学习它是第一页、中间页、最后一页还是单页。用户不需要明确指定,因为Konfuzio人工智能会自动从样本中找出这一点,并为用户隐藏这一复杂性。训练界面只需要将单个文件放入训练集。没有必要为每一种文件类型设定准确的页数(范围)。Konfuzio会自动考虑到每个文件类型的数量可能会有所不同。然而,如果你知道,你也可以限制允许的页数,例如对于总是有一页的单页表格。

然后,Konfuzio将学习该结构,并在运行时将其应用于整个未分离的单页堆栈。

文件拆分 - 训练人工智能的详细指南

文档自动化往往是一个繁琐和容易出错的过程,特别是当涉及到自动将一批文档分离成单个文档并将它们分配到一个文档类别时。传统上,这在扫描过程中是通过手动准备纸张并在每个第一页上放置一个条形码作为分隔符来实现的。然而,这既费时又容易出错。此外,即使在基于纸张的流程中,处理设施通常不再有机会接触到纸张。因此,我们的目标是简单地扫描整个堆栈,并由一个智能算法进行分割。

幸运的是,今天通过Konfuzio技术可以做到这一点。Konfuzio SDK提供了一个名为SplittingAI的预建类和一个训练有素的ContextAwareFileSplittingModel的实例,它使用了上下文敏感的逻辑。在这种情况下,上下文感知意味着一种基于规则的方法,寻找一个类别中所有文件的第一页之间的共同字符串。在预测一个页面是否是一个潜在的断点(即它是否是第一页)时,该算法将该页的内容与第一页的这些共同字符串进行比较。如果这些字符串中至少有一个出现在该页上,该页就被标记为第一页,这意味着它是一个断点。

文件拆分

在这个Deep Dive中,我们将解释如何使用Konfuzio SDK来训练一个能够自动将文件分成多个文件的模型。我们将使用SplittingAI类和一个训练好的ContextAwareFileSplittingModel的实例来自动将一个文件分割成多个文档。

文件拆分

从文件中提取单个文档 让我们看看如何使用Konfuzio SDK将一个文件自动分割成多个文档。我们使用预先建立的SplittingAI类和一个经过训练的ContextAwareFileSplittingModel的实例。后者使用了一个上下文敏感的逻辑。在这种情况下,上下文感知意味着一种基于规则的方法,在一个类别中的所有文件的第一页之间寻找共同的字符串。在预测一个页面是否是一个潜在的断点(即它是否是第一页)时,该算法将该页的内容与第一页的这些共同字符串进行比较。如果这些字符串中至少有一个出现在该页上,该页就被标记为第一页,这意味着它是一个断点。

本教程也可用于多模态文件分割模型(MultimodalFileSplittingModel)。初始化的唯一不同之处在于,不需要明确指定标记器。

如何用Konfuzio的SDK来训练一个文档分割的AI

文件自动化是当今数字工作世界的一个重要组成部分。在这种情况下,将成批的文件自动分离成个别有意义的文件,并将它们分配到一个文件类别中,是一项经常被忽视的困难任务,在日常的文件处理过程中往往会让人非常烦恼。在传统的扫描过程中,这通常是通过手动准备纸张,并在每个第一页上放置一个条形码作为文件分隔符来实现的。然而,这既费时又容易出错。随着数字化程度的提高,处理设施往往不再有机会接触纸张。那么,目标将是简单地扫描整叠文件,并通过智能算法自动分离它。

Konfuzio通过Python Konfuzio SDK为这个问题提供了一个解决方案。Konfuzio SDK提供了一个名为SplittingAI的预训练类,该类使用一个训练好的ContextAwareFileSplittingModel的实例。它使用上下文感知逻辑,寻找一个类别中所有文件的第一页之间的共同字符串,以决定一个页面是否是一个潜在的分割点。如果至少有一个这样的字符串,我们将该页标记为第一页(这意味着它是一个分割点)。

在本教程中,你将学习如何用Konfuzio SDK训练和使用ContextAwareFileSplittingModel来自动分割文档。

第1步:设置Konfuzio项目并创建测试文件

首先,你需要建立一个Konfuzio项目并选择一个测试文件。你可以通过将Konfuzio SDK库导入Python并初始化Konfuzio对象来完成。

from konfuzio_sdk.data import Page, Category, Project
from konfuzio_sdk.trainer.file_splitting import SplittingAI
from konfuzio_sdk.trainer.file_splitting import ContextAwareFileSplittingModel
from konfuzio_sdk.trainer.information_extraction import load_model
from konfuzio_sdk.tokenizer.regex import ConnectedTextTokenizer
# 初始化一个项目并检索一个自选的测试文档
project = Project(id_=YOUR_PROJECT_ID)
test_document = project.get_document_by_id(YOUR_DOCUMENT_ID)

第2步:初始化和定制ContextAwareFileSplittingModel

接下来,你需要初始化和定制ContextAwareFileSplittingModel。要做到这一点,你必须为该模型指定类别和标记器。标记器用于将文本加载到模型中并将其分割成句子。

file_splitting_model = ContextAwareFileSplittingModel(categories=project.categories, tokenizer=ConnectedTextTokenizer() )

在这个例子中,我们使用了ConnectedTextTokenizer,它将文本分割成句子,然后再将其划分为单词。其他标记器,如标准标记器,也可以使用。然而,ConnectedTextTokenizer是专门为处理连接文本而开发的,因此可以帮助识别文件中的可分离段落。

首先,我们需要初始化一个项目并选择一个测试文件。我们假设Konfuzio的SDK已经安装完毕,并且我们可以进入一个正在运行的Konfuzio系统。

from konfuzio_sdk.data import Page, Category, Project
from konfuzio_sdk.trainer.file_splitting import ContextAwareFileSplittingModel
from konfuzio_sdk.tokenizer.regex import ConnectedTextTokenizer
# 初始化一个项目并获取您选择的测试文档
project = Project(id_=YOUR_PROJECT_ID)
test_document = project.get_document_by_id(YOUR_DOCUMENT_ID)

然后我们初始化一个ContextAwareFileSplittingModel的实例,并使其适应我们的项目类别。我们还需要指定使用的标记器。在这种情况下,我们使用ConnectedTextTokenizer。

# 初始化上下文感知文件分割模型并进行匹配
file_splitting_model = ContextAwareFileSplittingModel(categories=project.categories, tokenizer=ConnectedTextTokenizer())
# 拟合模型
file_splitting_model.fit(allow_empty_categories=True)

现在我们可以使用训练好的模型将一个输入文件分割成几个文件。我们假设我们有一个由几个文件组成的文件,因此需要被分离。

# 使用上下文感知文件分割模型运行预测
new_documents = []
current_document = None
for page in test_document.pages():
    pred = file_splitting_model.predict(page)
    if pred.is_first_page:
        # 在找到第一个页面时创建一个新文档
        如果 current_document 不是 None:
            new_documents.append(current_document)
        current_document = project.create_document(category_id=YOUR_CATEGORY_ID)
        current_document.add_page(page)
    否则:
        # 将页面添加到当前文档中
        current_document.add_page(page)
# 将最后一个文档添加到列表中
new_documents.append(current_document)

变量 新文件 现在包含一个从原始输入文件中提取的独立文件列表。

通过 "人在回路 "的用户界面进行验证

文件处理是各行业的一个重要组成部分,如银行、保险和法律。扫描和归档多个文件的过程可能很耗时,通常需要一个自动化的解决方案来分割和组织这些文件。然而,自动化解决方案并不总是完美的,可能会错过重要的细节或错误地识别文件类型。这就是人类界面,即文件验证用户界面(DV UI)发挥作用的地方。

拆分文件

DV UI是一种工具,它允许人们与自动文件处理系统互动,以验证和纠正其输出。DV UI为用户提供了一个界面,以审查和验证自动文件分割和文件组织,并在必要时进行纠正。用户还可以训练人工智能系统识别新的文件类型,以确保未来拆分和组织的准确性。

使用 DV UI 对自动分割扫描件和文件的人工智能进行微调,可以显著提高文档处理的准确性和效率。人工智能系统可以从用户的更正中学习并更新其算法,以便更好地识别文档类型并进行相应的分割。人工智能系统从用户那里获得的数据越多,其准确性就越高,因此随着时间的推移,所需的人工干预也会越来越少。

归类和重命名文件

此外,通过使用DV UI进行文件处理,公司可以节省时间和金钱,因为该系统可以在更短的时间内处理更多的文件,并减少错误。这意味着企业可以将资源集中在其他重要任务上,如分析从处理过的文件中提取的数据,而不是手动组织和分割文件。

综上所述,DV UI是一个不可或缺的工具,用于微调人工智能,自动分割扫描和包含多个文件的文件。它的使用可以显著提高文件处理的准确性和效率,减少人工干预的需要,使公司能够专注于其他重要任务。

结论 文件分离和文件分类

在这个例子中,我们展示了如何使用Konfuzio SDK来使用一个训练有素的模型将一个输入文档分割成几个独立的文档。自动拆分文档对于处理成批的纸质文档或包含多个独立文档的PDF文件特别有用。通过Konfuzio SDK,开发者可以快速、轻松地训练自己的模型,并将其应用于新文档。

注册 或访问我们的 技术文件 了解更多

"
"
Elizaveta Ezhergina 的头像

最新文章