使用chat-GPT接口提取合同中关键信息

1 业务需求

        目前公司有几千份合同,而且还会不断的增长;现在需要将合同中的关键信息提取出来给业务使用,业务现在需要将这些关键字段信息录入存档到档案系统;人工去阅读整个合同去提取这些信息,是很浪费人力的;因此,现在需要将合同给AI去识别提取指定字段信息,按照格式输出excel给业务人员进行简单的审核,然后直接导入档案系统即可;这样极大的减少了人工的浪费;合同文本和每类合同的需要提取的关键字段由业务方提供(合同文本为pdf图片格式的扫描件)

2 需求分析

        由于合同文本信息的格式为扫描件图片格式,那么第一步是需要将图片格式的pdf转换成文本格式pdf 这样程序才能解析;这一步操作只需要用现成的转换工具提前先转换好;在转换时,我发现扫描件中不够清晰的图片,或者有人工书写的文字在转换成文本文字时出现错别字;这些就会导致ai提取原文出现错误;这种情况只能是人工来处理了;所有的操作都是基于文件进行的;所以需要列举出文件列表;

3 方案设计

        第一步: 在上述处理完成文档转换后,(上传前需要选择合同类型)用户需要将文档上传oss云存储上,上传成功之后,使用程序按照段落分隔文档将文档数据落库;(为什么要这么做?因为调用gpt接口有token 数限制,其次也是为了提高响应速度)可批量操作;上传成功之后展示文件列表信息;

        第二步:将需要识别的合同关键字段导入到数据表中;(通过excel表格形式导入)

        第三步:触发ai识别

        分割完成后,选择需要触发识别的文档;可批量操作文档;触发ai识别按钮,这时会获取分隔好的数据获取到;然后组装PROMPT,组装的信息需要按照不同类型的合同从第二步中的数据表中获取;然后将对应合同的分隔的合同段落数据和组装好的数据拿去循环请求gpt接口,将识别结果一次落入对应的数据表;循环的请求完成后,会将识别的数据表中的数据按照合同分类依次进行数据的重新整理和组装,最后将数据落入到导出结果表中,以供数据直接导出!

        第四步:导出结果

        从解析完成的列表中选择进行导出,直接导出excel识别的结果

4 实现效果

5 总结

        整体识别准确率可以高达80%,由于合同数量比较大;业务方无法准确给出每个合同需要找得关键字段;只能根据合同的类型分类给出;这样就导致了有些字段在合同信息中根本没有提到;或者说给出的字段和合同中描述的有所区别;这样就导致了这些字段识别会不准确;还有一种情况就是,合同中干扰信息的影响导致同一个字段信息的提取出多种不同的结果;以上这种不误差,都需要人工再来一次快速的筛选。虽然不能做到100%识别准确;但是也极大程度减少了人工成本

比如:

        分包类型/维保价格/计算频次 受干扰信息影响,识别出了多个结果,需要人工对照原文进行选择;

        合同中识别不到的信息,结果是空的;(原文中没有项目地址,但需要识别);

        同一个关键字段的提取,干扰信息导致识别错误;

        (对于合同中没有的信息不应该成为识别字段)这样可以提高识别准确率;用户只需要选择多个是识别结果中准确的一个就可以了 ,如果业务做不到那就只能人工再来快速审查最终的结果;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/129445.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Netty深入浅出(无处不在的IO)

为什么要有Netty Netty是为了解决网络编程的复杂性和提供易于使用、高性能和可扩展的框架而开发的。它通过提供一组可重用的组件来处理网络通信的低级细节,例如套接字管理、线程和缓冲,简化了开发网络应用程序的过程。这使开发人员可以专注于应用程序逻…

Dubbo 环境隔离

通过标签实现流量隔离环境(灰度、多套开发环境等) 无论是在日常开发测试环境,还是在预发生产环境,我们经常都会遇到流量隔离环境的需求。 在日常开发中,为了避免开发测试过程中互相干扰,我们有搭建多套独…

Flink---11、状态管理(按键分区状态(值状态、列表状态、Map状态、归约状态、聚合状态)算子状态(列表状态、广播状态))

星光下的赶路人star的个人主页 这世上唯一扛得住岁月摧残的就是才华 文章目录 1、状态管理1.1 Flink中的状态1.1.1 概述1.1.2 状态的分类 1.2 按键分区状态(Keyed State)1.2.1 值状态(ValueState)1.2.2 列表状态(ListS…

在Remix中编写你的第一份智能合约

智能合约简单来讲就是:部署在去中心化区块链上的一个合约或者一组指令,当这个合约或者这组指令被部署以后,它就不能被改变了,并会自动执行,每个人都可以看到合约里面的条款。更深层次的理解就是:这些代码会…

王道考研计算机组成原理——计算机硬件的基础知识

计算机组成原理的基本概念 计算机硬件的针脚都是用来传递信息,传递数据用的: 服务程序包含一些调试程序: 计算机硬件的基本组成 控制器通过电信号来协调其他部件的工作,同时负责解析存储器里存放的程序指令,然后指挥…

vue3 组件v-model绑定props里的值,修改组件的值要触发回调

很早之前就写了&#xff0c;一直没写篇博客记录下 <select v-model"typeVal" />const emit defineEmits([update:type]); const props defineProps({type: { type: String, default: }, });const typeVal computed({get() {return props.type;},set(value…

Vue-1.8生命周期

Vue生命周期 一个Vue实例从创建到销毁的整个过程。 生命周期&#xff1a; 1&#xff09;创建&#xff1a;响应式数据 ->发送初始化渲染请求 2&#xff09;挂载&#xff1a;渲染数据->操作dom 3&#xff09;更新&#xff1a;数据修改&#xff0c;更新视图 4&#xf…

基于SpringBoot的桂林旅游景点导游平台

目录 前言 一、技术栈 二、系统功能介绍 用户信息管理 景点类型管理 景点信息管理 线路推荐管理 用户注册 线路推荐 论坛交流 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前言 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实…

一篇短小精悍的文章让你彻底明白KMP算法中next数组的原理

以后保持每日一更&#xff0c;由于兴趣较多&#xff0c;更新内容不限于数据结构&#xff0c;计算机组成原理&#xff0c;数论&#xff0c;拓扑学......&#xff0c;所谓&#xff1a;深度围绕职业发展&#xff0c;广度围绕兴趣爱好。往下看今日内容 一.什么是KMP算法 KMP&#x…

SpringCloudGateway网关整合swagger3+Knife4j3,basePath丢失请求404问题

在集成 Spring Cloud Gateway 网关的时候&#xff0c;会出现没有 basePath 的情况&#xff0c;例如定义的 /jeeplus-auth、/jeeplus-system 等微服务前缀导致访问接口404&#xff1a; maven依赖&#xff1a; swagger2于17年停止维护&#xff0c;现在最新的版本为 Swagger3&am…

学习开发一个RISC-V上的操作系统(汪辰老师) — unrecognized opcode `csrr t0,mhartid‘报错问题

前言 &#xff08;1&#xff09;此系列文章是跟着汪辰老师的RISC-V课程所记录的学习笔记。 &#xff08;2&#xff09;该课程相关代码gitee链接&#xff1b; &#xff08;3&#xff09;PLCT实验室实习生长期招聘&#xff1a;招聘信息链接 正文 &#xff08;1&#xff09;在跟着…

ntlm哈希传递

哈希传递就是ntlm哈希 概念 早期SMB协议铭⽂在⽹络上传输数据&#xff0c;后来诞⽣了LM验证机制&#xff0c;LM机制由于过于简 单&#xff0c;微软提出了WindowsNT挑战/响应机制&#xff0c;这就是NTLM LM NTLM 哈希传递攻击是针对相同密码的用户认证直接发起攻击&#xff0c…