1 业务需求
目前公司有几千份合同,而且还会不断的增长;现在需要将合同中的关键信息提取出来给业务使用,业务现在需要将这些关键字段信息录入存档到档案系统;人工去阅读整个合同去提取这些信息,是很浪费人力的;因此,现在需要将合同给AI去识别提取指定字段信息,按照格式输出excel给业务人员进行简单的审核,然后直接导入档案系统即可;这样极大的减少了人工的浪费;合同文本和每类合同的需要提取的关键字段由业务方提供(合同文本为pdf图片格式的扫描件)
2 需求分析
由于合同文本信息的格式为扫描件图片格式,那么第一步是需要将图片格式的pdf转换成文本格式pdf 这样程序才能解析;这一步操作只需要用现成的转换工具提前先转换好;在转换时,我发现扫描件中不够清晰的图片,或者有人工书写的文字在转换成文本文字时出现错别字;这些就会导致ai提取原文出现错误;这种情况只能是人工来处理了;所有的操作都是基于文件进行的;所以需要列举出文件列表,包括其中的状态信息;
3 方案设计
第一步: 在上述处理完成文档转换后,(上传前需要选择合同类型)用户需要将文档上传oss云存储上,上传成功之后,使用程序按照段落分隔文档将文档数据落库;(为什么要这么做?因为调用gpt接口有token 数限制,其次也是为了提高响应速度)可批量操作;上传成功之后展示文件列表信息;
第二步:将需要识别的合同关键字段导入到数据表中;(通过excel表格形式导入)
第三步:触发ai识别
分割完成后,选择需要触发识别的文档;可批量操作文档;触发ai识别按钮,这时会获取分隔好的数据获取到;然后组装PROMPT,组装的信息需要按照不同类型的合同从第二步中的数据表中获取;然后将对应合同的分隔的合同段落数据和组装好的数据拿去循环请求gpt接口,将识别结果一次落入对应的数据表;循环的请求完成后,会将识别的数据表中的数据按照合同分类依次进行数据的重新整理和组装,最后将数据落入到导出结果表中,以供数据直接导出!
第四步:导出结果
从解析完成的列表中选择进行导出,直接导出excel识别的结果
4 实现效果
5 总结
整体识别准确率可以高达80%,由于合同数量比较大;业务方无法准确给出每个合同需要找得关键字段;只能根据合同的类型分类给出;这样就导致了有些字段在合同信息中根本没有提到;或者说给出的字段和合同中描述的有所区别;这样就导致了这些字段识别会不准确;还有一种情况就是,合同中干扰信息的影响导致同一个字段信息的提取出多种不同的结果;以上这种不误差,都需要人工再来一次快速的筛选。虽然不能做到100%识别准确;但是也极大程度减少了人工成本
比如:
分包类型/维保价格/计算频次 受干扰信息影响,识别出了多个结果,需要人工对照原文进行选择;
合同中识别不到的信息,结果是空的;(原文中没有项目地址,但需要识别);
同一个关键字段的提取,干扰信息导致识别错误;
(对于合同中没有的信息不应该成为识别字段)这样可以提高识别准确率;用户只需要选择多个是识别结果中准确的一个就可以了 ,如果业务做不到那就只能人工再来快速审查最终的结果;