发明内容
为克服相关技术中存在的问题,本公开提供一种数据匹配方法及装置。
为了解决上述技术问题,本发明实施例公开了如下技术方案:
根据本公开实施例的第一方面,提供一种数据匹配方法,包括:
获取已知匹配关系的数据集合a1和数据集合b1,其中,待匹配的数据集合a2包含的字符串类型部分或全部属于所述数据集合a1包含的字符串类型,待匹配的数据集合b2包含的字符串类型部分或全部属于所述数据集合b1包含的字符串类型。
对所述数据集合a1和数据集合b1中包含的数据进行维度分割,获取各条数据包含的字符串;
根据已知匹配关系,获取所述数据集合a1中包含的各个字符串与所述数据集合b1中包含的各个字符串的匹配关系;
根据所述数据集合a1中包含的各个字符串与所述数据集合b1中包含的各个字符串的匹配关系,确定所述数据集合a2与所述数据集合b2的匹配关系。
优选的,所述根据已知匹配关系,获取所述数据集合a1中包含的各个字符串与所述数据集合b1中包含的各个字符串的匹配关系,包括:
若所述数据集合a1和数据集合b1中包含的各个字符串的维度统一,获取所述数据集合a1和数据集合b1中包含的各个字符串的维度;
确定在所述数据集合a1和数据集合b1中相匹配的各条数据中,属于同一维度的字符串相匹配。
优选的,所述根据已知匹配关系,获取所述数据集合a1中包含的各个字符串与所述数据集合b1中包含的各个字符串的匹配关系,包括:
获取所述数据集合a1中的基础向量,其中,所述基础向量指的是在数据集合a1中出现的各类型的字符串;
获取所述数据集合b1中的目标向量,其中,所述目标向量指的是在数据集合b1中出现的各类型的字符串;
获取所述数据集合a1中的基础向量,其中,所述基础向量指的是在数据集合a1中出现的各类型的字符串;
获取所述数据集合b1中的目标向量,其中,所述目标向量指的是在数据集合b1中出现的各类型的字符串;
获取各个基础向量与目标向量对应存在的次数,其中,设定数据集合a1与数据集合b1中互相匹配的两条数据为匹配数据组,所述对应存在的次数指的是在所述匹配数据组中,同时包含所述基础向量与目标向量的次数;
获取各个基础向量在所述数据集合a1中出现的基础向量次数;
根据所述各个基础向量与目标向量对应存在的次数,以及所述基础向量次数,计算所述基础向量与目标向量的相似度,其中,所述相似度为所述各个基础向量与目标向量对应存在的次数和所述基础向量次数的比值。
优选的,所述根据所述数据集合a1中包含的各个字符串与所述数据集合b1中包含的各个字符串的匹配关系,确定所述数据集合a2与所述数据集合b2的匹配关系,包括:
对所述数据集合a2和数据集合b2中包含的数据进行维度分割,获取每条数据包含的字符串;
根据所述数据集合a1中包含的各个字符串与所述数据集合b1中包含的各个字符串的匹配关系,以及所述数据集合a2和数据集合b2中包含的各个字符串,计算所述数据集合a2中的各条第一数据与所述数据集合b2中的各条第二数据之间的相似度;
确定与所述第一数据相似度最高的第二数据与所述第一数据相匹配。
优选的,根据以下公式计算所述数据集合a2中的各条第一数据与所述数据集合b2中的各条第二数据之间的相似度:
其中,S表示所述第一数据与第二数据的相似度;n表示维度分割后,第一数据所包含的字符串的数量和所述第二数据所包含的字符串的数量中的最大值;Si表示第一数据中第i个字符串与所述第二数据中各字符串的相似度的最大值;Qi表示第一数据中第i个字符串在所述第一数据中的权重。
根据本公开实施例的第二方面,提供一种数据匹配装置,包括:
数据集合获取模块,用于获取已知匹配关系的数据集合a1和数据集合b1,其中,待匹配的数据集合a2包含的字符串类型部分或全部属于所述数据集合a1包含的字符串类型,待匹配的数据集合b2包含的字符串类型部分或全部属于所述数据集合b1包含的字符串类型;
维度分割模块,用于对所述数据集合a1和数据集合b1中包含的数据进行维度分割,获取各条数据包含的字符串;
第一匹配模块,用于根据已知匹配关系,获取所述数据集合a1中包含的各个字符串与所述数据集合b1中包含的各个字符串的匹配关系;
第二匹配模块,用于根据所述数据集合a1中包含的各个字符串与所述数据集合b1中包含的各个字符串的匹配关系,确定所述数据集合a2与所述数据集合b2的匹配关系。
优选的,所述第一匹配模块包括:
维度获取单元,用于若所述数据集合a1和数据集合b1中包含的各个字符串的维度统一,获取所述数据集合a1和数据集合b1中包含的各个字符串的维度;
第一匹配单元,用于确定在所述数据集合a1和数据集合b1中相匹配的各条数据中,属于同一维度的字符串相匹配。
优选的,所述第一匹配模块包括:
基础向量获取单元,用于获取所述数据集合a1中的基础向量,其中,所述基础向量指的是在数据集合a1中出现的各类型的字符串;
目标向量获取单元,用于获取所述数据集合b1中的目标向量,其中,所述目标向量指的是在数据集合b1中出现的各类型的字符串;
第一次数获取单元,用于获取各个基础向量与目标向量对应存在的次数,其中,设定数据集合a1与数据集合b1中互相匹配的两条数据为匹配数据组,所述对应存在的次数指的是在所述匹配数据组中,同时包含所述基础向量与目标向量的次数;
第二次数获取单元,用于获取各个基础向量在所述数据集合a1中出现的基础向量次数;
相似度获取单元,用于根据所述各个基础向量与目标向量对应存在的次数,以及所述基础向量次数,计算所述基础向量与目标向量的相似度,其中,所述相似度为所述各个基础向量与目标向量对应存在的次数和所述基础向量次数的比值。
优选的,所述第二匹配模块包括:
维度分割单元,用于对所述数据集合a2和数据集合b2中包含的数据进行维度分割,获取每条数据包含的字符串;
相似度计算单元,用于根据所述数据集合a1中包含的各个字符串与所述数据集合b1中包含的各个字符串的匹配关系,以及所述数据集合a2和数据集合b2中包含的各个字符串,计算所述数据集合a2中的各条第一数据与所述数据集合b2中的各条第二数据之间的相似度;
匹配确定单元,用于确定与所述第一数据相似度最高的第二数据与所述第一数据相匹配。
优选的,所述相似度计算单元根据以下公式计算所述数据集合a2中的各条第一数据与所述数据集合b2中的各条第二数据之间的相似度:
其中,S表示所述第一数据与第二数据的相似度;n表示维度分割后,第一数据所包含的字符串的数量和所述第二数据所包含的字符串的数量中的最大值;Si表示第一数据中第i个字符串与所述第二数据中各字符串的相似度的最大值;Qi表示第一数据中第i个字符串在所述第一数据中的权重。
本公开的实施例提供的技术方案可以包括以下有益效果:
本申请公开一种数据匹配方法及装置,该方法中,首先获取已知匹配关系的数据集合a1和数据集合b1,待匹配的数据集合a2包含的字符串类型部分或全部属于数据集合a1包含的字符串类型,待匹配的数据集合b2包含的字符串类型部分或全部属于数据集合b1包含的字符串类型,然后获取a1和b1中各条数据的字符串,获取数据集合a1中的各个字符串与数据集合b1中的各个字符串的匹配关系,再根据该匹配关系,确定数据集合a2与数据集合b2的匹配关系。
通过本申请公开的方案,能够确定两个待匹配的数据集合之间的匹配关系,与现有技术中采用的表格匹配方法相比,对人工依赖性低,并且,本申请的方法根据待匹配的数据集合中包含的字符串间的关联实现匹配,与现有技术中采用的工具匹配的方法相比,不需要人为设定选择条件和根据选择条件进行比对,因此,相对于现有技术,本申请公开的方法耗时较短,提高了匹配效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
为了解决在通过现有技术进行数据匹配时,存在的耗时长,匹配效率低的问题,本申请公开一种数据匹配方法及装置。
本申请的实施例一公开一种数据匹配方法。参见图1所示的工作流程示意图,所述数据匹配方法包括以下步骤:
步骤S11、获取已知匹配关系的数据集合a1和数据集合b1,其中,待匹配的数据集合a2包含的字符串类型部分或全部属于所述数据集合a1包含的字符串类型,待匹配的数据集合b2包含的字符串类型部分或全部属于所述数据集合b1包含的字符串类型。
其中,所述数据集合a1和数据集合b1中包含多条数据,所述已知匹配关系指的是所述数据集合a1中包含的数据与所述数据集合b1中包含的数据的匹配关系。
所述待匹配的数据集合a2包含的字符串类型部分或全部属于所述数据集合a1包含的字符串类型。其中,所述待匹配的数据集合a2包含的字符串类型全部属于所属数据集合a1包含的字符串类型,指的是所述数据集合a2中包含的字符串类型与所述数据集合a1中包含的字符串类型是相同的,或者,所述数据集合a2中包含的字符串类型为所述数据集合a1中包含的部分字符串类型。另外,若所述待匹配的数据集合a2包含的字符串类型部分属于所述数据集合a1包含的字符串类型,则所述待匹配的数据集合a2与所述数据集合a1之间重合的字符串类型在预设范围内,例如,所述待匹配的数据集合a2中至少有百分之五十以上的字符串类型属于所属数据集合a1包含的字符串类型。
相应的,所述待匹配的数据集合b2包含的字符串类型部分或全部属于所述数据集合b1包含的字符串类型。其中,所述待匹配的数据集合b2包含的字符串类型全部属于所属数据集合b1包含的字符串类型,指的是所述数据集合b2中包含的字符串与所述数据集合b1中包含的字符串类型相同,或者,所述数据集合b2中包含的字符串类型为所述数据集合b1中包含的部分字符串类型。另外,若所述待匹配的数据集合b2包含的字符串类型部分属于所述数据集合b1包含的字符串类型,则所述待匹配的数据集合b2与所述数据集合b1之间重合的字符串类型在预设范围内,例如,所述待匹配的数据集合b2中至少有百分之五十以上的字符串类型属于所属数据集合b1包含的字符串类型。
步骤S12、对所述数据集合a1和数据集合b1中包含的数据进行维度分割,获取各条数据包含的字符串。
步骤S13、根据已知匹配关系,获取所述数据集合a1中包含的各个字符串与所述数据集合b1中包含的各个字符串的匹配关系。
例如,若数据集合a1中包含一条数据为“1.3AT尊贵”,该条数据经过维度分割后,能够获取“1.3”、“AT”和“尊贵”三个字符串,根据已知匹配关系,确定在数据集合b1中,与该条数据相匹配的数据为“1.3T自动尊贵型”,而经过维度分割后,该数据被分割为“1.3T”、“自动”和“尊贵型”三个字符串,则步骤S13用于确定“1.3”、“AT”和“尊贵”三个字符串和“1.3T”、“自动”和“尊贵型”三个字符串的匹配关系。根据步骤S13,能够确定数据集合a1中字符串“1.3”和数据集合b1中字符串“1.3T”相匹配,数据集合a1中字符串“AT”和数据集合b1中字符串“自动”相匹配,数据集合a1中字符串“尊贵”和数据集合b1中字符串“尊贵型”相匹配。
步骤S14、根据所述数据集合a1中包含的各个字符串与所述数据集合b1中包含的各个字符串的匹配关系,确定所述数据集合a2与所述数据集合b2的匹配关系。
由于所述待匹配的数据集合a2包含的字符串类型部分或全部属于所述数据集合a1包含的字符串类型,所述待匹配的数据集合b2包含的字符串类型部分或全部属于所述数据集合b1包含的字符串类型,根据所述数据集合a1中包含的各个字符串与所述数据集合b1中包含的各个字符串的匹配关系,即可确定所述数据集合a2与所述数据集合b2的匹配关系。
本申请的第一实施例公开一种数据匹配方法,该方法中,首先获取已知匹配关系的数据集合a1和数据集合b1,其中,待匹配的数据集合a2包含的字符串类型部分或全部属于所述数据集合a1包含的字符串类型,待匹配的数据集合b2包含的字符串类型部分或全部属于所述数据集合b1包含的字符串类型,然后获取数据集合a1和数据集合b1中包含的各条数据的字符串,根据已知匹配关系,获取所述数据集合a1中包含的各个字符串与所述数据集合b1中包含的各个字符串的匹配关系,再根据各个字符串的匹配关系,确定数据集合a2与数据集合b2的匹配关系。
通过本申请公开的方法,能够确定两个待匹配的数据集合之间的匹配关系,与现有技术中采用的表格匹配方法相比,对人工依赖性低,并且,本申请的方法根据待匹配的数据集合中包含的字符串间的关联实现匹配,与现有技术中采用的工具匹配的方法相比,不需要人为设定选择条件和根据选择条件进行比对,因此,相对于现有技术,本申请公开的方法耗时较短,提高了匹配效率。
进一步的,在本申请中,能够通过多种方式,获取所述数据集合a1中包含的各个字符串与所述数据集合b1中包含的各个字符串的匹配关系。
在其中一种方式中,所述数据集合a1和数据集合b1中包含的各个字符串的维度统一。所述维度统一,指的是相匹配的两条数据包含的字符串数量相等,并且根据已知匹配关系,能够确定在所述相匹配的两条数据中,位于同一维度的字符串相匹配。例如,在数据集合a1中,每条数据的格式为“a1、a2、a3、a4”,在数据集合b1中,每条数据的格式为“b1、b2、b3、b4”,两条数据均包含四个字符串,并且在已知匹配关系中,规定同一维度的字符串a1与字符串b1相匹配,同一维度的字符串a2与字符串b2相匹配,字符串a3与字符串b3相匹配,字符串a4与字符串b4相匹配,则认为所述数据集合a1和数据集合b1中包含的各个字符串的维度统一。
若所述数据集合a1和数据集合b1中包含的各个字符串的维度统一,所述根据已知匹配关系,获取所述数据集合a1中包含的各个字符串与所述数据集合b1中包含的各个字符串的匹配关系,包括以下步骤:
首先,获取所述数据集合a1和数据集合b1中包含的各个字符串的维度。例如,若数据为“a1、a2、a3、a4”,则a1为第一维度,并依次类推,a4为第四维度;相应的,若数据为“b1、b2、b3、b4”,则b1为第一维度,并依次类推,b4为第四维度。
然后,确定在所述数据集合a1和数据集合b1中相匹配的各条数据中,属于同一维度的字符串相匹配,从而确定所述数据集合a1中包含的各个字符串与所述数据集合b1中包含的各个字符串的匹配关系。根据上例可知,a1和b1均为第一维度,则a1和b1相匹配,并依次类推,a4和b4均为第四维度,则a4和b4相匹配。并且,相匹配的字符串的相似度最高。
另外,所述数据集合a1和数据集合b1中包含的各个字符串的维度有时不统一,根据已知匹配关系,确定数据集合a1和数据集合b1中包含的数据相匹配。这种情况下,参见图2所示的工作流程示意图,所述根据已知匹配关系,获取所述数据集合a1中包含的各个字符串与所述数据集合b1中包含的各个字符串的匹配关系,包括以下步骤:
步骤S21、获取所述数据集合a1中的基础向量,其中,所述基础向量指的是在数据集合a1中出现的各类型的字符串。
步骤S22、获取所述数据集合b1中的目标向量,其中,所述目标向量指的是在数据集合b1中出现的各类型的字符串。
在实际操作过程中,执行步骤S21和步骤S22的先后顺序无需限定,还可以同时执行步骤S21和步骤S22,或者,先执行步骤S22,再执行步骤S21。
步骤S23、获取各个基础向量与目标向量对应存在的次数,其中,设定数据集合a1与数据集合b1中互相匹配的两条数据为匹配数据组,所述对应存在的次数指的是在所述匹配数据组中,同时包含所述基础向量与目标向量的次数。
例如,数据集合a1中包含与数据集合b1中有三条数据以一一对应的形式互相匹配,则数据集合a1与数据集合b1包含三个匹配数据组,而基础向量a1与目标向量b1在第一匹配数据组和第二匹配数据组中均同时出现一次,则基础向量a1与目标向量b1对应存在的次数为2。
另外,若数据集合a1中存在第一数据和第二数据,且均与数据集合b1中存在的第三数据相匹配,则数据集合a1与数据集合b1包含两个匹配数据组,分别为“第一数据/第三数据”和“第二数据/第三数据”,而基础向量a1与目标向量b1在两个匹配数据组均同时出现一次,则基础向量a1与目标向量b1对应存在的次数为2。
步骤S24、获取各个基础向量在所述数据集合a1中出现的基础向量次数。
在实际操作过程中,执行步骤S23和步骤S24的先后顺序无需限定,还可以同时执行步骤S23和步骤S24,或者,先执行步骤S24,再执行步骤S23。
步骤S25、根据所述各个基础向量与目标向量对应存在的次数,以及所述基础向量次数,计算所述基础向量与目标向量的相似度,其中,所述相似度为所述各个基础向量与目标向量对应存在的次数和所述基础向量次数的比值。
例如,若基础向量a1与目标向量b1对应存在的次数为2,基础向量a1在数据集合a1中出现的基础向量次数为3,则基础向量a1与目标向量b1的相似度为0.666666667;若基础向量a1与目标向量b2对应存在的次数为3,基础向量a1在数据集合a1中出现的基础向量次数为3,则基础向量a1与目标向量b2的相似度为1。
通过基础向量与目标向量的相似度,能够表征二者之间的匹配关系。例如,与所述基础向量相似度最高的目标向量与所述基础向量相匹配,而与所述基础向量相似度最低的目标向量与所述基础向量不存在匹配关联。
例如,若基础向量a1与目标向量b1的相似度为0.666666667,且基础向量a1与目标向量b2的相似度为1,则与基础向量a1相似度最高的目标向量b2与a1相匹配。
通过步骤S21至步骤S25,能够获取基础向量与目标向量之间的相似度,通过所述相似度表征二者之间的匹配关系,而基础向量为数据集合a1中包含的字符串,目标向量为数据集合b1中包含的字符串,通过基础向量与目标向量的匹配关系,即可确定数据集合a1中包含的各个字符串与所述数据集合b1中包含的各个字符串的匹配关系。
以下以一个实例对步骤S21至步骤S25的操作进行描述。
在该实例中,数据集合a1和数据集合b1如表1所示,其中,表1左侧列中的各条数据构成所述数据集合a1,表1右侧列中的各条数据构成所述数据集合b1,并且,表1中,在同一行的两条数据相互匹配。
表1
1.3 AT 尊贵 |
1.3T 自动 尊贵型 |
1.5 MT 标准 |
1.5T 手动 标准型 |
1.8 CRT 运动 |
1.8T 自动 运动型 |
1.5 AT 运动 |
1.5T 自动 运动型 |
1.8 MT 标准 |
1.8T 手动 标准型 |
1.3 CRT 标准 |
1.3T 自动 标准型 |
1.3 MT 运动 |
1.3T 手动 运动型 |
1.8 CRT 尊贵 |
1.8T 自动 尊贵型 |
1.5 AT 标准 |
1.5T 自动 标准型 |
根据步骤S21至步骤S25,能够获取表2。
表2
基础向量 |
目标向量 |
次数 |
基础向量总次数 |
在基础向量对应的占比 |
AT |
1.3T |
1 |
3 |
0.3333 |
AT |
1.5T |
2 |
3 |
0.666666667 |
AT |
自动 |
3 |
3 |
1 |
AT |
尊贵型 |
1 |
3 |
0.333333333 |
AT |
运动型 |
1 |
3 |
0.333333333 |
AT |
标准型 |
1 |
3 |
0.333333333 |
MT |
1.5 |
1 |
3 |
0.333333333 |
MT |
1.8 |
1 |
3 |
0.333333333 |
MT |
1.3 |
1 |
3 |
0.333333333 |
MT |
手动 |
3 |
3 |
1 |
MT |
标准型 |
2 |
3 |
0.666666667 |
MT |
运动型 |
1 |
3 |
0.333333333 |
CRT |
1.3T |
1 |
3 |
0.333333333 |
CRT |
1.8T |
2 |
3 |
0.666666667 |
CRT |
自动 |
3 |
3 |
1 |
CRT |
尊贵型 |
1 |
3 |
0.333333333 |
CRT |
运动型 |
1 |
3 |
0.333333333 |
CRT |
标准型 |
1 |
3 |
0.333333333 |
其中,字符串“AT”在数据集合a1中出现,则字符串“AT”为基础向量;字符串“1.3T”在数据集合b1中出现,则字符串“1.3T”为目标向量。另外,根据表1可知,数据集合a1中的数据“1.3AT尊贵”与数据集合b1中的数据“1.3T自动尊贵型”相匹配,也就是说,“1.3AT尊贵”和“1.3T自动尊贵型”为一个匹配数据组。表2中,“次数”指的是基础向量与目标向量对应存在的次数,由于基础向量“AT”和目标向量“1.3T”仅在1.3AT尊贵”和“1.3T自动尊贵型”构成的这一个匹配数据组中同时出现一次,则次数为1。而基础向量“AT”在数据集合a1中出现3次,则基础向量次数为3。这种情况下,基础向量“AT”与目标向量“1.3T”的相似度为0.3333,而基础向量“AT”与目标向量“自动”的相似度为1,与基础向量“AT”相似度最高的目标向量为“自动”,则确定“AT”与“自动”相匹配。
并且,根据上述方案可知,字符串“MT”与“手动”相匹配,字符串“CRT”与“自动”相匹配。
进一步的,本申请公开的数据匹配方法中,所述根据所述数据集合a1中包含的各个字符串与所述数据集合b1中包含的各个字符串的匹配关系,确定所述数据集合a2与所述数据集合b2的匹配关系,包括以下步骤:
第一步,对所述数据集合a2和数据集合b2中包含的数据进行维度分割,获取每条数据包含的字符串。
第二步,根据所述数据集合a1中包含的各个字符串与所述数据集合b1中包含的各个字符串的匹配关系,以及所述数据集合a2和数据集合b2中包含的各个字符串,计算所述数据集合a2中的各条第一数据与所述数据集合b2中的各条第二数据之间的相似度。其中,第一数据指的是所述数据集合a2中包含的数据,第二数据指的是数据集合b2中包含的数据。
第三步,确定与所述第一数据相似度最高的第二数据与所述第一数据相匹配。
本申请中,根据以下公式计算所述数据集合a2中的各条第一数据与所述数据集合b2中的各条第二数据之间的相似度:
其中,S表示所述第一数据与第二数据的相似度;n表示维度分割后,第一数据所包含的字符串的数量和所述第二数据所包含的字符串的数量中的最大值;Si表示第一数据中第i个字符串与所述第二数据中各字符串的相似度的最大值;Qi表示第一数据中第i个字符串在所述第一数据中的权重。
上述公式中,Qi表示第一数据中第i个字符串在所述第一数据中的权重。若各个字符串在数据中的权重相等,则Qi为1/n,其中,n为第一数据所包含的字符串的数量,和所述第二数据所包含的字符串的数量中的最大值。当然,还可以根据实际需求,预先分别为各个字符串设置相应的权重。
另外,n表示维度分割后,第一数据所包含的字符串的数量,和所述第二数据所包含的字符串的数量中的最大值,例如,第一数据包含4个字符串,而第二数据包含三个字符串,则n为4。
其中,第一数据中第i个字符串与所述第二数据中各字符串的相似度可通过步骤S21至步骤S25获取。另外,若数据集合a1和数据集合b1中包含的各个字符串的维度统一,确定在所述数据集合a1和数据集合b1中相匹配的各条数据中,为同一维度的字符串相匹配,这种情况下,可设定所述数据集合a1和数据集合b1中相匹配的字符串的相似度为m,而不匹配的字符串的相似度为n,并且,m大于n,从而根据匹配关系确定Si。
相应的,本申请公开一种数据匹配装置。参见图3所示的结构示意图,所述数据匹配装置包括:数据集合获取模块100、维度分割模块200、第一匹配模块300和第二匹配模块400。
其中,所述数据集合获取模块100,用于获取已知匹配关系的数据集合a1和数据集合b1,其中,待匹配的数据集合a2包含的字符串类型部分或全部属于所述数据集合a1包含的字符串类型,待匹配的数据集合b2包含的字符串类型部分或全部属于所述数据集合b1包含的字符串类型。
其中,所述数据集合a1和数据集合b1中包含多条数据,所述已知匹配关系指的是所述数据集合a1中包含的数据与所述数据集合b1中包含的数据的匹配关系。
所述维度分割模块200,用于对所述数据集合a1和数据集合b1中包含的数据进行维度分割,获取各条数据包含的字符串;
所述第一匹配模块300,用于根据已知匹配关系,获取所述数据集合a1中包含的各个字符串与所述数据集合b1中包含的各个字符串的匹配关系;
所述第二匹配模块400,用于根据所述数据集合a1中包含的各个字符串与所述数据集合b1中包含的各个字符串的匹配关系,确定所述数据集合a2与所述数据集合b2的匹配关系。
由于所述待匹配的数据集合a2包含的字符串类型部分或全部属于所述数据集合a1包含的字符串类型,所述待匹配的数据集合b2包含的字符串类型部分或全部属于所述数据集合b1包含的字符串类型,根据所述数据集合a1中包含的各个字符串与所述数据集合b1中包含的各个字符串的匹配关系,即可确定所述数据集合a2与所述数据集合b2的匹配关系。
在本申请中,能够通过多种方式,获取所述数据集合a1中包含的各个字符串与所述数据集合b1中包含的各个字符串的匹配关系。
在其中一种方式中,所述数据集合a1和数据集合b1中包含的各个字符串的维度统一。所述维度统一,指的是相匹配的两条数据包含的字符串数量相等,并且根据已知匹配关系,能够确定在所述相匹配的两条数据中,位于同一维度的字符串相匹配。例如,在数据集合a1中,每条数据的格式为“a1、a2、a3、a4”,在数据集合b1中,每条数据的格式为“b1、b2、b3、b4”,两条数据均包含四个字符串,并且在已知匹配关系中,规定字符串a1与字符串b1相匹配,字符串a2与字符串b2相匹配,字符串a3与字符串b3相匹配,字符串a4与字符串b4相匹配,则认为所述数据集合a1和数据集合b1中包含的各个字符串的维度统一。
这种情况下,所述第一匹配模块300包括:
维度获取单元,用于若所述数据集合a1和数据集合b1中包含的各个字符串的维度统一,获取所述数据集合a1和数据集合b1中包含的各个字符串的维度;
第一匹配单元,用于确定在所述数据集合a1和数据集合b1中相匹配的各条数据中,属于同一维度的字符串相匹配。
另外,所述数据集合a1和数据集合b1中包含的各个字符串的维度有时不统一,根据已知匹配关系,确定数据集合a1和数据集合b1中包含的数据相匹配。这种情况下,所述第一匹配模块包括:
基础向量获取单元,用于获取所述数据集合a1中的基础向量,其中,所述基础向量指的是在数据集合a1中出现的各类型的字符串;
目标向量获取单元,用于获取所述数据集合b1中的目标向量,其中,所述目标向量指的是在数据集合b1中出现的各类型的字符串;
第一次数获取单元,用于获取各个基础向量与目标向量对应存在的次数,其中,设定数据集合a1与数据集合b1中互相匹配的两条数据为匹配数据组,所述对应存在的次数指的是在所述匹配数据组中,同时包含所述基础向量与目标向量的次数;
第二次数获取单元,用于获取各个基础向量在所述数据集合a1中出现的基础向量次数;
相似度获取单元,用于根据所述各个基础向量与目标向量对应存在的次数,以及所述基础向量次数,计算所述基础向量与目标向量的相似度,其中,所述相似度为所述各个基础向量与目标向量对应存在的次数和所述基础向量次数的比值。
进一步的,所述第二匹配模块400包括:
维度分割单元,用于对所述数据集合a2和数据集合b2中包含的数据进行维度分割,获取每条数据包含的字符串;
相似度计算单元,用于根据所述数据集合a1中包含的各个字符串与所述数据集合b1中包含的各个字符串的匹配关系,以及所述数据集合a2和数据集合b2中包含的各个字符串,计算所述数据集合a2中的各条第一数据与所述数据集合b2中的各条第二数据之间的相似度;
匹配确定单元,用于确定与所述第一数据相似度最高的第二数据与所述第一数据相匹配。
进一步的,本申请公开的数据匹配装置中,所述相似度计算单元根据以下公式计算所述数据集合a2中的各条第一数据与所述数据集合b2中的各条第二数据之间的相似度:
其中,S表示所述第一数据与第二数据的相似度;n表示维度分割后,第一数据所包含的字符串的数量和所述第二数据所包含的字符串的数量中的最大值;Si表示第一数据中第i个字符串与所述第二数据中各字符串的相似度的最大值;Qi表示第一数据中第i个字符串在所述第一数据中的权重。
通过本申请公开的方案,能够确定两个待匹配的数据集合之间的匹配关系,与现有技术中采用的表格匹配方法相比,对人工依赖性低,并且,本申请的方法根据待匹配的数据集合中包含的字符串间的关联实现匹配,与现有技术中采用的工具匹配的方法相比,不需要人为设定选择条件和根据选择条件进行比对,因此,相对于现有技术,本申请公开的方法耗时较短,提高了匹配效率。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。