TX Text Control 是一款功能类似于 MS Word 的文字处理控件,包括文档创建、编辑、打印、邮件合并、格式转换、拆分合并、导入导出、批量生成等功能。广泛应用于企业文档管理,网站内容发布,电子病历中病案模板创建、病历书写、修改历史、连续打印、病案归档等功能的实现。
在当今的数字时代,组织被各种格式的大量文档所淹没,包括 Adobe PDF、Office Open XML、DOCX 或 DOC 或 RTF 等旧格式。在较旧的旧应用程序中,这些文档中包含的信息可能未存储在数据库或其他易于访问的形式中。
提取这些信息的过程非常耗时且劳动密集。借助智能文档处理 (IDP),开发人员现在可以集成自动化并增强与文档相关的工作流程,以提高业务应用程序中的准确性、效率和决策能力。
什么是智能文档处理?
智能文档处理是一种使用人工智能 (AI) 和自然语言处理 (NLP) 自动从文档中提取数据的过程。所使用的 AI 模型可以理解文档的内容、上下文和结构,从而实现复杂的任务,例如文档分类、数据提取,甚至查询文档中的特定信息。IDP 可用于自动处理各种文档,包括发票、采购订单、合同等。
在 Text Control 中,我们专注于研究最佳可用模型和 AI 提供商,以将基于 AI 的文档处理集成到 .NET 应用程序中。我们为各种典型的 IDP 应用程序创建了几个示例,以展示如何结合 TX Text Control 技术的强大功能来从 PDF 文档中提取文本或使用基于 AI 模型的查询从 MS Word 文档访问内容。
文档分类
IDP 最重要的功能之一是文档分类。组织处理各种各样的文档 - 合同、发票、收据、表格、法律文件等。在现代应用程序中使用 TX Text Control 创建这些文档时,数据将存储在数据库中或以机器可读的形式存储,然后以 ISO 标准格式(例如 PDF/A-3b)附加到创建的 PDF 文档中。此数
据可用于根据文档的内容、结构或元数据对其进行分类。例如,可以根据特定关键字、模式或其他标准的存在将发票归类为发票。
但是,使用 TX Text Control 以外的其他较旧技术创建的文档缺少这一重要元数据,必须在单独的流程中提取。自动化流程可以帮助确定文档是发票、报价单还是合同,并将其路由到适当的工作流程。我们构建了一个原型,使用 TX Text Control 导入 PDF 文档的文本并使用 OpenAI 进行分析。
例如,使用 TX Text Control 加载和解析以下 PDF:
输入文档名称后,文档将被导入并发送给OpenAI进行分析。结果将写入控制台。
Enter the path to the document to classify:
Documents\invoice.pdf
invoice:0.8, receipt:0.2, contract:0, quotation:0, agreement:0, other:0
Highest probability: invoice
应用程序已确定输入文档是发票,这是完全正确的。
数据提取
IDP 的另一个重要方面是数据提取。这些数据可用于填充数据库、触发工作流或执行任何其他操作。例如,发票可能包含发票号、日期、总金额和明细项目等信息。IDP 现在用于从发票中提取特定详细信息,以便与原始采购订单进行价值核对。
许多业务文档不遵循固定格式,这使得传统系统难以提取信息。使用 TX Text Control,有两种方法可以在 PDF 文档中查找特定值:
- 使用内置径向文本搜索功能
- 使用 AI 模型查询内容
通过结合这两种方法,我们可以从文档中提取特定值,并使用 AI 模型仔细检查结果。
查询文档
根据文档内容回答问题的能力是现代 IDP 系统最强大的功能之一。假设您拥有大量合同,您需要找出哪些合同包含特定条款或取消条款是什么。手动搜索,即使使用高级搜索,找到正确答案也会花很长时间。
使用 NLP 和 AI,用户可以询问有关文档或文档列表内容的自然问题。发票上的典型问题包括:
- 总金额是多少?
- 发票什么时候到期?
- 付款条件是什么?
对于企业来说,这意味着决策速度更快,生产效率更高。员工无需花费数小时搜索信息,而是可以专注于更有价值的任务,因为他们知道他们手头有准确的数据。
我们开发了一个带有完整源代码的原型,名为 Chat PDF,它使用 TX Text Control 从 PDF 文档中提取文本,并使用 OpenAI 分析内容。该示例还展示了如何通过将内容分解为具有特定重叠的小块来准备内容,以获得准确的答案。
该应用程序是一个简单的 .NET 控制台应用程序,它使用 ASP.NET 的 TX Text Control .NET 服务器导入 PDF 文档并显示 OpenAI 生成的答案。
string question = "Is contracting with other partners an option?"; //string question = "How will disputes be dealt with?"; //string question = "Can the agreement be changed or modified?"; string pdfPath = "Sample PDFs/SampleContract-Shuttle.pdf"; // load the PDF file byte[] pdfDocument = File.ReadAllBytes(pdfPath); // split the PDF document into chunks var chunks = DocumentProcessing.Chunk(pdfDocument, 2500, 50); Console.WriteLine($"{chunks.Count.ToString()} chunks generated from: {pdfPath}"); // get the keywords List<string> generatedKeywords = GPTHelper.GetKeywords(question, 20); // find the matches var matches = DocumentProcessing.FindMatches(chunks, generatedKeywords).ToList().First(); // print the matches Console.WriteLine($"The question: \"{question}\" was found in chunk {matches.Key}."); // print the answer Console.WriteLine("\r\n********\r\n" + GPTHelper.GetAnswer(chunks[matches.Key], question)); 以下控制台显示了示例输出: 14 chunks generated from: Sample PDFs/SampleContract-Shuttle.pdf The question: "Is contracting with other partners an option?" was found in chunk 11. ******** No, contracting with other partners is not an option unless prior approval is obtained from the COMMISSION'S Contract Manager. The document specifies that subcontracting work under this Agreement is not allowed without prior written authorization, except for those identified in the approved Fee Schedule. Subcontracts over $25,000 must include the necessary provisions from the main Agreement and must be approved in writing by the COMMISSION'S Contract Manager.
应用程序在文档中找到了问题的答案并显示相关文本。这是一个非常强大的功能,可以集成到任何业务应用程序中,以根据文档内容提供问题的答案。
结论
智能文档处理是一个强大的工具,可以帮助组织自动化与文档相关的工作流程,提高准确性并做出更好的决策。通过将 TX Text Control 的强大功能与 AI 模型相结合,开发人员可以创建复杂的应用程序,这些应用程序可以根据文档内容对文档进行分类、提取数据并回答问题。这可以帮助组织节省时间、减少错误并提高生产力。
在 Text Control,我们致力于为开发人员提供所需的工具,以创建能够利用最新技术的强大应用程序。我们对智能文档处理的研究只是我们努力帮助开发人员创建能够改变组织工作方式的创新解决方案的一个例子。