具体实施方式
下面结合附图对本发明提供的钢贸行业现货资源的数据解析方法及系统做详细说明。
参考图2,本发明所述的钢贸行业现货资源的数据解析方法流程示意图。所述方法包括,S21:获取包含钢材现货资源的Excel文档作为待解析数据源;S22:对所述待解析数据源进行识别分区;S23:采用钢材标头特征库对识别分区后的每一区域的数据进行筛选,保留与钢材标头特征库匹配度最高的数据,从而确定所有目标区域;S24:启动预处理程序对所有目标区域数据进行初步格式化;S25:对预处理后所有目标区域范围内的数据进行抽取选样与所述钢材标头特征库提供的基础数据进行比对,确定数据行或数据列具体的代表名称;S26:清洗比对后的数据,得到完整的数据信息并存储入库。以下对本发明所述的方法进行详细说明。
S21:获取包含钢材现货资源的Excel文档作为待解析数据源。
为提升解析性能,本发明所述的方法使用多线程并发模型来最大化调度线程效率。多线程并发模型是一种专为多核CPU而实现的异步高效的线程模型,可以在高度并发时充分挖掘CPU使用率,它的高性能与低延迟将为系统整体吞吐量提供基础。采用多线程并发模型可以对Excel文档内多张Excel表格进行并行处理。
S22:对所述待解析数据源进行识别分区。
解析时,通过对待解析数据源中有效的数据单元进行识别定位,可以识别出有效数据;识别后确定有效数据的外部范围,以此划分真实数据的区域;然后需要对齐每个区域,即确定区域边界。
作为优选的实施方式,所述识别分区的具体过程如下:1)利用蚁群算法对所述数据源中有效的数据单元进行快速定位识别;2)利用扩散算法确定有效数据的外部范围,进而划分真实数据的区域;3)对齐每一区域,完成分区。可以利用贪婪算法最大化确定每一区域边界以避免数据遗漏,从而对齐每一区域。
例如通过利用蚁群算法对图1B中的Excel文档进行定位,可以识别出其包括四个数据区域,识别后利用扩散算法迅速确定有效数据的外部范围,从而将其划分为四个数据区域,并确定每个区域的外部范围;再利用贪婪算法最大化确定每一区域边界以避免数据遗漏,从而对齐每一区域。
对于图1A所示包括一个数据区域的Excel文档,利用蚁群算法在首行首列“材质”附近迅速挖掘出其它可能的信息(“规格”、“公差”);随后利用扩散算法对可能部分进行扩散,最终确定区域范围从“材质”到“价格”为结束。
S23:采用钢材标头特征库对识别分区后的每一区域的数据进行筛选,保留与钢材标头特征库匹配度最高的数据,从而确定所有目标区域。
钢贸行业中,每天收到需要解析的数据源量非常多,但并不是每个数据源中的数据都是有效的。所以在识别分区完成后,还需要进一步进行筛选,保留实际需要的部分。钢材标头特征库的介入则实现了数据筛选,钢材标头特征库为存放在数据库中的代表有效数据标头的一张穷举表。
参考图3,本发明所述钢材标头特征库部分内容示意图,穷举表中的数据是依据多年的行业经验,以大量的实际资源文档为依据,总结、归纳出来的有效钢材特征标头,并根据市场变化保持更新。钢材标头特征库将每个数据源识别为独一无二的特征并记录,以此作为资源文档有效数据区域的筛选依据。所有的数据经过识别分区之后,全部流向钢材标头特征库进行过滤。钢材标头特征库应用相似度(基于TF-IDF)算法来对识别分区后的每一区域的数据进行筛选,保留每一区域中与钢材标头特征库匹配度最高的数据,并剔除匹配度过低的数据,从而确定所有目标区域。其中,TF-IDF(term frequency–inverse documentfrequency)是一种用于信息检索与信息探勘的常用加权技术。
例如,对于图1B中的Excel文档的左上数据区域,在经过识别分区后,根据该数据区域首行首列信息与钢材标头特征库相匹配,筛选出与该数据区域相似度最高的规则为:规格、卷价、参厚、价格;根据这一规则,对该数据区域进行筛选,保留该数据区域中与钢材标头特征库匹配度最高的第3行到最后一行的数据,并剔除匹配度过低的第2行的数据。
S24:启动预处理程序对所有目标区域数据进行初步格式化。
当确定所有目标区域后,预处理程序将启动来对数据进行初步格式化。这一步的目的是因为不同的数据源附带的数据格式不同(例如:重量可能是10,也可能是10-25;公差可能是0.3,也可能是0.2-0.3)。预处理程序对数据进行模式匹配,以自然语言的方式来区分数据具体所代表的含义,最终会把数据解析为一条或者多条。
例如,对于图1A中的Excel文档,在经过识别分区以及数据筛选后,得到的目标区域如图4A所示,启动预处理程序对该目标区域内的数据进行模式匹配。例如,“201/2B 0.6*4*8
0.52.6*4*8板价8700”是一条完整的数据,经模式匹配以自然语言的方式来区分数据具体所代表的含义后,最终会把该数据解析为一条;而对于“201/2B 0.5*4*80.2-0.4
1.5*4*8板价8700”,其中,公差0.2-0.4,代表的则是公差的范围,经模式匹配以自然语言的方式来区分数据具体所代表的含义后,最终会把该数据解析为公差为0.2、0.3、0.4的三条数据;经解析预处理后得到的目标区域如图4B所示。
S25:对预处理后所有目标区域范围内的数据进行抽取选样与所述钢材标头特征库提供的基础数据进行比对,确定数据行或数据列具体的代表名称。
目标区域经过解析预处理后已经能够得到比较规整的数据了,如图4B所示。但数据初步格式化后,还需要确定具体的列对应的实际名称。例如数据Q235B,需要确定其实际是材质的一种。抽取的工作并非只是简单的把数据提取,重点在于数据列匹配。抽取程序依赖于钢材标头特征库来提供基础数据。这里的基础数据实际上是一些近义词,通过对区域范围内的数据进行抽取选样,与库内的近义词进行比对,来确定数据行或数据列具体的代表名称(如:钢厂、材质、规格等)。
S26:清洗比对后的数据,得到完整的数据信息并存储入库。
所谓数据清洗,即为:去掉结果中的无效数据,比如重复的数据、明显不正常的价格、不存在的供应商、不存在的型号等。可以通过设置过滤规则对数据进行清洗,此为现有技术,此处不再赘述。
通过钢材标头特征库实现对于数据进行快速分类、比对有效数据、限定数据区域;并利用多种数据算法来提升数据定位、解析速度;经实测,采用本发明所述的数据解析方法,原始资源文档的有效数据转化率提升了70%左右,即大幅提升了有效数据转化率。
参考图5,本发明所述的钢贸行业现货资源的数据解析系统的架构示意图。所述系统包括文档获取单元51、识别分区单元52、数据筛选单元53、格式化单元54、数据比对单元55以及数据清洗单元56,以下给出详细解释。
所述文档获取单元51,用于获取包含钢材现货资源的Excel文档作为待解析数据源。为提升解析性能,本发明所述的方法使用多线程并发模型来最大化调度线程效率。多线程并发模型是一种专为多核CPU而实现的异步高效的线程模型,可以在高度并发时充分挖掘CPU使用率,它的高性能与低延迟将为系统整体吞吐量提供基础。采用多线程并发模型可以对Excel文档内多张Excel表格进行并行处理。
所述识别分区单元52与所述文档获取单元51相连,用于对所述待解析数据源进行识别分区。解析时,通过对待解析数据源中有效的数据单元进行识别定位,可以识别出有效数据;识别后确定有效数据的外部范围,以此划分真实数据的区域;然后需要对齐每个区域,即确定区域边界。作为优选的实施方式,可以利用蚁群算法对所述数据源中有效的数据单元进行快速定位识别;之后利用扩散算法确定有效数据的外部范围,进而划分真实数据的区域;然后利用贪婪算法最大化确定每一区域边界对齐每一区域,完成分区。
所述数据筛选单元53与所述识别分区单元52相连,用于采用钢材标头特征库对识别分区后的每一区域的数据进行筛选,保留与钢材标头特征库匹配度最高的数据,从而确定所有目标区域。其中,钢材标头特征库为存放在数据库中的代表有效数据标头的一张穷举表,可参考图3所示。钢材标头特征库将每个数据源识别为独一无二的特征并记录,以此作为资源文档有效数据区域的筛选依据。所有的数据经过识别分区之后,全部流向钢材标头特征库进行过滤。钢材标头特征库应用相似度(基于TF-IDF)算法来对识别分区后的每一区域的数据进行筛选,保留每一区域中与钢材标头特征库匹配度最高的数据,并剔除匹配度过低的数据,从而确定所有目标区域。
所述格式化单元54与所述数据筛选单元53相连,用于启动预处理程序对所有目标区域数据进行初步格式化。当确定所有目标区域后,预处理程序将启动来对数据进行初步格式化。这一步的目的是因为不同的数据源附带的数据格式不同(例如:重量可能是10,也可能是10-25;公差可能是0.3,也可能是0.2-0.3)。预处理程序对数据进行模式匹配,以自然语言的方式来区分数据具体所代表的含义,最终会把数据解析为一条或者多条。
所述数据比对单元55与所述格式化单元54相连,用于对预处理后所有目标区域范围内的数据进行抽取选样与所述钢材标头特征库提供的基础数据进行比对,确定数据行或数据列具体的代表名称。目标区域经过解析预处理后已经能够得到比较规整的数据了,如图4B所示。但数据初步格式化后,还需要确定具体的列对应的实际名称。例如数据Q235B,需要确定其实际是材质的一种。抽取的工作并非只是简单的把数据提取,重点在于数据列匹配。抽取程序依赖于钢材标头特征库来提供基础数据。这里的基础数据实际上是一些近义词,通过对区域范围内的数据进行抽取选样,与库内的近义词进行比对,来确定数据行或数据列具体的代表名称(如:钢厂、材质、规格等)。
所述数据清洗单元56与所述数据比对单元55相连,用于清洗比对后的数据,得到完整的数据信息并存储入库。所谓数据清洗,即为:去掉结果中的无效数据,比如重复的数据、明显不正常的价格、不存在的供应商、不存在的型号等。可以通过设置过滤规则对数据进行清洗,此为现有技术,此处不再赘述。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。