一种基于多线程协同文件批量命名的方法转让专利

申请号 : CN202110729518.9

文献号 : CN113392075B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 朱咸超卢道王文斌蔡梦洁郭琪李征

申请人 : 深圳市蓬莱产业科技有限公司

摘要 :

本发明涉及文件处理技术领域,具体为一种基于多线程协同文件批量命名的方法,包括步骤S1:依据各类型材料的特点,提取相应的关键字,作为初始的关键字库,并保存在相应的文件标签属性库;其中每条关键字记录对应有:关键字名称,关键字长度,关键字所属文件类型;步骤S2:依据客户机实际的硬件配置,设定线程数,通过多线程的技术手段,最大化的利用计算机资源,进行关键词标签属性匹配。

权利要求 :

1.一种基于多线程协同文件批量命名的方法,其特征在于:该方法包括;

步骤S1:依据各类型材料的特点,提取相应的关键字,作为初始的关键字库,并保存在相应的文件标签属性库;

其中每条关键字记录对应有:关键字名称,关键字长度,关键字所属文件类型;

步骤S2:依据客户机实际的硬件配置,设定线程数,通过多线程的技术手段,最大化的利用计算机资源,进行关键词标签属性匹配;

步骤S3:通过百度OCR接口返回的识别结果,解析整理后,保存并提交到匹配队列中;

步骤S4:从步骤S3中的匹配队列中,获取关键字总数,然后依据可用线程数量,分批匹配关键字,每批次关键字数量为:关键字总数/线程数量;

步骤S5:将步骤S4分配给线程的文字内容跟步骤S1中的关键字库进行匹配,每批次关键字匹配次数为:关键字总数*每批次关键字数量,且通过多线程的技术手段,提高匹配效率,最后再汇总处理;

步骤S6:在步骤S5匹配过程中按照100%匹配规则先匹配一次,全部关键字匹配成功则直接标记匹配成功,未全部匹配成功则记录匹配成功的关键字,并返回匹配结果;

步骤S7:依据步骤S6的匹配结果中未匹配成功的信息,按照特定策略规则进行匹配,如果仍没有匹配成功的,则终止匹配;

步骤S8:完成步骤S7,根据匹配成功关键字所属文件类型,自动命名为标签属性对应的文件名称,并移动文件到所属的文件夹中。

2.根据权利要求1所述的一种基于多线程协同文件批量命名的方法,其特征在于:在所述步骤S6中,核查未全部匹配成功的,但其中有记录匹配成功的关键字,确认与当前文件是否存在关联性,则制定新的匹配规则与策略。

3.根据权利要求1所述的一种基于多线程协同文件批量命名的方法,其特征在于:在所述步骤S2中设定线程数时,通过ThreadPoolExecutor的构造函数自己创建线程池,以及在创建时对核心线程数量、最大线程数、线程池中超过corePoolSize数目的空闲线程最大存活时间进行设定。

4.根据权利要求3所述的一种基于多线程协同文件批量命名的方法,其特征在于:所述核心线程数量按每个任务需要tasktime秒处理,则每个线程每秒可处理1/tasktime个任务,系统每秒有tasks个任务需要处理,则需要的线程数为:tasks/(1/tasktime),即tasks*tasktime个线程数。

5.根据权利要求4所述的一种基于多线程协同文件批量命名的方法,其特征在于:所述最大线程数,当系统负载达到最大值时,核心线程数已无法按时处理完所有任务,这时就需要增加线程。

6.根据权利要求5所述的一种基于多线程协同文件批量命名的方法,其特征在于:所述线程池中超过corePoolSize数目的空闲线程最大存活时间,线程数量增加或是减少;

具体的,当负载降低时,可减少线程数量,如果一个线程空闲时间达到keepAliveTime,该线程就退出;默认情况下线程池最少会保持corePoolSize个线程。

7.根据权利要求1所述的一种基于多线程协同文件批量命名的方法,其特征在于:在所述步骤S3中OCR识别后,系统根据OCR结果所反馈编号,平均将结果拆分成N段,每段分配给系统的N个线程进行多线程同时进行匹配;

其中N=客户机最大支持线程数。

说明书 :

一种基于多线程协同文件批量命名的方法

技术领域

[0001] 本发明涉及文件处理技术领域,具体为一种基于多线程协同文件批量命名的方法。

背景技术

[0002] 在对银行业不良资产进行司法处置过程时,大量的纸质材料扫描后需要人工依据扫描的材料进行识别与分类后重新命名便于提交至法院系统,识别与分类耗费大量处置人
员时间且纯人工效率极低。加之百度目前提供的文件识别仅能识别身份证材料,对于银行
信用卡卷宗材料中的申请表、领用合约、章程这些材料图片都无法识别出来。针对于材料审
查与命名环节耗费大量人力成本情况下,我们提供了基于申请表、领用合约、章程材料类型
的智能分段多线程识别方法。

发明内容

[0003] 本发明的目的在于提供一种基于多线程协同文件批量命名的方法,以解决银行业不良资产进行司法处置过程时,大量的纸质材料扫描后文件命名、识别与分类的问题。
[0004] 为实现上述目的,本发明广泛应用于文件命名、识别、分类的技术方案,特别是提供如下技术方案:一种基于多线程协同文件批量命名的方法,该方法包括;
[0005] 步骤S1:依据各类型材料的特点,提取相应的关键字,作为初始的关键字库,并保存在相应的文件标签属性库;
[0006] 其中每条关键字记录对应有:关键字名称,关键字长度,关键字所属文件类型;
[0007] 步骤S2:依据客户机实际的硬件配置,设定线程数,通过多线程的技术手段,最大化的利用计算机资源,进行关键词标签属性匹配;
[0008] 步骤S3:通过百度OCR接口返回的识别结果,解析整理后,保存并提交到匹配队列中;
[0009] 其中:百度OCR识别接口,返回的是一个JSON格式的数据包,Fastjson是阿里巴巴开源的一套JSON处理工具,通过FastJson,将结果解析成一个HashMap对象,通过HashMap对
象,可以得到具体的识别内容,提取所有的识别内容后,保存进匹配队列中;
[0010] 匹配队列是一个List构成的数据集合,通过有序的形式,保存着所有需要匹配的内容;
[0011] 每次匹配完成后,匹配队列便要将匹配完成的数据销毁;根据最后的匹配数量以及关键字的类型,便可认定文件类型;
[0012] 步骤S4:从步骤S3中的匹配队列中,获取关键字总数,然后依据可用线程数量,分批匹配关键字,每批次关键字数量为:关键字总数/线程数量;
[0013] 步骤S5:将步骤S4分配给线程的文字内容跟步骤S1中的关键字库进行匹配,每批次匹配次数为:关键字总数*每批次关键字数量,且通过多线程的技术手段,提高匹配效率,
最后再汇总处理;
[0014] 步骤S6:在步骤S5匹配过程中按照100%匹配规则先匹配一次,全部关键字匹配成功则直接标记匹配成功,未全部匹配成功则记录匹配成功的关键字,并返回匹配结果;
[0015] 步骤S7:依据步骤S6的匹配结果中未匹配成功的信息,按照特定策略规则进行匹配,如果仍仍没有匹配成功的,则终止匹配;
[0016] 步骤S8:完成步骤S7,根据匹配成功关键字所属文件类型,自动命名为标签属性对应的文件名称,并移动文件到所属的文件夹中。
[0017] 优选的,在所述步骤S6中,核查未全部匹配成功的,但其中有记录匹配成功的关键字,确认与当前文件是否存在关联性,则制定新的匹配规则与策略。
[0018] 优选的,在所述步骤S2中设定线程数时,通过ThreadPoolExecutor的构造函数自己创建线程池,以及在创建时对核心线程数量、最大线程数、线程池中超过corePoolSize数
目的空闲线程最大存活时间进行设定。
[0019] 优选的,所述核心线程数量按每个任务需要tasktime秒处理,则每个线程每秒可处理1/tasktime个任务,系统每秒有tasks个任务需要处理,则需要的线程数为:tasks/(1/
tasktime),即tasks*tasktime个线程数。
[0020] 优选的,所述最大线程数,当系统负载达到最大值时,核心线程数已无法按时处理完所有任务,这时就需要增加线程。
[0021] 优选的,所述线程池中超过corePoolSize数目的空闲线程最大存活时间,线程数量增加或是减少;
[0022] 具体的,当负载降低时,可减少线程数量,如果一个线程空闲时间达到keepAliveTiime,该线程就退出;默认情况下线程池最少会保持corePoolSize个线程。
[0023] 优选的,在所述步骤S3中OCR识别后,系统根据OCR结果所反馈编号,平均将结果拆分成N段,每段分配给系统的N个线程进行多线程同时进行匹配;
[0024] 其中N=客户机最大支持线程数。
[0025] 与现有技术相比,本发明的有益效果是:
[0026] 本发明通过OCR识别、智能分段多线程批量命名的方法,可以使不同的申请表,如各银行不同格式的信用卡申请表,内容差异大的、版本多的领用合约,都可以进行单张图片
识别和命名,并对此所采用的时间仅只为较前时间的1/N,另外系统资源较未使用之前有效
率利用率提升90%,另外通过建立关键字库、文件标签属性库对不同文件的属性进行匹配,
提高了匹配的成功率,同时也降低了文件命名的错误率,另外在关键字未全部匹配成功时,
通过人工进行干预,可及时的改匹配规则与策略,从而提高了匹配的灵活性。

附图说明

[0027] 图1为本发明的方法步骤流程图;
[0028] 图2为本发明的文件标签属性库图。

具体实施方式

[0029] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于
本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他
实施例,都属于本发明保护的范围。
[0030] 请参阅图1、图2,本发明提供的一种实施例:
[0031] 一种基于多线程协同文件批量命名的方法,该方法包括;
[0032] 步骤S1:依据各类型材料的特点,提取相应的关键字,作为初始的关键字库,并保存在相应的文件标签属性库;
[0033] 其中每条关键字记录对应有:关键字名称,关键字长度,关键字所属文件类型;
[0034] 步骤S2:依据客户机实际的硬件配置,设定线程数,通过多线程的技术手段,最大化的利用计算机资源,进行关键词标签属性匹配;
[0035] 步骤S3:通过百度OCR接口返回的识别结果,解析整理后,保存并提交到匹配队列中;
[0036] 其中:百度OCR识别接口,返回的是一个JSON格式的数据包,Fastjson是阿里巴巴开源的一套JSON处理工具,通过FastJson,将结果解析成一个HashMap对象,通过HashMap对
象,可以得到具体的识别内容,提取所有的识别内容后,保存进匹配队列中。
[0037] 匹配队列是一个List构成的数据集合,通过有序的形式,保存着所有需要匹配的内容;
[0038] 每次匹配完成后,匹配队列便要将匹配完成的数据销毁。根据最后的匹配数量以及关键字的类型,便可认定文件类型;
[0039] 步骤S4:从步骤S3中的匹配队列中,提取关键字列表,然后依据可用线程数量,分批匹配关键字,每批次关键字数量为:关键字总数/线程数量;
[0040] 步骤S5:将步骤S4分配给线程的文字内容跟步骤S1中的关键字库进行匹配,每个批次匹配次数为:关键字总数*每批次关键字数量,且通过多线程的技术手段,提高匹配效
率,最后再汇总处理;
[0041] 步骤S6:在步骤S5匹配过程中按照100%匹配规则先匹配一次,全部关键字匹配成功则直接标记匹配成功,未全部匹配成功则记录匹配成功的关键字,并返回匹配结果;
[0042] 步骤S7:依据步骤S6的匹配结果中未匹配成功的信息,按照特定策略规则进行匹配,如果仍没有匹配成功的,则终止匹配;
[0043] 步骤S8:完成步骤S7,根据匹配成功关键字所属文件类型,自动命名为标签属性对应的文件名称,并移动文件到所属的文件夹中。
[0044] 在所述步骤S6中,核查未全部匹配成功的,但其中有记录匹配成功的关键字,确认与当前文件是否存在关联性,则制定新的匹配规则与策略。
[0045] 在所述步骤S2中设定线程数时,通过ThreadPoolExecutor的构造函数自己创建线程池,以及在创建时对核心线程数量、最大线程数、线程池中超过corePoolSize数目的空闲
线程最大存活时间进行设定;
[0046] 其中在自己创建线程池的同时,给核心线程数量、最大线程数、线程池中超过corePoolSize数目的空闲线程最大存活时间进行指定具体的参数;
[0047] 说明如下:
[0048] 目前家用机常见的酷睿i3 10代系列处理器为例,它采用4核心8线程,主频3.7GHz,在我们的参数配置下,可调节的线程数量最大值为8,最小值为1;可调节的频率最
低值为1GHz,最高位3.7GHz;此配置是为了使资源利用率更大化。
[0049] 所述核心线程数量按每个任务需要tasktime秒处理,则每个线程每秒可处理1/tasktime个任务,系统每秒有tasks个任务需要处理,则需要的线程数为:tasks/(1/
tasktime),即tasks*tasktime个线程数;
[0050] 其中假设系统每秒任务数为100~1000,每个任务耗时0.1秒,则需要100*0.1至1000*0.1,即10~100个线程;
[0051] 那么corePoolSize应该设置为大于10,具体数字最好根据8020原则,即80%情况下系统每秒任务数,若系统80%的情况下每秒任务数小于200,最多时为1000,则
corePoolSize可设置为20。
[0052] 所述最大线程数,当系统负载达到最大值时,核心线程数已无法按时处理完所有任务,这时就需要增加线程;
[0053] 其中每秒200个任务需要20个线程,那么当每秒达到1000个任务时,则需要(1000‑queueCapacity)*(20/200),即60个线程,可将maxPoolSize设置为60。
[0054] 所述线程池中超过corePoolSize数目的空闲线程最大存活时间,线程数量增加或是减少;
[0055] 具体的,当负载降低时,可减少线程数量,如果一个线程空闲时间达到keepAliveTiime,该线程就退出;默认情况下线程池最少会保持corePoolSize个线程,再通
过继承Thread类,在run方法中,按照标签库精准匹配规则后即可。
[0056] 在所述步骤S3中OCR识别后,系统根据OCR结果所反馈编号,平均将结果拆分成N段,每段分配给系统的N个线程进行多线程同时进行匹配;
[0057] 其中N=客户机最大支持线程数。
[0058] 在所述步骤S1中所述文件标签属性库包括文件名、匹配类型、匹配策略、文件名关联特征标签;
[0059] 其中文件名包括申请表、领用合约;
[0060] 匹配类型包括精准匹配、特定策略匹配,其中精准匹配:既完全匹配特征标签字样、字数,顺序;特定策略:既依据条件限制的内容规则进行匹配
[0061] 匹配策略包括100%、连续行交替出现次数≥2次;
[0062] 文件名关联特征标签包括XX银行信用卡、推荐人信用卡号、银行专属栏位、信用卡章程、附属卡申请人、申请人卡种/片、账单邮寄地址、主卡申领人签名、领卡方式、订立本合
约、本合约涉及到的具体收费项目和标准见《收费标准》、贷卡领字()第号、甲方+乙方、发
卡行(下称“甲方”)申请人(下称“乙方”)
[0063] 实施例
[0064] 本发明通过OCR识别、智能分段多线程批量命名的方法,可以使不同的申请表,如各银行不同格式的信用卡申请表,内容差异大的、版本多的领用合约,都可以进行单张图片
识别和命名,并对此所采用的时间仅只为较前时间的1/N,另外系统资源较未使用之前有效
率利用率提升90%,另外通过建立关键字库、文件标签属性库对不同文件的属性进行匹配,
提高了匹配的成功率,同时也降低了文件命名的错误率,另外在关键字未全部匹配成功时,
通过人工进行干预,可及时的改匹配规则与策略,从而提高了匹配的灵活性。
[0065] 对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论
从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权
利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有
变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。