导航:首页 > 源码编译 > 相似性度量的算法

相似性度量的算法

发布时间:2022-10-19 23:46:45

❶ 怎么计算两组数据的相似程度

楼上比较方差(∑σ^2)做法不见得全面。所谓“数据相似”,应是“两组数据在某个有序排列之下具有同等变化规律”的含义。比如,两组数据是两天的温度变化曲线、试验参数序列...

所以,按照以上假设,那么需要采用“统计回归处理”方法,看二者回归后函数参量的相似性。其他数据处理手段还有:拟合(具体有很多种,应用于不同领域)、(等距序列)谱分析法...

建议搜索,关键词:回归处理 拟合算法 傅立叶分析

❷ 怎么比较两个向量组相似度

相关性是数据属性相关性的度量方法,相似度是数据对象相似性度量的方法,数据对象由多个数据属性描述,数据属性的相关性由相关系数来描述,数据对象的相似性由某种距离度量。许多数据分析算法会涉及相似性度量和相关性度量,如聚类、KNN等。

相关性度量

相关性用相关系数来度量,相关系数种类如下图所示。相关系数绝对值越大表是相关性越大,相关系数取值在-1–1之间,0表示不相关。各系数计算表达式和取值范围参考 相关性与相似性度量
这里写图片描述

相似性度量

相似度用距离来度量,相似度度量指标种类如下图所示。相似度通常是非负的,取值在0-1之间。距离越大,相似性越小,在应用过程中要注意计算的是相似度还是距离。
这里写图片描述
Jaccard(杰卡德相似系数)
两个集合A和B的交集元素在A,B的并集中所占的比例 这里写图片描述
杰卡德距离用两个集合中不同元素占所有元素的比例来衡量两个集合的区分度这里写图片描述
Cosine(余弦相似度)
在二维空间中向量A(x1,y1)与向量B(x2,y2)的夹角余弦公式这里写图片描述
夹角余弦取值范围为[-1,1]。当两个向量的方向重合时夹角余弦取最大值1,当两个向量的方向完全相反夹角余弦取最小值-1,两个方向正交时夹角余弦取值为0.

Minkowski Distance(闵可夫斯基距离)
两个n维变量间的闵可夫斯基距离定义为:这里写图片描述
当p=1时,就是曼哈顿距离,两点间各边距离之和
当p=2时,就是欧氏距离,两点间直线距离
当p→∞时,就是切比雪夫距离,所有边距离的最大值
闵氏距离的缺点(1)数据量纲不同,无法直接进行距离计算,需要先对数据进行归一化(2)没有考虑各个分量的分布(期望,方差等)。下图展示了不同距离函数是怎么逼近中心的在这里插入图片描述

Mahalanobis Distance(马氏距离)
马氏距离计算公式为这里写图片描述
S为协方差矩阵, 若协方差矩阵是单位矩阵则变为欧式距离。马氏距离的优点是量纲无关、排除变量之间的相关性的干扰。

Hamming distance(汉明距离)
两个等长字符串s1与s2之间的汉明距离定义为将其中一个变为另外一个所需要作的最小替换次数。例如字符串“1111”与“1010”之间的汉明距离为2。信息编码时为了增强容错性,应使得编码间的最小汉明距离尽可能大。

K-L散度(相对熵)
是衡量两个分布(P、Q)之间的距离;越小越相似这里写图片描述
Hellinger距离
在概率论和统计理论中,Hellinger距离被用来度量两个概率分布的相似度。它是f散度的一种(f散度——度量两个概率分布相似度的指标)。
概率密度函数分别表示为 f 和 g,两个概率密度函数的Hellinger距离的平方为
在这里插入图片描述

具有混合类型属性的对象可以将相同类型的属性划分为一组,对每组属性分析继续相似度度量,也可以分别对每个属性进行相似度度量再加权。

其他类型的距离度量可以参考 18种和“距离(distance)”、“相似度(similarity)”相关的量的小结

❸ 余弦相似度计算公式

余弦的计算公式为:

❹ 如何计算网站网页相似度

据统计,网页上的大部分相同的页面占29%,而主体内容完全相同的占22%,这些重复网页有的是没有一点改动的拷贝,有的在内容上稍作修改,比如同一文章的不同版本,一个新一点,一个老一点,有的则仅仅是网页的格式不同(如 HTML, Postscript),文献[Models and Algorithms for Duplicate Document Detection 1999年]将内容重复归结为以下四个类型:
1.如果2篇文档内容和格式上毫无差别,则这种重复叫做full-layout plicate。
2.如果2篇文档内容相同,但是格式不同,则叫做full-content plicates
3.如果2篇文档有部分重要的内容相同,并且格式相同,则称为partial-layout plicates
4.如果2篇文档有部分重要的内容相同,但是格式不同,则称为partial-content plicates
网页去重的任务就是去掉网页中主题内容重复的部分。它和网页净化(noise rection),反作弊(antispam) 是搜索引擎的3大门神
去重在我看来起码有四好处:减少存储;增强检索效率;增强用户的体验;死链的另一种解决方案。
目前从网络的搜索结果来看,去重工作做的不是很完善,一方面可能是技术难度(precision和recall都超过90%还是很难的);另一方面可能是重复的界定,比如转载算不算重复?所以另一项附属的工作是对个人可写的页面(PWP)进行特殊的处理,那么随之而来的工作就是识别PWP页面。^_^这里就不扯远呢。
问题如何解决?
网页的deplication,我们的算法应该是从最简单的开始,最朴素的算法当然是
对文档进行两两比较,如果A和B比较,如果相似就去掉其中一个
然而这个朴素的算法,存在几个没有解决的问题:
0.要解决问题是什么?full-layout?full-content?partial-layout还是partial-content?
1. 怎么度量A 和 B的相似程度
2. 去掉A还是去掉B,如果A ~B(~表相似,!~表示不相似),B~C 但是 A!~C,去掉B的话,C就去不掉。另一个更深入的问题是,算法的复杂度是多少?假设文档数为n,文档平均长度为m,如果相似度计算复杂度为m的某一个复杂度函数:T=T(m),文档两两比较的复杂度是O(n^2),合起来是O(n^2 * T(m)) . 这个复杂度是相当高的,想搜索引擎这样处理海量数据的系统,这样的复杂度是完全不能接受的,所有,另外三个问题是:
3. 如何降低相似度计算的复杂化度
4. 如何减少文档比较的复杂度
5. 超大数据集该如何处理
第0个问题是,我们要解决的关键,不同的问题有不同的解决方法,从网页的角度来看,结构的重复并不能代表是重复,比如产品展示页面,不同的产品展示页面就有相同的文档结构。内容来看,复制网站会拷贝其他网站的主要内容,然后加些广告或做些修改。所以,解决的问题是,partial-content deplication,那么首先要抽取网页的主体内容。算法变成:
抽取文档主体内容,两两比较内容的相似性,如果A和B相似,去掉其中一个
其次,问题2依赖于问题1的相似度度量,如果度量函数具有传递性,那么问题2就不存在了,如果没有传递性,我们的方法是什么呢?哦,那就找一个关系,把相似关系传递开嘛,简单,聚类嘛,我们的框架可以改成:
抽取文档主体内容,两两比较内容的相似性,如果A和B相似,把他们聚类在一起,最后一个类里保留一个page
最后,归纳为几个步骤
第一步:识别页面的主题内容,网页净化的一部分,以后讨论
第二步:计算相似度
第三步:聚类算法,计算出文档那些文档是相似的,归类。
核心的问题是,“如何计算相似度?”这里很容易想到的是
1. 计算内容的编辑距离edit distance(方法很有名,但是复杂度太高)
2. 把内容分成一个个的token,然后用集合的jaccard度量(好主意,但是页面内容太多,能不能减少啊?)
好吧,但是,当然可以减少集合的个数呢,采样,抽取满足性质的token就可以啦,如满足 mod m =0 的token,比如有实词?比如stopwords。真是绝妙的注意.在把所有的idea放一起前,突然灵光一现,啊哈,
3. 计算内容的信息指纹,参考google研究员吴军的数学之美系列。
把他们放在一起:
第一步:识别页面的主题内容,网页净化的一部分,以后讨论
第二步:提取页面的特征。将文章切分为重合和或不重合的几个结合,hash out
第三步:用相似度度量来计算集合的相似性,包括用信息指纹,Jaccard集合相似度量,random projection等。
第四步:聚类算法,计算出文档那些文档是相似的,归类。
方法分类:
按照利用的信息,现有方法可以分为以下三类
1.只是利用内容计算相似
2.结合内容和链接关系计算相似
3.结合内容,链接关系以及url文字进行相似计算
一般为内容重复的去重,实际上有些网页是
按照特征提取的粒度现有方法可以分为以下三类
1.按照单词这个级别的粒度进行特征提取.
2.按照SHINGLE这个级别的粒度进行特征提取.SHNGLE是若干个连续出现的单词,级别处于文档和单词之间,比文档粒度小,比单词粒度大.
3.按照整个文档这个级别的粒度进行特征提取
算法-具体见真知
1. I-Match
2. Shingling
3. Locality Sensitive Hashing.(SimHash)
4. SpotSigs
5. Combined

❺ 如何度量两组数的相似性

相似性度量即对某两者直接的相似性进行度量。 相似性的度量方法很多,有的用于专门领域,也有的适用于特定类型的数据,如何选择相似性的度量方法是一个相当复杂的问题,聚类通常按照对象间的相似性进行分组,因此如何描述对象间相似性是聚类的重..

❻ 文本相似度 之余弦夹角 度量算法

相似度度量(Similarity),即计算个体间的相似程度,相似度度量的值越小,说明个体间相似度越小,相似度的值越大说明个体差异越大。

对于多个不同的文本或者短文本对话消息要来计算他们之间的相似度如何,一个好的做法就是将这些文本中词语,映射到向量空间,形成文本中文字和向量数据的映射关系,通过计算几个或者多个不同的向量的差异的大小,来计算文本的相似度。下面介绍一个详细成熟的向量空间余弦相似度方法计算相似度

上图两个向量a,b的夹角很小可以说a向量和b向量有很高的的相似性,极端情况下,a和b向量完全重合。如下图:

上图中:可以认为a和b向量是相等的,也即a,b向量代表的文本是完全相似的,或者说是相等的。如果a和b向量夹角较大,或者反方向。

如上图三: 两个向量a,b的夹角很大可以说a向量和b向量有很底的的相似性,或者说a和b向量代表的文本基本不相似。那么是否可以用两个向量的夹角大小的函数值来计算个体的相似度呢?

向量空间余弦相似度理论就是基于上述来计算个体相似度的一种方法。下面做详细的推理过程分析。

想到余弦公式,最基本计算方法就是初中的最简单的计算公式,计算夹角的余弦定值公式为:

但是这个是只适用于直角三角形的,而在非直角三角形中,余弦定理的公式是
三角形中边a和b的夹角 的余弦计算公式为:

在向量表示的三角形中,假设a向量是(x1, y1),b向量是(x2, y2),那么可以将余弦定理改写成下面的形式:

扩展,如果向量a和b不是二维而是n维,上述余弦的计算法仍然正确。假定a和b是两个n维向量,a是 ,b是 ,则a与b的夹角 的余弦等于:

下面举一个例子,来说明余弦计算文本相似度

举一个例子来说明,用上述理论计算文本的相似性。为了简单起见,先从句子着手。

句子A

句子B

怎样计算上面两句话的相似程度?

基本思路是:如果这两句话的用词越相似,它们的内容就应该越相似。因此,可以从词频入手,计算它们的相似程度。

句子A

句子B

这只,皮靴,号码,大了。那只,合适,不,小,很

句子A

句子B

句子A

句子B

到这里,问题就变成了如何计算这两个向量的相似程度。我们可以把它们想象成空间中的两条线段,都是从原点([0, 0, ...])出发,指向不同的方向。两条线段之间形成一个夹角,如果夹角为0度,意味着方向相同、线段重合,这是表示两个向量代表的文本完全相等;如果夹角为90度,意味着形成直角,方向完全不相似;如果夹角为180度,意味着方向正好相反。因此,我们可以通过夹角的大小,来判断向量的相似程度。夹角越小,就代表越相似。

使用上面的多维向量余弦计算公式

计算两个句子向量

句子A

和句子B

的向量余弦值来确定两个句子的相似度。

计算过程如下:

计算结果中夹角的余弦值为0.81非常接近于1,所以,上面的句子A和句子B是基本相似的

由此,我们就得到了文本相似度计算的处理流程是:

❼ 计算图像相似度的算法有哪些

SIM = Structural SIMilarity(结构相似性),这是一种用来评测图像质量的一种方法。由于人类视觉很容易从图像中抽取出结构信息,因此计算两幅图像结构信息的相似性就可以用来作为一种检测图像质量的好坏.

首先结构信息不应该受到照明的影响,因此在计算结构信息时需要去掉亮度信息,即需要减掉图像的均值;其次结构信息不应该受到图像对比度的影响,因此计算结构信息时需要归一化图像的方差;最后我们就可以对图像求取结构信息了,通常我们可以简单地计算一下这两幅处理后的图像的相关系数.

然而图像质量的好坏也受到亮度信息和对比度信息的制约,因此在计算图像质量好坏时,在考虑结构信息的同时也需要考虑这两者的影响.通常使用的计算方法如下,其中C1,C2,C3用来增加计算结果的稳定性:
2u(x)u(y) + C1
L(X,Y) = ------------------------ ,u(x), u(y)为图像的均值
u(x)^2 + u(y)^2 + C1

2d(x)d(y) + C2
C(X,Y) = ------------------------,d(x),d(y)为图像的方差
d(x)^2 + d(y)^2 + C2

d(x,y) + C3
S(X,Y) = ----------------------,d(x,y)为图像x,y的协方差
d(x)d(y) + C3

而图像质量Q = [L(X,Y)^a] x [C(X,Y)^b] x [S(X,Y)^c],其中a,b,c分别用来控制三个要素的重要性,为了计算方便可以均选择为1,C1,C2,C3为比较小的数值,通常C1=(K1 x L)^2, C2=(K2 xL)^2, C3 = C2/2, K1 << 1, K2 << 1, L为像素的最大值(通常为255).
希望对你能有所帮助。

❽ (转)各种类型的数据的相异度(相似度)的度量

1.对于标量

标量也就是无方向意义的数字,也叫标度变量。现在先考虑元素的所有特征属性都是标量的情况。例如,计算X={2,1,102}和Y={1,3,2}的相异度。一种很自然的想法是用两者的欧几里得距离来作为相异度,欧几里得距离的定义如下:

其意义就是两个元素在欧氏空间中的集合距离,因为其直观易懂且可解释性强,被广泛用于标识两个标量元素的相异度。将上面两个示例数据代入公式,可得两者的欧氏距离为:

除欧氏距离外,常用作度量标量相异度的还有曼哈顿距离和闵可夫斯基距离,两者定义如下:

欧氏距离和曼哈顿距离可以看做是闵可夫斯基距离在p=2和p=1下的特例。另外这三种距离都可以加权,这个很容易理解,不再赘述。

下面要说一下标量的规格化问题。上面这样计算相异度的方式有一点问题,就是 取值范围大的属性对距离的影响高于取值范围小的属性 。例如上述例子中第三个属性的取值跨度远大于前两个,这样不利于真实反映真实的相异度,为了解决这个问题,一般要对属性值进行规格化。所谓规格化就是将各个属性值按比例映射到相同的取值区间,这样是为了平衡各个属性对距离的影响。通常将各个属性均映射到[0,1]区间,映射公式为:

其中max(ai)和min(ai)表示所有元素项中第i个属性的最大值和最小值。例如,将示例中的元素规格化到[0,1]区间后,就变成了X’={1,0,1},Y’={0,1,0},重新计算欧氏距离约为1.732。

2.对于二元变量

所谓二元变量是只能取0和1两种值变量,有点类似布尔值,通常用来标识是或不是这种二值属性。对于二元变量,上一节提到的距离不能很好标识其相异度,我们需要一种更适合的标识。一种常用的方法是用元素相同序位同值属性的比例来标识其相异度。

设有X={1,0,0,0,1,0,1,1},Y={0,0,0,1,1,1,1,1},可以看到,两个元素第2、3、5、7和8个属性取值相同,而第1、4和6个取值不同,那么相异度可以标识为3/8=0.375。一般的,对于二元变量,相异度可用“取值不同的同位属性数/单个元素的属性位数”标识。

上面所说的相异度应该叫做对称二元相异度。现实中还有一种情况,就是我们只关心两者都取1的情况,而认为两者都取0的属性并不意味着两者更相似。例如在根据病情对病人聚类时,如果两个人都患有肺癌,我们认为两个人增强了相似度,但如果两个人都没患肺癌,并不觉得这加强了两人的相似性,在这种情况下,改用“取值不同的同位属性数/(单个元素的属性位数-同取0的位数)”来标识相异度,这叫做非对称二元相异度。如果用1减去非对称二元相异度,则得到非对称二元相似度,也叫Jaccard系数,是一个非常重要的概念。

3.对于分类变量

分类变量是二元变量的推广,类似于程序中的枚举变量,但各个值没有数字或序数意义,如颜色、民族等等,对于分类变量,用“取值不同的同位属性数/单个元素的全部属性数”来标识其相异度。

4.对于序数变量

序数变量是具有序数意义的分类变量,通常可以按照一定顺序意义排列,如冠军、亚军和季军。对于序数变量,一般为每个值分配一个数,叫做这个值的秩,然后以秩代替原值当做标量属性计算相异度。

5、向量

其中||X||表示X的欧几里得范数。

要注意,余弦度量度量的不是两者的相异度,而是相似度!

参考文献:
算法杂货铺——k均值聚类(K-means) - T2噬菌体 - 博客园 http://www.cnblogs.com/leoo2sk/archive/2010/09/20/k-means.html
[各种类型的数据的相异度(相似度)的度量 #

各种类型的数据的相异度(相似度)的度量
]( http://blog.csdn.net/u010451580/article/details/53163634 )

❾ 全面归纳距离和相似度计算方法

距离(distance,差异程度)、相似度(similarity,相似程度)方法可以看作是以某种的距离函数计算元素间的距离,这些方法作为机器学习的基础概念,广泛应用于如:Kmeans聚类、协同过滤推荐算法、相似度算法、MSE损失函数等等。本文对常用的距离计算方法进行归纳以及解析,分为以下几类展开:

对于点x=(x1,x2...xn) 与点y=(y1,y2...yn) , 闵氏距离可以用下式表示:

闵氏距离是对多个距离度量公式的概括性的表述,p=1退化为曼哈顿距离;p=2退化为欧氏距离;切比雪夫距离是闵氏距离取极限的形式。

曼哈顿距离 公式:

欧几里得距离公式:

如下图蓝线的距离即是曼哈顿距离(想象你在曼哈顿要从一个十字路口开车到另外一个十字路口实际驾驶距离就是这个“曼哈顿距离”,此即曼哈顿距离名称的来源,也称为城市街区距离),红线为欧几里得距离:

切比雪夫距离起源于国际象棋中国王的走法,国际象棋中国王每次只能往周围的8格中走一步,那么如果要从棋盘中A格(x1,y1)走到B格(x2,y2)最少需要走几步?你会发现最少步数总是max(|x2-x1|,|y2-y1|)步。有一种类似的一种距离度量方法叫切比雪夫距离。

切比雪夫距离就是当p趋向于无穷大时的闵氏距离:

距离函数并不一定是距离度量,当距离函数要作为距离度量,需要满足:

由此可见,闵氏距离可以作为距离度量,而大部分的相似度并不能作为距离度量。

闵氏距离也是Lp范数(如p==2为常用L2范数正则化)的一般化定义。
下图给出了一个Lp球( ||X||p = 1 )的形状随着P的减少的可视化图:

距离度量随着空间的维度d的不断增加,计算量复杂也逐增,另外在高维空间下,在维度越高的情况下,任意样本之间的距离越趋于相等(样本间最大与最小欧氏距离之间的相对差距就趋近于0),也就是维度灾难的问题,如下式结论:

对于维度灾难的问题,常用的有PCA方法进行降维计算。

假设各样本有年龄,工资两个变量,计算欧氏距离(p=2)的时候,(年龄1-年龄2)² 的值要远小于(工资1-工资2)² ,这意味着在不使用特征缩放的情况下,距离会被工资变量(大的数值)主导, 特别当p越大,单一维度的差值对整体的影响就越大。因此,我们需要使用特征缩放来将全部的数值统一到一个量级上来解决此问题。基本的解决方法可以对数据进行“标准化”和“归一化”。

另外可以使用马氏距离(协方差距离),与欧式距离不同其考虑到各种特性之间的联系是(量纲)尺度无关 (Scale Invariant) 的,可以排除变量之间的相关性的干扰,缺点是夸大了变化微小的变量的作用。马氏距离定义为:

马氏距离原理是使用矩阵对两两向量进行投影后,再通过常规的欧几里得距离度量两对象间的距离。当协方差矩阵为单位矩阵,马氏距离就简化为欧氏距离;如果协方差矩阵为对角阵,其也可称为正规化的欧氏距离。

根据向量x,y的点积公式:

我们可以利用向量间夹角的cos值作为向量相似度[1]:

余弦相似度的取值范围为:-1~1,1 表示两者完全正相关,-1 表示两者完全负相关,0 表示两者之间独立。余弦相似度与向量的长度无关,只与向量的方向有关,但余弦相似度会受到向量平移的影响(上式如果将 x 平移到 x+1, 余弦值就会改变)。

另外,归一化后计算欧氏距离,等价于余弦值:两个向量x,y, 夹角为A,欧氏距离D=(x-y)^2 = x 2+y 2-2|x||y|cosA = 2-2cosA

协方差是衡量多维数据集中,变量之间相关性的统计量。如下公式X,Y的协方差即是,X减去其均值 乘以 Y减去其均值,所得每一组数值的期望(平均值)。

如果两个变量之间的协方差为正值,则这两个变量之间存在正相关,若为负值,则为负相关。

皮尔逊相关系数数值范围也是[-1,1]。皮尔逊相关系数可看作是在余弦相似度或协方差基础上做了优化(变量的协方差除以标准差)。它消除每个分量标准不同(分数膨胀)的影响,具有平移不变性和尺度不变性。

卡方检验X2,主要是比较两个分类变量的关联性、独立性分析。如下公式,A代表实际频数;E代表期望频数:

Levenshtein 距离是 编辑距离 (Editor Distance) 的一种,指两个字串之间,由一个转成另一个所需的最少编辑操作次数。允许的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。
像hallo与hello两个字符串编辑距离就是1,我们通过替换”a“ 为 ”e“,就可以完成转换。

汉明距离为两个等长字符串对应位置的不同字符的个数,也就是将一个字符串变换成另外一个字符串所需要替换的字符个数。例如:1011101 与 1001001 之间的汉明距离是 2,“toned” 与 “roses” 之间的汉明距离是 3

另外的,对于字符串距离来说,不同字符所占的份量是不一样的。比如”我乐了“ 与【“我怒了”,”我乐了啊” 】的Levenshtein 距离都是1,但其实两者差异还是很大的,因为像“啊”这种语气词的重要性明显不如“乐”,考虑字符(特征)权重的相似度方法有:TF-IDF、BM25、WMD算法。

Jaccard 取值范围为0~1,0 表示两个集合没有重合,1 表示两个集合完全重合。

但Dice不满足距离函数的三角不等式,不是一个合适的距离度量。

基础地介绍下信息熵,用来衡量一个随机变量的不确定性程度。对于一个随机变量 X,其概率分布为:

互信息用于衡量两个变量之间的关联程度,衡量了知道这两个变量其中一个,对另一个不确定度减少的程度。公式为:

如下图,条件熵表示已知随机变量X的情况下,随机变量Y的信息熵,因此互信息实际上也代表了已知随机变量X的情况下,随机变量Y的(信息熵)不确定性的减少程度。

JS 散度解决了 KL 散度不对称的问题,定义为:

群体稳定性指标(Population Stability Index,PSI), 可以看做是解决KL散度非对称性的一个对称性度量指标,用于度量分布之间的差异(常用于风控领域的评估模型预测的稳定性)。

psi与JS散度的形式是非常类似的,如下公式:

PSI的含义等同P与Q,Q与P之间的KL散度之和。

DTW 距离用于衡量两个序列之间的相似性,适用于不同长度、不同节奏的时间序列。DTW采用了动态规划DP(dynamic programming)的方法来进行时间规整的计算,通过自动warping扭曲 时间序列(即在时间轴上进行局部的缩放),使得两个序列的形态尽可能的一致,得到最大可能的相似度。(具体可参考[5])

图结构间的相似度计算,有图同构、最大共同子图、图编辑距离、Graph Kernel 、图嵌入计算距离等方法(具体可参考[4][6])。

度量学习的对象通常是样本特征向量的距离,度量学习的关键在于如何有效的度量样本间的距离,目的是通过训练和学习,减小或限制同类样本之间的距离,同时增大不同类别样本之间的距离,简单归类如下[2]:

最后,附上常用的距离和相似度度量方法[3]:

❿ 如何进行相似度的计算,主要用什么方式

如何计算句子的语义相似度,很容易想到的是向量空间模型(VSM)和编辑距离的方法,比如A:“我爸是李刚”,B:“我儿子是李刚”,利用VSM方法A(我,爸,是,李刚)B(我,儿子,是,李刚),计算两个向量的夹角余弦值,不赘述;编辑距离就更好说了将“爸”,“儿子”分别替换掉,D(A,B)= replace_cost;
这是两种相当呆的方法,属于baseline中的baseline,换两个例子看一下就知道A:“楼房如何建造?”,B:“高尔夫球怎么打?”,C:“房子怎么盖?”,如果用VSM算很明显由于B,C中有共同的词“怎么”,所以BC相似度高于AC;编辑距离同理;
解决这种问题方法也不难,只要通过同义词词典对所有句子进行扩展,“如何”、“怎么”,“楼房”、“房子”都是同义词或者近义词,扩展后再算vsm或者edit distance对这一问题即可正解.这种方法一定程度上解决了召回率低的问题,但是扩展后引入噪声在所难免,尤其若原句中含有多义词时.例如:“打酱油”、“打毛衣”.在汉字中有些单字词表达了相当多的意义,在董振东先生的知网(hownet)中对这种类型汉字有很好的语义关系解释,通过hownet中词语到义元的树状结构可以对对词语粒度的形似度进行度量.
问题到这里似乎得到了不错的解答,但实际中远远不够.VSM的方法把句子中的词语看做相互独立的特征,忽略了句子序列关系、位置关系对句子语义的影响;Edit Distance考虑了句子中词语顺序关系,但是这种关系是机械的置换、移动、删除、添加,实际中每个词语表达了不同的信息量,同样的词语在不同词语组合中包含的信息量或者说表达的语义信息大不相同.What about 句法分析,计算句法树的相似度?这个比前两种方法更靠谱些,因为句法树很好的描述了词语在句子中的地位.实际效果要待实验证实.
对了,还有一种方法translation model,IBM在机器翻译领域的一大创举,需要有大量的语料库进行训练才能得到理想的翻译结果.当然包括中间词语对齐结果,如果能够利用web资源建立一个高质量的语料库对两两相似句对通过EM迭代词语对齐,由词语对齐生成句子相似度,这个.想想还是不错的方法!

阅读全文

与相似性度量的算法相关的资料

热点内容
以太坊源码共识机制 浏览:909
单片机探测器 浏览:869
demo编程大赛作品怎么运行 浏览:50
学历提升用什么手机软件App 浏览:938
apk反编译弊端 浏览:451
编译器内联 浏览:910
圆形相框是什么app 浏览:479
安卓微信如何设置文字加长 浏览:764
中科编译科技公司高新技术企业 浏览:770
win7文件夹选项功能 浏览:90
微信文件夹为什么会被锁定 浏览:994
加密系列号 浏览:458
电冰箱换压缩机要注意什么 浏览:795
平板的访客模式如何加密 浏览:139
钉钉加密有用吗 浏览:112
加密u盘好还是不加密的 浏览:349
微观经济学平狄克第八版pdf 浏览:404
linux查看实时流量 浏览:557
如何存档到服务器 浏览:548
flash编程书籍推荐 浏览:836