CN106599227B - 用于获取基于属性值的对象之间的相似度的方法与装置 - Google Patents
用于获取基于属性值的对象之间的相似度的方法与装置 Download PDFInfo
- Publication number
- CN106599227B CN106599227B CN201611177626.5A CN201611177626A CN106599227B CN 106599227 B CN106599227 B CN 106599227B CN 201611177626 A CN201611177626 A CN 201611177626A CN 106599227 B CN106599227 B CN 106599227B
- Authority
- CN
- China
- Prior art keywords
- attribute
- value
- similarity
- simhash
- obtaining
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 38
- 238000009826 distribution Methods 0.000 claims description 11
- 230000009466 transformation Effects 0.000 claims description 3
- 239000013598 vector Substances 0.000 description 20
- 238000004364 calculation method Methods 0.000 description 13
- 238000003491 array Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 241001122767 Theaceae Species 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 206010054949 Metaplasia Diseases 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000015689 metaplastic ossification Effects 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 101100006960 Caenorhabditis elegans let-2 gene Proteins 0.000 description 1
- 235000000173 Camellia sinensis var sinensis Nutrition 0.000 description 1
- 240000007524 Camellia sinensis var. sinensis Species 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供一种用于获取基于属性值的对象之间的相似度的方法与装置。方法包括:分别获取第一对象和第二对象的属性值集合的simhash值;根据所述simhash值分别获取所述第一对象的各属性与所述第二对象的各属性之间的相关度;根据所述simhash值分别获取所述第一对象的各属性与所述第二对象的各属性之间关系的权重;根据所述相关度与所述权重获取所述第一对象和所述第二对象之间的相似度。本公开提供的方法可以用于计算不同来源的异构数据所描述的对象之间的相似度。
Description
技术领域
本公开涉及机器学习技术领域,具体而言,涉及一种用于获取基于属性值分布的异构数据对象之间的相似度的方法与装置。
背景技术
在机器学习领域,对象相似度作为一个重要课题,被广泛应用在链接预测、欺诈检测、协同过滤、近邻查询等众多实际问题中。
现有的判断对象之间相似度的方法往往受到对象的属性结构的限制,只能判断属性类型相同或者相近的对象之间的相似度。
因此,需要一种能判断属性类型不完全相同的用于获取异构对象间相似度的方法。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开的目的在于提供一种用于获取基于属性值的异构对象之间的相似度的方法与装置,用于至少在一定程度上克服由于相关技术的限制和缺陷而导致的一个或多个问题。
根据本公开实施例的第一方面,提供一种用于获取基于属性值的对象之间的相似度的方法,包括:
分别获取第一对象和第二对象的属性值集合的simhash值;
根据所述simhash值分别获取所述第一对象的各属性与所述第二对象的各属性之间的相关度;
根据所述simhash值分别获取所述第一对象的各属性与所述第二对象的各属性之间关系的权重;
根据所述相关度与所述权重获取所述第一对象和所述第二对象之间的相似度。
在本公开的一种示例性实施例中,根据所述simhash值分别获取所述第一对象的各属性与所述第二对象的各属性之间的相关度包括:
根据所述simhash值分别获取所述第一对象和所述第二对象的各属性值的出现概率;
根据所述出现概率获取第一属性和第二属性的属性值分布散度,所述第一属性和所述第二属性分别属于所述第一对象和所述第二对象;
根据所述属性值分布散度获取所述第一属性和所述第二属性的相关度。
在本公开的一种示例性实施例中,根据所述simhash值分别获取所述第一对象的各属性与所述第二对象的各属性之间关系的权重包括:
获取各属性值在所述第一属性与所述第二属性的合集中的属性值出现概率,所述各属性值包括所述第一属性的属性值与所述第二属性的属性值;
根据所述属性值出现概率获取所述第一属性和所述第二属性的属性值合集的熵。
在本公开的一种示例性实施例中,获取所述属性值出现概率的方程包括:
其中,NX表示所述第一对象所属的第一对象类型X包括的第一对象数量,NY表示所述第二对象所属的第二对象类型Y包括的第二对象数量,ni表示所述第一属性与所述第二属性的所述属性值合集中第i个属性值在所述第一属性与所述第二属性中的总出现次数,A表示所述第一属性,B表示所述第二属性,表示所述第i个属性值在所述第一属性与所述第二属性的所述属性值合集中的出现概率。
其中,NAB表示所述第一属性与所述第二属性的属性值合集中的属性值数量。
在本公开的一种示例性实施例中,根据所述相关度与所述权重获取所述第一对象和所述第二对象之间的相似度包括:
获取所述第一对象的第一属性的属性值和所述第二对象的第二属性的属性值之间的相似度;
判断所述第一对象与所述第二对象是否完全相同;
当所述第一对象与所述第二对象不完全相同时,获取所述第一对象与所述第二对象之间的相似度。
在本公开的一种示例性实施例中,所述获取所述第一对象与所述第二对象之间的相似度sim(x,y)包括通过以下方程获取:
其中,x表示所述第一对象,y表示所述第二对象,n表示所述第一对象的属性类型数量,m表示所述第二对象的属性类型数量,cor(Xi,Yj)表示所述第一对象的第i个属性与所述第二对象的第j个属性之间的相似度。
根据本公开的第二方面,提供一种用于获取对象相似度的装置,包括:
形式变换单元,用于分别获取第一对象和第二对象的属性值集合的simhash值;
相关度获取单元,用于根据所述simhash值分别获取所述第一对象的各属性与所述第二对象的各属性之间的相关度;
权重获取单元,用于根据所述simhash值分别获取所述第一对象的各属性与所述第二对象的各属性之间关系的权重;
相似度获取单元,用于根据所述相关度与所述权重获取所述第一对象和所述第二对象之间的相似度。
在本公开的一种示例性实施例中,所述相似度获取单元获取所述所述第一对象和所述第二对象之间的相似度包括通过以下方程获取:
其中,x表示所述第一对象,y表示所述第二对象,n表示所述第一对象的属性类型数量,m表示所述第二对象的属性类型数量,cor(Xi,Yj)表示所述第一对象的第i个属性与所述第二对象的第j个属性之间的相似度。
本公开提供的方法通过将数据对象的属性值转变为对应的simhash值,并根据simhash值逐对计算分别属于两个对象的两个属性之间的相关度、属性之间的相似度以及属性之间关系的权重,实现了快速判断数据对象的相似度。本方法不仅可以计算数据结构相同的对象之间的相似度,还可以计算不同来源的异构数据所描述的对象之间的相似度。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示意性示出本公开示例性实施例中一种用于获取基于属性值的对象之间的相似度的方法的流程图。
图2示意性示出本公开示例性实施例中一种用于获取基于属性值的对象之间的相似度的装置的方框图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
此外,附图仅为本公开的示意性图解,图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
下面结合附图对本公开示例实施方式进行详细说明。
图1是本公开示例性实施例中一种用于获取基于属性值的对象之间的相似度的方法的流程图。
参考图1,方法100可以包括:
步骤102,分别获取第一对象和第二对象的属性值集合的simhash值。
步骤104,根据所述simhash值分别获取所述第一对象的各属性与所述第二对象的各属性之间的相关度。
步骤106,根据所述simhash值分别获取所述第一对象的各属性与所述第二对象的各属性之间关系的权重。
步骤108,根据所述相关度与所述权重获取所述第一对象和所述第二对象之间的相似度。
本公开提供的方法通过将数据对象的属性值转变为对应的simhash值,并根据simhash值逐对计算分别属于两个对象的两个属性之间的相关度、属性之间的相似度以及属性之间关系的权重,实现了快速判断数据对象的相似度。本方法不仅可以计算数据结构相同的对象之间的相似度,还可以计算不同来源的异构数据所描述的对象之间的相似度。
下面对方法100的各步骤进行详细说明。
在步骤102中,分别获取第一对象和第二对象的属性值集合的simhash值。
计算第一对象和第二对象的各属性的simhash值的具体步骤可以为:
步骤A1:将对象的所有属性值转换为文本格式。
步骤A2:用词向量的形式表示属性值。
通过对属性值转换得到的文本进行词元化(lemmatization)和分词处理,可以得到若干个词,将该属性用这些词组成的词向量表示。例如,对象x的属性a取值为v,经过词元化和分词处理后,得到n个词t1,t2,...,tn,那么v可表示为词向量<t1,t2,...,tn>T。
步骤A3:将上述词转换成64位长整数,并用该长整数表示该词。选择一个哈希函数f,将词t转换成64位长整数型的哈希值h,即:
h=f(t)(1)
那么使用(1)可以将对象x的属性a的取值v的词向量表示<t1,t2,...tn>T转换成哈希值表示:<h1,h2,...hn>T,其中:
hi=f(ti),i∈[1,n]
步骤A4:计算每个哈希值的权重。
设属性值集合中的对象数量为n,哈希值h在m个对象中出现过,则哈希值h的权重wh的计算方法如(2):
wh=n/m(2)
步骤A5:计算属性值的simhash值。
具体为:
1、设属性值v的哈希值向量为<h1,h2,...hn>T,哈希值对应的权重向量为<w1,w2,...wn>T。首先将h1,h2,...hn转成n个长度为64的整数数组a1,a2,...an,然后使数组中的每个元素的值等于其对应的哈希值的相应位的值。即:
aj[j]=(hj&&(1<<j))>>j i∈[1,n],j∈[0,63] (3)
2、修改每个数组中的每个元素值。如果元素值为1,则将其修改为对应的哈希值的权重;如果元素值为0,则将其修改为其对应的哈希值的权重的负值。即:
3、对于属性值v创建另一个64位的整数数组s,其每个元素等于所有数组a的相应位置的元素的加和,即:
4、修改整数数组s中每个元素的值,方法为:如果s[j]大于0,将s[j]修改为1,否则修改为0,即:
s[j]=1 if s[j]>0
s[j]=0 if s[j]≤0 (6)
5、计算属性v的simhash值simhashv,方法如(7):
经过步骤A1至步骤A5的操作,可以完成计算属性的simhash值。通过获取各属性的simhash值,可以将各属性的属性值数字化,以便于进一步计算。
在步骤104中,根据所述simhash值分别获取所述第一对象的各属性与所述第二对象的各属性之间的相关度。
根据simhash值分别获取第一对象的各属性与第二对象的各属性之间的相关度的具体步骤可以包括:
步骤B1:根据simhash值分别获取第一对象和第二对象的各属性值的出现概率。
设对象类型X包含NX个对象,X的属性类型A出现了NA个不相同的属性值(因为每个属性值对应一个simhash值,也即出现了NA个不相同的simhash值),第i个属性值vAi的simhash值simhashAi在对象类型X的属性类型A中出现了ni次,那么属性值vAi在对象类型X的属性类型A中的出现概率pAi的计算方法如下:
pAj=nj/NX (8)
步骤B2:根据出现概率获取第一属性和第二属性的属性值分布散度,第一属性和第二属性分别属于第一对象和第二对象。
设对象类型X的属性类型A和对象类型Y的属性类型B中出现所有simhash值的集合为 中包含的对象数量为属性值xi在对象类型X的属性类型A和对象类型Y的属性类型B中的出现概率分别是和那么对象类型X的属性类型A和对象类型Y的属性类型B的分布的散度的计算方法如下:
其中abs是对括号内的算式取绝对值。
步骤B3:根据属性值分布散度获取第一属性和第二属性的相关度。
对象类型X的属性类型A和对象类型Y的属性类型B的相关度cor(XA,YB)的计算方法如(10):
cor(XA,YB)=1-divergence(XA,YB) (10)
经过步骤B1至B3的操作,可以完成计算两个属性之间的相关度。通过计算两个属性之间的相关度,可以判断两个属性是否为相同的属性。
在步骤106中,根据所述simhash值分别获取所述第一对象的各属性与所述第二对象的各属性之间关系的权重。
根据simhash值分别获取第一对象的各属性与第二对象的各属性之间关系的权重的具体步骤可以包括:
步骤C1:获取各属性值在第一属性与第二属性的合集中的属性值出现概率,各属性值包括第一属性的属性值与第二属性的属性值。
设对象类型X包含NX个对象,对象类型Y包含NY个对象,X的属性类型A和对象类型Y的属性类型B中出现了NAB个不相同的属性值,(因为每个属性值对应一个simhash值,也即出现了NAB个不相同的simhash值),第i个属性值vABi的simhash值simhashABi在X的属性类型A和对象类型Y的属性类型B中共出现了ni次,那么属性值vABi在对象类型X的属性类型A以及对象类型Y的属性类型B中的出现概率pABi的计算方法如下:
其中,NX表示第一对象所属的第一对象类型X包括的第一对象数量,NY表示第二对象所属的第二对象类型Y包括的第二对象数量,ni表示第一属性与第二属性的属性值合集中第i个属性值在第一属性与第二属性中的总出现次数,A表示第一属性,B表示第二属性,表示第i个属性值在第一属性与第二属性的属性值合集中的出现概率。
步骤C2:根据属性值出现概率获取第一属性和第二属性的属性值合集的熵。
其中,NAB表示第一属性与第二属性的属性值合集中的属性值数量。
经过步骤C1至C2的操作,可以完成计算两个属性之间关系的权重。通过获取两个属性之间的权重,可以判断两个属性之间的相似度是否重要。例如,当第一属性和第二属性均为性别时,则两个属性的合集的熵会比当第一属性和第二属性均为姓名时低,即在前者的情况下,分别属于第一对象与第二对象的第一属性与第二属性即使相同,也不能有效衡量两个对象的相似度,因此,在判断两个对象的相似度时性别相同的权重比姓名相同的权重小。
在步骤108中,根据相关度与权重获取第一对象和第二对象之间的相似度。
根据相关度与权重获取第一对象和第二对象之间的相似度具体可以包括:
步骤D1:获取第一对象的第一属性的属性值和第二对象的第二属性的属性值之间的相似度。
其中,表示对所述第一对象的所述第一属性A的属性值求simhash值,所述第一对象属于对象类型X;表示对所述第二对象的所述第二属性B的属性值求simhash值,所述第二对象属于对象类型Y;表示对和的simhash值求海明距离,所述海明距离为两个长整数的二进制表示的对应位置的不同字符的个数。式(13)表示如果两个属性的simhash值的海明距离大于3时其相似度为0,否则为1。
步骤D2:判断第一对象与第二对象是否完全相同。
设对象x属于对象类型X,对象类型X有n个属性类型,对象y属于对象类型Y,对象类型Y有m个属性类型,x的属性的向量表示为<x1,...xn>T,y的属性的向量表示为<y1,...ym>T,x和y的相似度sim(x,y)的计算方法如下:
对x创建一个长度为n的长整型数组A,对y创建一个长度为m的长整型数组B,将x和y的属性的向量表示转换为simhash值的向量表示,即将x表示为<simhash(x1),...simhash(xn)>T,y的属性的向量表示转换为simhash值的向量表示,即将y表示为<simhash(y1),...simhash(ym)>T,将simhash(x1),...simhash(xn)按从小到大排序为simhash(x’1),...simhash(x’n),然后顺序写入数组A中,即A[i]=simhash(x’i),其中i∈[0,n-1],将simhash(y1),...simhash(ym)按从小到大排序为simhash(y’1),...simhash(y’m),然后顺序写入数组B中,即B[i]=simhash(y’i),其中i∈[0,n-1],比较A和B是否完全相同(即n等于m且A[i]等于B[i],其中i∈[0,max(n-1,m-1)],max(n-1,m-1)指n-1,m-1中较大的数),如果完全相同则x和y的相似度sim(x,y)为1。
步骤D3:当第一对象与第二对象不完全相同时,获取第一对象与第二对象之间的相似度。
所述获取所述第一对象与所述第二对象之间的相似度sim(x,y)包括通过以下方程获取:
其中,x表示所述第一对象,y表示所述第二对象,n表示所述第一对象的属性类型数量,m表示所述第二对象的属性类型数量,cor(Xi,Yj)表示所述第一对象的第i个属性与所述第二对象的第j个属性之间的相似度。
经过步骤D1至D3的操作,可以完成计算两个对象之间的相似度的操作。
下面通过具体实施例来对上述方法100进行详细说明。
设某数据库的2个表中分别有如下数据,其中表1中所包含数据的对象类型为“人物1”,表2中所包含数据的对象类型为“人物2”:
表1:
姓名 | 毕业学校 | 手机 | 单位地址 |
张三 | 北京大学 | 13912345678 | 北京海淀区颐和园路 |
李四 | 南开大学 | 13512345678 | 北京海淀区双清路 |
表2:
姓名 | 性别 | 地址 |
张三 | 男 | 北京海淀区颐和园路 |
王五 | 女 | 北京海淀区颐和园路 |
步骤A、计算属性的simhash值。
步骤A1:将上述表中的所有属性转换为文本格式。
步骤A2:用词向量的形式表示属性值。
上述表中的属性所转换成的词向量形式为:
步骤A3:将词转换成64位长整数,用该长整数表示该词。
选择一个哈希函数f,将词t转换成64位长整数型的哈希值h,即:
h=f(t) (1)
那么使用(1)可以将对象x的属性a的取值v的词向量表示<t1,t2,...tn>T转换成哈希值表示:<h1,h2,...hn>T,其中:
hi=f(ti) i∈[1,n]
上述各词使用哈希函数转换成的长整数分别为:
词 | 哈希值 |
张三 | 1081989810476510606 |
李四 | 1081989810476577778 |
王五 | 1081989810476672782 |
北京 | 1081989810476415258 |
大学 | 1081989810476466628 |
南开 | 1081989810476421422 |
13912345678 | -8319728325564692778 |
13512345678 | -8319731737128842542 |
海淀区 | -3351804022643473620 |
颐和园路 | 6774539740632176899 |
双清路 | -3351804022649771183 |
男 | 34902897112150514 |
女 | 34902897112143406 |
步骤A4:计算每个哈希值的权重。
上述2个表中共有4个对象,哈希值出现的次数m及其权值如下表所示:
步骤A5:计算属性值的simhash值。
1、将每个属性值转成若干个长度为64的整数数组,数组中的每个元素的值等于其对应的哈希值的相应位的值,例如,属性值“张三”表示为1个长度为64的整数数组如下:
[0,1,1,1,0,0,0,1,1,0,1,1,0,1,1,0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,1,1,0,1,1,0,1,1,0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0]
属性值“北京海淀区双清路”表示为3个长度为64的整数数组如下:
[0,1,0,1,1,0,0,0,1,0,0,1,1,1,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,1,0,0,1,1,1,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0],
[0,0,1,1,0,1,0,0,1,1,0,0,0,0,1,0,0,0,1,1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,1,1,0,0,0,0,1,0,0,0,1,1,1,0,0,1,1,0,0,0,0,0,0,0],
[1,0,0,0,1,0,1,0,1,1,0,1,0,1,0,0,0,0,1,1,1,1,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,1,1,0,1,0,1,0,0,0,0,1,1,1,1,0,0,1,0,0,0,0,0,0,0]
2、修改每个数组中的每个元素值。如果为1,将其修改为对应的哈希值的权重;如果为0,将其修改为对应的哈希值的权重的负值。例如,词“张三”的哈希值的权值wh为2,因此其整数数组里的值修改为:
[-2,2,2,2,-2,-2,-2,2,2,-2,2,2,-2,2,2,-2,2,2,-2,2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,2,2,2,-2,-2,-2,2,2,-2,2,2,-2,2,2,-2,2,2,-2,2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2]
词“北京”、“海淀区”、“双清路”的哈希值的权值分别是1、1、4,因此其整数数组里的值修改为:
[-1,1,-1,1,1,-1,-1,-1,1,-1,-1,1,1,1,1,1,1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,-1,1,1,-1,-1,-1,1,-1,-1,1,1,1,1,1,1,-1,-1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],
[-1,-1,1,1,-1,1,-1,-1,1,1,-1,-1,-1,-1,1,-1,-1,-1,1,1,1,-1,-1,1,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,-1,1,-1,-1,1,1,-1,-1,-1,-1,1,-1,-1,-1,1,1,1,-1,-1,1,1,-1,-1,-1,-1,-1,-1,-1],
[4,-4,-4,-4,4,-4,4,-4,4,4,-4,4,-4,4,-4,-4,-4,-4,4,4,4,4,-4,-4,4,-4,-4,-4,-4,-4,-4,-4,4,-4,-4,-4,4,-4,4,-4,4,4,-4,4,-4,4,-4,-4,-4,-4,4,4,4,4,-4,-4,4,-4,-4,-4,-4,-4,-4,-4]
3、对于属性值v创建另一个64位的整数数组s,其每个元素等于所有数组a的相应位置的元素的加和,即:
例如属性值“张三”的整数数组s为:
[-2,2,2,2,-2,-2,-2,2,2,-2,2,2,-2,2,2,-2,2,2,-2,2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,2,2,2,-2,-2,-2,2,2,-2,2,2,-2,2,2,-2,2,2,-2,2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2]
而属性值“北京海淀区双清路”的整数数组s为:
[2,-4,-4,-2,4,-4,2,-6,6,4,-6,4,-4,4,-2,-4,-4,-6,4,6,4,2,-6,-4,4,-6,-6,-6,-6,-6,-6,-6,2,-4,-4,-2,4,-4,2,-6,6,4,-6,4,-4,4,-2,-4,-4,-6,4,6,4,2,-6,-4,4,-6,-6,-6,-6,-6,-6,-6]
4、修改整数数组s中每个元素的值,方法为:如果s[j]大于0,s[j]修改为1,否则修改为0。即:
s[j]=1 if s[j]≤0
s[j]=0 if s[j]≤0 (6)
例如,属性值“张三”的整数数组s修改为:
[0,1,1,1,0,0,0,1,1,0,1,1,0,1,1,0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,1,1,0,1,1,0,1,1,0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0]
而属性值“北京海淀区双清路”的整数数组s修改为:
[1,0,0,0,1,0,1,0,1,1,0,1,0,1,0,0,0,0,1,1,1,1,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,1,1,0,1,0,1,0,0,0,0,1,1,1,1,0,0,1,0,0,0,0,0,0,0]
5、计算属性v的simhash值simhashv,方法如(7):
例如,属性值“张三”的simhash值为1497884,而属性值“北京海淀区双清路”的simhash值为41440930。
各属性的simhash值如下表所示:
属性值 | simhash值 |
张三 | 1497884 |
李四 | 1632228 |
王五 | 1822236 |
北京大学 | 1409928 |
南开大学 | 1319516 |
13912345678 | 3723234732 |
13512345678 | 1003001252 |
北京海淀区颐和园路 | 35369492 |
北京海淀区双清路 | 41440930 |
男 | 58340 |
女 | 44124 |
步骤B、计算两个属性之间的相关度;
具体为:
步骤B1:计算某个属性中的某个属性值的出现概率。
设对象类型X包含NX个对象,(因为每个属性值对应一个simhash值,也即出现了NA个不相同的simhash值),第i个属性值vAi的simhash值simhashAi在对象类型X的属性类型A中出现了ni次,那么属性值vAi在对象类型X的属性类型A中的出现概率pAi的计算方法如下:
PAi=ni/NX (8)
例如:
对象类型人物1包含2个对象,人物1的属性类型“姓名”出现了2个不相同的属性值,第1个属性值“张三”在人物1的属性类型“姓名”中出现了1次,那么属性值“张三”在对象类型“人物1”的属性类型“姓名”中出现的概率:
步骤B2:计算两个属性的分布的散度,方法如下:
设对象类型X的属性类型A和对象类型Y的属性类型B中出现所有simhash值的集合为 中包含的对象数量为属性值xi在对象类型X的属性类型A和对象类型Y的属性类型B中的出现概率分别是和那么对象类型X的属性类型A和对象类型Y的属性类型B的分布的散度divergence(XA,YB)的计算方法如下:
其中abs是对括号中的算式取绝对值。
例如:对象类型“人物1”的属性类型“姓名”和对象类型“人物2”的属性类型“姓名”中出现所有simhash值的集合是:{1497884,1632228,1822236},它们在在对象类型“人物1”的属性类型“姓名”和对象类型“人物2”的属性类型“姓名”中的出现概率如下表:
那么对象类型“人物1”的属性类型“姓名”和对象类型“人物2”的属性类型“姓名”的分布的散度为:
步骤B3:计算两个属性的相关度。
对象类型X的属性类型A和对象类型Y的属性类型B的相关度cor(XA,YB)的计算方法如(10):
cor(XA,YB)=1-divergence(XA,YB) (10)
例如:对象类型“人物1”的属性类型“姓名”和对象类型“人物2”的属性类型“姓名”的相关度:
cor(XA,YB)=1-0.5=0.5
经过步骤B1至B3的操作,完成计算两个属性之间的相关度的操作。
步骤C:计算两个属性之间关系的权重;
具体为:
步骤C1,获取各属性值在第一属性与第二属性的合集中的属性值出现概率,各属性值包括第一属性的属性值与第二属性的属性值。
设对象类型X包含NX个对象,对象类型Y包含NY个对象,X的属性类型A和对象类型Y的属性类型B中出现了NAB个不相同的属性值,(因为每个属性值对应一个simhash值,也即出现了NAB个不相同的simhash值),第i个属性值vABi的simhash值simhashABi在X的属性类型A和对象类型Y的属性类型B中共出现了ni次,那么属性值vABi在对象类型X的属性类型A以及对象类型Y的属性类型B中的出现概率pABi的计算方法如下:
例如:对象类型“人物1”包含2个对象,对象类型“人物2”包含2个对象,“人物1”的属性类型“姓名”和“人物2”的属性类型“姓名”出现了3个不相同的属性值,第1个属性值“张三”的simhash值在“人物1”的属性类型“姓名”和“人物2”的属性类型“姓名”中共出现了2次,那么属性值“张三”在对象类型“人物1”的属性类型“姓名”中出现的概率:
属性值“张三”在对象类型“人物1”的属性类型“姓名”以及对象类型“人物2”的属性类型“姓名”中出现的概率为:
步骤C2,根据属性值出现概率获取第一属性和第二属性的属性值合集的熵。
经过步骤C,完成计算两个属性之间关系的权重的操作。
步骤D:计算两个对象之间的相似度;
具体为:
步骤D1:计算两个对象的两个属性值之间的相似度,设对象x属于对象类型X,其属性类型A的属性值为vxA,对象y属于对象类型Y,其属性类型B的属性值为vyB,对象x的属性vxA和对象y的属性vyB的相似度的计算方法如(13):
例如:“北京大学”和“南开大学”的simhash值分别为1409928和1319516,其海明距离为8,因此其相似度为0。
步骤D2:判断第一对象与第二对象是否完全相同。
设对象x属于对象类型X,对象类型X有n个属性类型,对象y属于对象类型Y,对象类型Y有m个属性类型,x的属性的向量表示为<x1,...xn>T,y的属性的向量表示为<y1,...ym>T,x和y的相似度sim(x,y)的计算方法如下:
对x创建一个长度为n的长整型数组A,对y创建一个长度为m的长整型数组B,将x和y的属性的向量表示转换为simhash值的向量表示,即将x表示为<simhash(x1),...simhash(xn)>T,y的属性的向量表示转换为simhash值的向量表示,即将y表示为<simhash(y1),...simhash(ym)>T,将simhash(x1),...simhash(xn)按从小到大排序为simhash(x’1),...simhash(x’n),然后顺序写入数组A中,即A[i]=simhash(x’i),其中i∈[0,n-1],将simhash(y1),...simhash(ym)按从小到大排序为simhash(y’1),...simhash(y’m),然后顺序写入数组B中,即B[i]=simhash(y’i),其中i∈[0,n-1],比较A和B是否完全相同(即n等于m且A[i]等于B[i],其中i∈[0,max(n-1,m-1)],max(n-1,m-1)指n-1,m-1中较大的数),如果完全相同则x和y的相似度sim(x,y)为1。
步骤D3:当第一对象与第二对象不完全相同时,获取第一对象与第二对象之间的相似度。
所述获取所述第一对象与所述第二对象之间的相似度sim(x,y)包括通过以下方程获取:
例如:
对象类型“人物1”包含4个属性类型,对象“张三”有4个属性类型,对象类型“人物2”包含3个属性类型,其属性类型数量不相等,因此需要根据(14)来计算其相似度。
对象类型“人物1”中的对象“张三”和对象类型“人物2”中的对象“张三”的相似度为:
sim(x,y)=0.5*1.03*1+0.5*0.561*1=0.28
经过步骤D1至D2的操作,完成计算两个对象之间的相似度的操作。
对应于上述方法实施例,本公开还提供一种用于获取对象相似度的装置,可以用于执行上述方法实施例。
图2示意性示出本公开示例性实施例中一种用于获取基于属性值的对象之间的相似度的装置的方框图。
参考图2,装置200可以包括形式变换单元202、相关度获取单元204、权重获取单元206以及相似度获取单元208。
形式变换单元202可以用于分别获取第一对象和第二对象的属性值集合的simhash值;
相关度获取单元204可以用于根据所述simhash值分别获取所述第一对象的各属性与所述第二对象的各属性之间的相关度;
权重获取单元206可以用于根据所述simhash值分别获取所述第一对象的各属性与所述第二对象的各属性之间关系的权重;
相似度获取单元208可以用于根据所述相关度与所述权重获取所述第一对象和所述第二对象之间的相似度。
在本公开的一种示例性实施例中,所述相似度获取单元获取所述所述
第一对象和所述第二对象之间的相似度包括通过以下方程获取:
其中,x表示所述第一对象,y表示所述第二对象,n表示所述第一对象的属性类型数量,m表示所述第二对象的属性类型数量,cor(Xi,Yj)表示所述第一对象的第i个属性与所述第二对象的第j个属性之间的相似度。
由于装置200的各功能已在其对应的方法实施例中予以详细说明,本公开于此不再赘述。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由所附的权利要求指出。
Claims (10)
1.一种用于获取基于属性值的对象之间的相似度的方法,其特征在于,包括:
分别获取第一对象和第二对象的属性值集合的simhash值;
根据所述simhash值分别获取所述第一对象的各属性与所述第二对象的各属性之间的相关度;
根据所述simhash值分别获取所述第一对象的各属性与所述第二对象的各属性之间关系的权重;
根据所述相关度与所述权重获取所述第一对象和所述第二对象之间的相似度。
2.根据权利要求1所述的方法,其特征在于,根据所述simhash值分别获取所述第一对象的各属性与所述第二对象的各属性之间的相关度包括:
根据所述simhash值分别获取所述第一对象和所述第二对象的各属性值的出现概率;
根据所述出现概率获取第一属性和第二属性的属性值分布散度,所述第一属性和所述第二属性分别属于所述第一对象和所述第二对象;
根据所述属性值分布散度获取所述第一属性和所述第二属性的相关度。
3.根据权利要求2所述的方法,其特征在于,根据所述simhash值分别获取所述第一对象的各属性与所述第二对象的各属性之间关系的权重包括:
获取各属性值在所述第一属性与所述第二属性的合集中的属性值出现概率,所述各属性值包括所述第一属性的属性值与所述第二属性的属性值;
根据所述属性值出现概率获取所述第一属性和所述第二属性的属性值合集的熵。
6.根据权利要求1所述的方法,其特征在于,根据所述相关度与所述权重获取所述第一对象和所述第二对象之间的相似度包括:
获取所述第一对象的第一属性的属性值和所述第二对象的第二属性的属性值之间的相似度;
判断所述第一对象与所述第二对象是否完全相同;
当所述第一对象与所述第二对象不完全相同时,获取所述第一对象与所述第二对象之间的相似度。
9.一种用于获取对象相似度的装置,其特征在于,包括:
形式变换单元,用于分别获取第一对象和第二对象的属性值集合的simhash值;
相关度获取单元,用于根据所述simhash值分别获取所述第一对象的各属性与所述第二对象的各属性之间的相关度;
权重获取单元,用于根据所述simhash值分别获取所述第一对象的各属性与所述第二对象的各属性之间关系的权重;
相似度获取单元,用于根据所述相关度与所述权重获取所述第一对象和所述第二对象之间的相似度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611177626.5A CN106599227B (zh) | 2016-12-19 | 2016-12-19 | 用于获取基于属性值的对象之间的相似度的方法与装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611177626.5A CN106599227B (zh) | 2016-12-19 | 2016-12-19 | 用于获取基于属性值的对象之间的相似度的方法与装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106599227A CN106599227A (zh) | 2017-04-26 |
CN106599227B true CN106599227B (zh) | 2020-04-17 |
Family
ID=58601597
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611177626.5A Active CN106599227B (zh) | 2016-12-19 | 2016-12-19 | 用于获取基于属性值的对象之间的相似度的方法与装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106599227B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107729571B (zh) * | 2017-11-23 | 2020-04-14 | 北京天广汇通科技有限公司 | 关系发现方法和装置 |
CN109241295B (zh) * | 2018-08-31 | 2021-12-24 | 北京天广汇通科技有限公司 | 一种非结构化数据中的特定实体关系的提取方法 |
CN109995576A (zh) * | 2019-02-13 | 2019-07-09 | 平安科技(深圳)有限公司 | 上网设备的识别方法、装置及存储介质、计算机设备 |
CN109782341B (zh) * | 2019-02-20 | 2020-05-22 | 西安交通大学 | 一种基于信息散度的地震数据属性提取方法 |
CN110443320A (zh) * | 2019-08-13 | 2019-11-12 | 北京明略软件***有限公司 | 事件相似度的确定方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104424254A (zh) * | 2013-08-28 | 2015-03-18 | 阿里巴巴集团控股有限公司 | 获取相似对象集合、提供相似对象信息的方法及装置 |
US9298757B1 (en) * | 2013-03-13 | 2016-03-29 | International Business Machines Corporation | Determining similarity of linguistic objects |
CN105677830A (zh) * | 2016-01-04 | 2016-06-15 | 北京大学 | 一种基于实体映射的异构媒体相似性计算方法及检索方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105718506B (zh) * | 2016-01-04 | 2019-03-05 | 胡新炜 | 一种科技项目查重对比的方法 |
-
2016
- 2016-12-19 CN CN201611177626.5A patent/CN106599227B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9298757B1 (en) * | 2013-03-13 | 2016-03-29 | International Business Machines Corporation | Determining similarity of linguistic objects |
CN104424254A (zh) * | 2013-08-28 | 2015-03-18 | 阿里巴巴集团控股有限公司 | 获取相似对象集合、提供相似对象信息的方法及装置 |
CN105677830A (zh) * | 2016-01-04 | 2016-06-15 | 北京大学 | 一种基于实体映射的异构媒体相似性计算方法及检索方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106599227A (zh) | 2017-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106599227B (zh) | 用于获取基于属性值的对象之间的相似度的方法与装置 | |
WO2022126971A1 (zh) | 基于密度的文本聚类方法、装置、设备及存储介质 | |
Bickel et al. | A nonparametric view of network models and Newman–Girvan and other modularities | |
Srivastava | A test for the mean vector with fewer observations than the dimension under non-normality | |
CN105022754B (zh) | 基于社交网络的对象分类方法及装置 | |
Bayraktar | Equidistribution of zeros of random holomorphic sections | |
CN110457486A (zh) | 基于知识图谱的人物实体对齐方法及装置 | |
CN108304380A (zh) | 一种融合学术影响力的学者人名消除歧义的方法 | |
Zhang et al. | Model selection procedure for high‐dimensional data | |
CN102693316B (zh) | 基于线性泛化回归模型的跨媒体检索方法 | |
CN105930873A (zh) | 一种基于子空间的自步跨模态匹配方法 | |
CN104951562A (zh) | 一种基于vlad双重自适应的图像检索方法 | |
CN106203165A (zh) | 基于可信云计算的信息大数据分析支撑方法 | |
CN105701227B (zh) | 一种基于局部关联图的跨媒体相似性度量方法和检索方法 | |
CN108614932B (zh) | 基于边图的线性流重叠社区发现方法、***及存储介质 | |
Das et al. | On 𝐼-convergence of nets in locally solid Riesz spaces | |
Möttönen et al. | Asymptotic theory of the spatial median | |
CN105160357A (zh) | 基于全局一致性和局部拓扑的多模态数据子空间聚类方法 | |
CN104809478A (zh) | 一种面向大规模三维重建的图像分块方法及装置 | |
CN112632857A (zh) | 一种配电网的线损确定方法、装置、设备和存储介质 | |
Abe et al. | Existence of solutions for the nonlinear partial differential equation arising in the optimal investment problem | |
CN110287302B (zh) | 一种国防科技领域开源信息置信度确定方法及*** | |
Tang et al. | Feature screening in ultrahigh-dimensional partially linear models with missing responses at random | |
Ma et al. | Fuzzy nodes recognition based on spectral clustering in complex networks | |
CN112348041A (zh) | 日志分类、日志分类训练方法及装置、设备、存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |