一种数据处理的方法和装置
技术领域
本申请涉及互联网技术领域,尤其涉及一种数据处理的方法和装置。
背景技术
为了从数据文件中解析出业务数据,如从邮件(数据文件)中解析出账单数据(业务数据),目前的实现方式是:假设数据文件是文本格式,则设置文本格式模板,可以使用该文本格式模板从数据文件中解析出文本格式的业务数据。当数据文件的格式比较单一时,上述方式可以解析出业务数据。
但是,随着数据文件的格式越来越多,当数据文件不是文本格式时,如数据文件为图片格式,则文本格式模板将无法从数据文件中解析出业务数据。
为了从数据文件中解析出业务数据,需要将文本格式模板删除,并重新设置图片格式模板。一旦数据文件的格式反复变化,则需要不断设置新模板,增加工作量,灵活性差,可靠性差,服务质量差,且影响用户使用体验。
发明内容
本申请提供一种数据处理的方法和装置,以在从数据文件中解析出业务数据的过程中,提高服务质量,并提高用户使用体验。技术方案如下:
本申请提供一种数据处理的方法,所述方法包括以下步骤:
获取数据文件;
判断当前是否存在成功从所述数据文件分析出指标数据的第一解析器;
如果是,则利用所述第一解析器与其它解析器之间的关联程度,选择当前未分析过所述数据文件的第二解析器;
通过所述第二解析器对所述数据文件进行分析;
如果分析出指标数据,则将所述指标数据存储到本地存储介质中。
所述利用所述第一解析器与其它解析器之间的关联程度,选择当前未分析过所述数据文件的第二解析器的过程,具体包括:
通过所述第一解析器查询关联矩阵,得到所述第一解析器与其它解析器之间的关联程度;从当前未分析过所述数据文件的其它解析器中,选择一个与所述第一解析器关联程度最高的其它解析器作为第二解析器;
其中,所述关联矩阵内包含任意两个解析器之间的关联程度;
所述关联程度是指:当一个解析器成功从数据文件分析出指标数据时,另一个解析器能够成功从该数据文件分析出指标数据的概率。
在通过所述第二解析器对所述数据文件进行分析之后,所述方法还包括:
如果分析出指标数据或者未分析出指标数据,均重新计算所述第一解析器成功从数据文件分析出指标数据时,所述第二解析器能够成功从数据文件分析出指标数据的概率,并利用所述概率更新所述关联矩阵内记录的所述第一解析器与所述第二解析器之间的关联程度。
在将所述指标数据存储到本地存储介质中之后,所述方法还包括:
如果已经满足指标数据聚合条件,则从本地存储介质中提取业务类型所需要的指标数据,并对提取出的指标数据进行聚合,得到聚合后的业务数据。
所述方法还包括:选取N个解析器,其中,所述N大于等于2;
通过所述N个解析器并行对所述数据文件进行分析。
解析器用于使用特定策略从数据文件分析出指标数据;
所述特定策略包括以下一种或者多种:普通文本策略、结构化文本策略、光学字符识别策略、语音识别策略、图片识别策略、视频识别策略;
所述数据文件具体为:图片文件、或者视频文件、或者音频文件、或者普通文本文件、或者结构化文本文件、或者光学字符文件。
本申请提供一种数据处理的装置,所述装置具体包括:
获取模块,用于获取数据文件;
判断模块,用于判断当前是否存在成功从所述数据文件分析出指标数据的第一解析器;
选择模块,用于当判断结果为是时,则利用所述第一解析器与其它解析器之间的关联程度,选择当前未分析过所述数据文件的第二解析器;
分析模块,用于通过所述第二解析器对所述数据文件进行分析;
存储模块,用于当分析出指标数据时,将指标数据存储到本地存储介质。
所述选择模块,具体用于在利用所述第一解析器与其它解析器之间的关联程度,选择当前未分析过所述数据文件的第二解析器的过程中,通过所述第一解析器查询关联矩阵,得到所述第一解析器与其它解析器之间的关联程度;从当前未分析过所述数据文件的其它解析器中,选择一个与所述第一解析器关联程度最高的其它解析器作为第二解析器;
其中,所述关联矩阵内包含任意两个解析器之间的关联程度;
所述关联程度是指:当一个解析器成功从数据文件分析出指标数据时,另一个解析器能够成功从该数据文件分析出指标数据的概率。
所述选择模块,还用于在所述分析模块通过所述第二解析器对所述数据文件进行分析之后,如果分析出指标数据或者未分析出指标数据,均重新计算所述第一解析器成功从数据文件分析出指标数据时,所述第二解析器能够成功从数据文件分析出指标数据的概率,并利用所述概率更新所述关联矩阵内记录的所述第一解析器与所述第二解析器之间的关联程度。
还包括:聚合模块,用于在所述存储模块将指标数据存储到本地存储介质后,如果已经满足指标数据聚合条件,从本地存储介质中提取业务类型所需要的指标数据,并对提取出的指标数据进行聚合,得到聚合后的业务数据。
所述选择模块,还用于选取N个解析器,其中,所述N大于等于2;
所述分析模块,还用于通过N个解析器并行对所述数据文件进行分析。
解析器用于使用特定策略从数据文件分析出指标数据;
所述特定策略包括以下一种或者多种:普通文本策略、结构化文本策略、光学字符识别策略、语音识别策略、图片识别策略、视频识别策略;
所述数据文件具体为:图片文件、或者视频文件、或者音频文件、或者普通文本文件、或者结构化文本文件、或者光学字符文件。
基于上述技术方案,本申请实施例中,在从数据文件中解析出业务数据的过程中,可以通过解析器对数据文件进行分析,得到指标数据,并对指标数据进行聚合,得到聚合后的业务数据。当数据文件的格式反复变化时,可以使用不同的解析器对数据文件进行分析,得到聚合后的业务数据,从而提升解析的灵活性和可靠性,达到提升服务质量、改善用户体验的目的。而且,利用第一解析器与其它解析器之间的关联程度选择第二解析器,当第一解析器成功从数据文件分析出指标数据时,第二解析器成功从数据文件分析出指标数据的概率很大,这样,可以只使用少数几个解析器,就从数据文件中提取出业务数据所需要的指标数据。而且,通过不断学习各解析器之间的关联程度,各解析器之间的关联程度越来越准确,从而保证解析的准确度和效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1是本申请一种实施方式中的数据处理的方法的流程图;
图2是本申请一种实施方式中的数据处理的系统的结构图;
图3是本申请另一种实施方式中的数据处理的方法的流程图;
图4是本申请一种实施方式中的解析服务器的硬件结构图;
图5是本申请一种实施方式中的数据处理的装置的结构图。
具体实施方式
在本申请使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
目前,为了对用户提供更加人性化的服务,解析服务器可以从用户的数据文件中解析出业务数据,并将业务数据提供给业务服务器,由业务服务器利用该业务数据完成对用户的业务处理。例如,解析服务器可以从邮件(数据文件)中解析出账单数据(业务数据),该邮件可以是银行向用户发送的信用卡还款邮件、商户向用户发送的还款邮件等,该账单数据可以包括账单标识、持卡人、卡号、账期、本期账单余额、到期还款日等数据。在解析出账单数据之后,解析服务器可以将账单数据提供给支付服务器,如果用户签约了代扣,支付服务器可以按照该账单数据完成账单支付,如果用户没有签约代扣,支付服务器可以将账单数据提供给用户,由用户在支付服务器的引导下,完成账单支付。上述方式不需要用户从大量邮件中去找与账单数据有关的邮件,即可以由解析服务器和支付服务器完成账单支付,满足用户需求。
为了从数据文件解析出业务数据,如果数据文件格式很多,现有方式存在增加工作量,灵活性差,可靠性差,服务质量差,影响用户体验等问题。
针对上述问题,本申请实施例中提出一种数据处理的方法,该方法可以应用在解析服务器上。其中,该解析服务器可以为一个独立的服务器,也可以作为一个功能模块,部署在目前的业务服务器上,如部署在支付服务器上。
在上述应用场景下,如图1所示,该数据处理的方法可以包括以下步骤:
步骤101,获取数据文件。其中,该数据文件具体可以包括但不限于:图片文件、或者视频文件、或者音频文件、或者普通文本文件(如.txt格式的文本文件)、或者结构化文本文件、或者光学字符文件。
以数据文件为信用卡还款邮件为例进行说明,则该信用卡还款邮件的内容可以是图片格式的文件、视频格式的文件、音频格式的文件、普通文本格式的文件、结构化文本格式的文件、光学字符格式的文件等。
在一种可行的实施方式中,可以由用户将数据文件提供给解析服务器,也可以由解析服务器主动获取数据文件,对于数据文件的获取方式不再赘述。
步骤102,判断当前是否存在成功从数据文件分析出指标数据的第一解析器。如果是,则执行步骤103;如果否,则从当前未分析过该数据文件的解析器中选择第二解析器,如从多个解析器中随机选择第二解析器。
其中,解析器是指一种程序模块,用于使用特定策略从数据文件中分析出特定的指标数据,若解析器使用特定策略可以从数据文件中找到指标数据,则返回结果是指标数据,若无法找到指标数据,则返回结果是空。该特定策略可以包括但不限于以下一种或者多种:普通文本策略、结构化文本策略、光学字符识别策略、语音识别策略、图片识别策略、视频识别策略等。
例如,针对信用卡还款邮件,由于账单数据可以包括账单标识、持卡人、卡号、账期、本期账单余额、到期还款日等数据,因此,可以配置解析器1、解析器2、解析器3、解析器4、解析器5、解析器6、解析器7…等。解析器1用于使用普通文本策略从数据文件中解析账单标识,其返回结果可能是账单标识:12345或者空。解析器2用于使用结构化文本策略从数据文件中解析账单标识,其返回结果可能是账单标识:12345或者空。解析器3用于使用光学字符识别策略从数据文件中解析账单标识,其返回结果可能是账单标识:12345或者空。解析器4用于使用语音识别策略从数据文件中解析账单标识,其返回结果可能是账单标识:12345或者空。解析器5用于使用图片识别策略从数据文件中解析账单标识,其返回结果可能是账单标识:12345或者空。解析器6用于使用视频识别策略从数据文件中解析账单标识,其返回结果可能是账单标识:12345或者空。解析器7用于使用普通文本策略从数据文件中解析持卡人,其返回结果可能是持卡人:张三或者空。以此类推。
基于普通文本策略,如果信用卡还款邮件的内容是普通文本格式的文件,则解析器1可以从数据文件中找到账单标识,否则,解析器1无法从数据文件中找到账单标识。基于结构化文本策略,如果信用卡还款邮件的内容是结构化文本格式的文件,则解析器2可以从数据文件中找到账单标识,否则,解析器2无法从数据文件中找到账单标识。以此类推,其它解析器与此类似。
步骤103,利用成功从数据文件分析出指标数据的第一解析器与其它解析器之间的关联程度,选择当前未分析过数据文件的第二解析器。
步骤104,通过第二解析器对数据文件进行分析。
步骤105,如果分析出指标数据,则将指标数据存储到本地存储介质中。
例如,假设当前还没有使用解析器对数据文件进行分析,则步骤102的判断结果为否,从所有解析器中随机选择一个解析器1,并使用解析器1对数据文件进行分析。如果没有分析出指标数据,则解析器1是分析过该数据文件的解析器,且当前不存在成功从数据文件分析出指标数据的第一解析器,再次执行步骤102时,判断结果为否,从解析器1之外的其它所有解析器中随机选择一个解析器2,并使用解析器2对数据文件进行分析。如果分析出指标数据,则解析器2是分析过该数据文件的解析器,且当前存在成功从数据文件分析出指标数据的第一解析器,再次执行步骤102时,判断结果为是,利用解析器2与其它解析器之间的关联程度,从解析器1、解析器2之外的其它所有解析器中选择一个解析器5,并使用解析器5对数据文件进行分析。以此类推,直到满足指标数据聚合条件,则结束对数据文件进行分析的过程。
其中,在选择第二解析器之后,可以通过第二解析器对数据文件进行分析,分析过程已在上面描述,在此不再赘述。分析结果为没有分析出指标数据(如返回结果为空)或者分析出指标数据(如返回结果为账单标识:12345)。
本申请实施例中,利用第一解析器与其它解析器之间的关联程度,选择当前未分析过数据文件的第二解析器的过程,具体可以包括但不限于如下方式:通过第一解析器查询关联矩阵,得到该第一解析器与其它解析器之间的关联程度;之后,从当前未分析过数据文件的其它解析器中,选择一个与该第一解析器关联程度最高的其它解析器作为第二解析器。
本申请实施例中,关联矩阵内可以包含任意两个解析器之间的关联程度,该关联程度是指:当一个解析器成功从数据文件分析出指标数据时,另一个解析器也能够成功从该数据文件分析出指标数据的概率。
为了维护关联矩阵,针对每个数据文件,在使用多个解析器对数据文件进行分析之后,还可以利用分析结果重新计算任意两个解析器之间的关联程度,并使用任意两个解析器之间的关联程度更新关联矩阵,即关联矩阵中的内容是不断学习的,而且,通过不断学习各解析器之间的关联程度,使得各解析器之间的关联程度越来越准确,从而可以保证解析的准确度和效率。基于此,在通过第二解析器对数据文件进行分析之后,如果分析出指标数据或者未分析出指标数据,均重新计算第一解析器成功从数据文件分析出指标数据时,第二解析器能够成功从数据文件分析出指标数据的概率,并利用该概率更新关联矩阵内记录的第一解析器与第二解析器之间的关联程度。
以下结合具体的应用场景,对关联矩阵的更新过程进行详细说明。
如表1所示,为一种关联矩阵的示例。90%表示解析器1成功从数据文件分析出指标数据时,解析器2成功从数据文件分析出指标数据的概率。89%表示解析器1成功从数据文件分析出指标数据时,解析器3成功从数据文件分析出指标数据的概率。86%表示解析器2成功从数据文件分析出指标数据时,解析器1成功从数据文件分析出指标数据的概率。以此类推。
表1
|
解析器1 |
解析器2 |
解析器3 |
解析器4 |
解析器5 |
解析器1 |
|
90% |
89% |
88% |
87% |
解析器2 |
86% |
|
85% |
84% |
83% |
解析器3 |
82% |
81% |
|
80% |
79% |
解析器4 |
78% |
77% |
76% |
|
75% |
解析器5 |
74% |
73% |
72% |
71% |
|
假设在此次分析过程中,对数据文件进行分析的解析器为解析器1、解析器2、解析器3,解析器1成功从数据文件分析出指标数据,解析器2成功从数据文件分析出指标数据,解析器3未成功从数据文件分析出指标数据。则需要重新计算解析器1成功从数据文件分析出指标数据时,解析器2成功从数据文件分析出指标数据的概率,会大于表1中的90%,假设之前解析器1一共有10次成功从数据文件分析出指标数据,在这10次中,解析器2一共有9次成功从数据文件分析出指标数据,则关联程度为90%,在此次之后,将表1中的关联程度由90%修改为91%(10/11)。同理,需要重新计算解析器1成功从数据文件分析出指标数据时,解析器3成功从数据文件分析出指标数据的概率,会小于表1中的89%,并使用重新计算的概率更新表1中的关联程度。需要重新计算解析器2成功从数据文件分析出指标数据时,解析器1成功从数据文件分析出指标数据的概率,会大于表1中的86%,并使用重新计算的概率更新表1中的关联程度。需要重新计算解析器2成功从数据文件分析出指标数据时,解析器3成功从数据文件分析出指标数据的概率,会小于表1中的85%,并使用重新计算的概率更新表1中的关联程度。
在上述过程中,如果当前只存在一个成功从数据文件分析出指标数据的第一解析器,如解析器1,则在选择第二解析器时,可以选择一个与解析器1关联程度最高的解析器作为第二解析器。如果当前存在多个成功从数据文件分析出指标数据的第一解析器,如解析器1、解析器2、解析器3,则在选择第二解析器时,可以选择与一个解析器1(或解析器2、或解析器3)关联程度最高的解析器作为第二解析器,此时,可以维护表1所示的关联矩阵,并使用表1所示的关联矩阵查询到第二解析器。或者,也可以选择与多个解析器(以两个解析器为例进行说明,如解析器1和解析器2,或,解析器1和解析器3,或,解析器2和解析器3)关联程度最高的解析器作为第二解析器,此时,可以维护表2所示的关联矩阵,并使用表2所示的关联矩阵查询到第二解析器。本申请实施例中以维护表1所示的关联矩阵为例进行说明。
表2
|
解析器1 |
解析器2 |
解析器3 |
解析器4 |
解析器5 |
解析器1/2 |
|
|
89% |
88% |
87% |
解析器1/3 |
|
86% |
|
84% |
83% |
解析器1/4 |
|
81% |
82% |
|
79% |
解析器1/5 |
|
77% |
76% |
78% |
|
解析器2/3 |
74% |
|
|
71% |
73% |
解析器2/4 |
74% |
|
71% |
|
73% |
解析器2/5 |
74% |
|
73% |
71% |
|
解析器3/4 |
74% |
73% |
|
|
71% |
解析器3/5 |
74% |
73% |
|
71% |
|
解析器4/5 |
74% |
73% |
71% |
|
|
在上述过程中,为了计算第一解析器成功从数据文件分析出指标数据时,第二解析器成功从数据文件分析出指标数据的概率,可以采用贝叶斯公式进行计算,贝叶斯公式用来描述两个条件概率之间的关系,具体计算不再赘述。
本申请实施例中,在将指标数据存储到本地存储介质中之后,如果已经满足指标数据聚合条件,例如,已经成功获取到需要的所有指标数据,或者所有解析器均对数据文件进行了解析,或者有预设数量(如30个)的解析器对数据文件进行了解析,则可以从本地存储介质中提取出业务类型所需要的指标数据,并对提取出的指标数据进行聚合,得到聚合后的业务数据。
例如,账单数据包括账单标识、持卡人、卡号、账期、本期账单余额、到期还款日等内容时,则业务类型所需要的指标数据包括账单标识、持卡人、卡号、账期、本期账单余额、到期还款日,因此,可以从本地存储介质中提取出如下指标数据:账单标识:12345,持卡人:张三,卡号:123456789,账期:201507,本期账单余额:100.00元,到期还款日:20150812等。对提取出的指标数据进行聚合,得到聚合后的账单数据,具体聚合方式不再赘述。
在得到账单数据后,解析服务器可以将账单数据提供给支付服务器,如果用户签约了代扣,支付服务器可以按照该账单数据完成账单支付,如果用户没有签约代扣,支付服务器可以将账单数据提供给用户,由用户在支付服务器的引导下,完成账单支付。至此,完成数据文件的解析和账单支付。
本申请实施例中,由于包含多个解析器,因此,可以选取N个解析器,N大于等于2,并通过N个解析器并行对数据文件进行分析,即N个解析器可以一起对数据文件进行分析,大大缩短对数据文件进行分析的时间。
其中,在当前不存在成功从数据文件分析出指标数据的第一解析器时,可以从当前未分析过数据文件的解析器中,随机选择N个解析器,并通过N个解析器并行对数据文件进行分析,如果分析出指标数据,则将指标数据存储到本地存储介质中。在当前存在成功从数据文件分析出指标数据的第一解析器时,可以从当前未分析过数据文件的解析器中,按照与第一解析器的关联程度从高到低的顺序,选择N个解析器,并通过N个解析器并行对数据文件进行分析,如果分析出指标数据,则将指标数据存储到本地存储介质中。当前,还可以采用其它方式选择N个解析器,在此不再详加赘述。
基于上述技术方案,本申请实施例中,在从数据文件中解析出业务数据的过程中,可以通过解析器对数据文件进行分析,得到指标数据,并对指标数据进行聚合,得到聚合后的业务数据。当数据文件的格式反复变化时,可以使用不同的解析器对数据文件进行分析,得到聚合后的业务数据,从而提升解析的灵活性和可靠性,达到提升服务质量、改善用户体验的目的。而且,利用第一解析器与其它解析器之间的关联程度选择第二解析器,当第一解析器成功从数据文件分析出指标数据时,第二解析器成功从数据文件分析出指标数据的概率很大,这样,可以只使用少数几个解析器,就从数据文件中提取出业务数据所需要的指标数据。而且,通过不断学习各解析器之间的关联程度,各解析器之间的关联程度越来越准确,从而保证解析的准确度和效率。
以下结合具体的应用场景,对本申请实施例的技术方案进行详细说明。
本应用场景下,以数据文件为信用卡还款邮件为例进行说明。如图2所示,为数据处理的系统的结构图,包括用户邮箱、解析服务器、业务服务器。解析服务器可以从用户邮箱获取到数据文件。此外,解析服务器在得到业务数据(如账单数据)后,可以将账单数据提供给业务服务器(如支付服务器)。
其中,数据文件具体可以包括但不限于:图片文件、或者视频文件、或者音频文件、或者普通文本文件、或者结构化文本文件、或者光学字符文件。以数据文件为信用卡还款邮件为例进行说明,则该信用卡还款邮件的内容可以是图片格式的文件、视频格式的文件、音频格式的文件、普通文本格式的文件、结构化文本格式的文件、光学字符格式的文件等。
本申请实施例中,解析服务器可以包括:调度器、自主学习模块、解析器、键值存储器、聚合器。其中,解析器的数量为多个,其它均为一个。
其中,解析器是指一种程序模块,用于使用特定策略从数据文件中分析出特定的指标数据,若解析器使用特定策略可以从数据文件中找到指标数据,则返回结果是指标数据,若无法找到指标数据,则返回结果是空。该特定策略可以包括但不限于以下一种或者多种:普通文本策略、结构化文本策略、光学字符识别策略、语音识别策略、图片识别策略、视频识别策略等。
例如,针对信用卡还款邮件,由于账单数据可以包括账单标识、持卡人、卡号、账期、本期账单余额、到期还款日等数据,因此,可以配置解析器1、解析器2、解析器3、解析器4、解析器5、解析器6、解析器7…等。解析器1用于使用普通文本策略从数据文件中解析账单标识,其返回结果可能是账单标识:12345或者空。解析器2用于使用结构化文本策略从数据文件中解析账单标识,其返回结果可能是账单标识:12345或者空。解析器3用于使用光学字符识别策略从数据文件中解析账单标识,其返回结果可能是账单标识:12345或者空。解析器4用于使用语音识别策略从数据文件中解析账单标识,其返回结果可能是账单标识:12345或者空。解析器5用于使用图片识别策略从数据文件中解析账单标识,其返回结果可能是账单标识:12345或者空。解析器6用于使用视频识别策略从数据文件中解析账单标识,其返回结果可能是账单标识:12345或者空。解析器7用于使用普通文本策略从数据文件中解析持卡人,其返回结果可能是持卡人:张三或者空。以此类推。
基于普通文本策略,如果信用卡还款邮件的内容是普通文本格式的文件,则解析器1可以从数据文件中找到账单标识,否则,解析器1无法从数据文件中找到账单标识。基于结构化文本策略,如果信用卡还款邮件的内容是结构化文本格式的文件,则解析器2可以从数据文件中找到账单标识,否则,解析器2无法从数据文件中找到账单标识。以此类推,其它解析器与此类似。
键值存储器用于将指标数据存储到本地存储介质中,由于解析器分析出的指标数据为键值对,因此,可以将用于存储键值对的存储模块称为键值存储器。其中,每个键值对(即指标数据)表示一个具有业务含义的参数,例如,键值对可以是账单标识:12345,持卡人:张三,卡号:123456789,账期:201507,本期账单余额:100.00元,到期还款日:20150812等。
聚合器是一种程序模块,用于从本地存储介质中提取出业务类型所需要的指标数据,对提取出的指标数据进行聚合,得到聚合后的业务数据。例如,可以从本地存储介质中提取出如下指标数据:账单标识:12345,持卡人:张三,卡号:123456789,账期:201507,本期账单余额:100.00元,到期还款日:20150812等。对提取出的指标数据进行聚合,得到聚合后的账单数据。
自主学习模块用于维护关联矩阵,通过不断学习各解析器之间的关联程度,使得各解析器之间的关联程度越来越准确,使用当前学习的关联程度更新关联矩阵。在使用关联矩阵选择解析器时,可以提高解析的准确度和效率。
调度器用于调度解析-存储-聚合过程。具体的,调度器从自主学习模块获得解析器(自主学习模块基于关联矩阵选择的解析器),并驱动解析器对数据文件进行分析。调度器将解析器的解析结果反馈给自主学习模块,由自主学习模块学习各解析器之间的关联程度,并更新关联矩阵。在解析器完成解析后,调度器驱动聚合器对指标数据进行聚合,得到聚合后的业务数据。
在上述应用场景下,如图3所示,该数据处理的方法可以包括以下步骤:
步骤301,调度器判断当前是否存在成功从数据文件分析出指标数据的第一解析器。如果否,则执行步骤302;如果是,则执行步骤303。
步骤302,调度器从当前未分析过该数据文件的解析器中选择第二解析器,例如,调度器可以从多个解析器中随机选择一个第二解析器。
步骤303,自主学习模块利用该第一解析器与其它解析器之间的关联程度,选择当前未分析过数据文件的第二解析器。其中,自主学习模块可以从调度器获知第一解析器,且自主学习模块可以将第二解析器通知给调度器。
步骤304,调度器通知第二解析器对数据文件进行分析。
第二解析器在接收到调度器的通知后,对数据文件进行分析。
步骤305,调度器判断第二解析器是否分析出指标数据。如果分析出指标数据,则执行步骤306;如果未分析出指标数据,则执行步骤307。
步骤306,调度器通知键值存储器将指标数据存储到本地存储介质中。
键值存储器在接收到调度器的通知后,将第二解析器分析出的指标数据存储到本地存储介质中。步骤306之后,执行步骤307。
步骤307,调度器判断是否满足指标数据聚合条件。如果是,则执行步骤308;如果否,则执行步骤301。其中,满足指标数据聚合条件是指:已经成功获取到需要的所有指标数据,或者所有解析器均对数据文件进行了解析,或者有预设数量(如30个)的解析器对数据文件进行了解析。
步骤308,调度器通知聚合器从本地存储介质中提取出业务类型所需要的指标数据,并对提取出的指标数据进行聚合,得到聚合后的业务数据。
聚合器在接收到调度器的通知后,可以从本地存储介质中提取出业务类型所需要的指标数据,并对提取出的指标数据进行聚合,得到聚合后的业务数据。之后,聚合器可以将业务数据提供给业务服务器。
本申请实施例中,自主学习模块利用该第一解析器与其它解析器之间的关联程度,选择当前未分析过数据文件的第二解析器的过程,具体可以包括但不限于如下方式:自主学习模块通过第一解析器查询关联矩阵,得到该第一解析器与其它解析器之间的关联程度;之后,自主学习模块从当前未分析过数据文件的其它解析器中,选择一个与该第一解析器关联程度最高的其它解析器作为第二解析器。其中,关联矩阵内可以包含任意两个解析器之间的关联程度,该关联程度是指:当一个解析器成功从数据文件分析出指标数据时,另一个解析器也能够成功从该数据文件分析出指标数据的概率。
为了维护关联矩阵,针对每个数据文件,在使用多个解析器对数据文件进行分析后,自主学习模块还利用分析结果重新计算任意两个解析器之间的关联程度,并使用任意两个解析器之间的关联程度更新关联矩阵,即关联矩阵中的内容是不断学习的,而且通过不断学习各解析器之间的关联程度,使得各解析器之间的关联程度越来越准确,从而可以保证解析的准确度和效率。
基于上述技术方案,本申请实施例中,在从数据文件中解析出业务数据的过程中,可以通过解析器对数据文件进行分析,得到指标数据,并对指标数据进行聚合,得到聚合后的业务数据。当数据文件的格式反复变化时,可以使用不同的解析器对数据文件进行分析,得到聚合后的业务数据,从而提升解析的灵活性和可靠性,达到提升服务质量、改善用户体验的目的。而且,利用第一解析器与其它解析器之间的关联程度选择第二解析器,当第一解析器成功从数据文件分析出指标数据时,第二解析器成功从数据文件分析出指标数据的概率很大,这样,可以只使用少数几个解析器,就从数据文件中提取出业务数据所需要的指标数据。而且,通过不断学习各解析器之间的关联程度,各解析器之间的关联程度越来越准确,从而保证解析的准确度和效率。
基于与上述方法同样的申请构思,本申请实施例还提供一种数据处理的装置,该数据处理的装置应用在解析服务器上。该数据处理的装置可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过解析服务器的处理器,读取非易失性存储器中对应的计算机程序指令形成的。从硬件层面而言,如图4所示,为本申请提出的数据处理的装置所在的解析服务器的一种硬件结构图,除了图4所示的处理器、非易失性存储器外,还可以包括其他硬件,如负责处理报文的转发芯片、网络接口、内存等;从硬件结构上来讲,该解析服务器还可能是分布式设备,可能包括多个接口卡,以便在硬件层面进行报文处理的扩展。
如图5所示,为本申请提出的数据处理的装置的结构图,所述装置包括:
获取模块11,用于获取数据文件;
判断模块12,用于判断当前是否存在成功从所述数据文件分析出指标数据的第一解析器;
选择模块13,用于当判断结果为是时,则利用所述第一解析器与其它解析器之间的关联程度,选择当前未分析过所述数据文件的第二解析器;
分析模块14,用于通过所述第二解析器对所述数据文件进行分析;
存储模块15,用于当分析出指标数据时,将指标数据存储到本地存储介质。
所述选择模块13,具体用于在利用所述第一解析器与其它解析器之间的关联程度,选择当前未分析过所述数据文件的第二解析器的过程中,通过所述第一解析器查询关联矩阵,得到所述第一解析器与其它解析器之间的关联程度;从当前未分析过所述数据文件的其它解析器中,选择一个与所述第一解析器关联程度最高的其它解析器作为第二解析器;
其中,所述关联矩阵内包含任意两个解析器之间的关联程度;
所述关联程度是指:当一个解析器成功从数据文件分析出指标数据时,另一个解析器能够成功从该数据文件分析出指标数据的概率。
所述选择模块13,还用于在所述分析模块通过所述第二解析器对所述数据文件进行分析之后,如果分析出指标数据或者未分析出指标数据,均重新计算所述第一解析器成功从数据文件分析出指标数据时,所述第二解析器能够成功从数据文件分析出指标数据的概率,并利用所述概率更新所述关联矩阵内记录的所述第一解析器与所述第二解析器之间的关联程度。
所述数据处理的装置还包括(图中未体现):聚合模块,用于在所述存储模块将指标数据存储到本地存储介质之后,如果已经满足指标数据聚合条件,则从本地存储介质中提取业务类型所需要的指标数据,并对提取出的指标数据进行聚合,得到聚合后的业务数据。
所述选择模块13,还用于选取N个解析器,其中,所述N大于等于2;所述分析模块14,还用于通过N个解析器并行对所述数据文件进行分析。
解析器用于使用特定策略从数据文件分析出指标数据;
所述特定策略包括以下一种或者多种:普通文本策略、结构化文本策略、光学字符识别策略、语音识别策略、图片识别策略、视频识别策略;
所述数据文件具体为:图片文件、或者视频文件、或者音频文件、或者普通文本文件、或者结构化文本文件、或者光学字符文件。
其中,本申请装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本申请所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可进一步拆分成多个子模块。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本申请的几个具体实施例,但是,本申请并非局限于此,任何本领域的技术人员能思之的变化都应落入本申请的保护范围。