地址相似度算法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、计算过程:
1、根据输入一个地址,生成一个地址每个字的数组:
T1={w1,w2,w3..wn};
比如:有两个地址广东省梅州市江南彬芳大道金利来步街xx号和广东省梅州市梅江区彬芳大道金利来步行街xx号,会生成
T1={广,东,省,梅,州,市,江,南,彬,芳,大,道,金,利,来,步,街,xx,号};
T2={广,东,省,梅,州,市,梅,江,区,彬,芳,大,道,金,利,来,步,行,街,xx,号};
2、这两个地址的并集,对出现多次的字只保留一次
比如:T={广,东,省,州,市,梅,江,南,区,彬,芳,大,道,金,利,来,步,行,街,xx,号};
3、求出每个t中每个词在t1和t2中出现的次数得到m和n
m={m1,m2,m3..mn};
n={n1,n2,n3.nn};
比如:t1和t2可以得到两个出现次数的数组
m={1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1};
n={1,1,1,1,1,2,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1};
4、计算相似度
Sim=m1*n1+m2*n2+..mn*nn/sqrt(m1*m1+m2*m2+..mn*mn)* sqrt(n1*n1+n2*n2+..nn*nn)
二、计算原理:
假如这两个数组是只有{x1,y1}和{x2,y2}的数组,这两个数组可以在平面直角坐标系中用两个由原点出发的向量来表示,我们可以通过向量的夹角的大小来判断向量的相似度,夹角越小,相似度越高。计算向量的夹角,我们可以使用余弦定理,余弦定理用坐标表示的公式:
余弦的这种计算方法不止对于2维向量成立,对n维向量也成立,n维向量表示为:
所以我们可以使用这个公式得出余弦的值,值越接近1,夹角越小,两个向量越相似,这种计算方式叫做余弦相似性。