1. 文本相似度定义
我们都知道,单词中有同义词、近义词和反义词之分,这表明不同单词间的相似程度也截然不同。对于文本表示,我们也要衡量单词编码向量间的相似程度与单词本身词义间相似程度的一致性,以此来评价文本表示的质量。
2. 文本相似度计算方法
定量计算两个文本之间的相似程度,就是定量计算文本表示后两个向量之间的相似度。一种衡量两向量相似度的方式是计算它们之间的距离,距离越小相似度越高、距离越大相似度越小,常用的向量距离计算指标有欧式距离和余弦相似度两种。
2.1 欧氏距离
欧氏距离
d
E
d_E
dE? 表示n维空间上,两向量间的直线距离,计算公式如下:
d
E
(
X
?
,
Y
?
)
=
(
x
1
?
y
1
)
2
+
(
x
2
?
y
2
)
2
+
?
+
(
x
n
?
y
n
)
2
d_E(\vec{X}, \vec{Y}) = \sqrt{(x_1-y_1)^{2}+(x_2-y_2)^{2}+\dots +(x_n-y_n)^{2}}
dE?(X
,Y
)=(x1??y1?)2+(x2??y2?)2+?+(xn??yn?)2
? 因为式中
d
E
d_E
dE? 在定义域上是单调递增函数,所以
d
E
d_E
dE? 的值越小,两向量间的距离越小,两向量越相似。
2.2 余弦距离
余弦相似度
S
c
S_c
Sc? 表示两向量间夹角的大小(余弦距离
d
c
d_c
dc? =
1
?
S
c
1 - S_c
1?Sc?),其计算公式如下:
S
c
(
X
?
,
Y
?
)
=
cos
?
?
X
?
,
Y
?
?
=
X
?
?
Y
?
∣
X
?
∣
?
∣
Y
?
∣
=
x
1
y
1
+
x
2
y
2
+
?
+
x
n
y
n
x
1
2
+
x
2
2
+
?
+
x
n
2
?
y
1
2
+
y
2
2
+
?
+
y
n
2
S_c(\vec{X}, \vec{Y}) = \cos\left\langle \vec{X}, \vec{Y} \right\rangle = \frac{\vec{X} \cdot \vec{Y}}{|\vec{X}|*|\vec{Y}|} = \frac{x_1y_1+x_2y_2+\dots+x_ny_n}{\sqrt{x_1^{2}+x_2^{2}+\dots+x_n^{2}}*\sqrt{y_1^{2}+y_2^{2}+\dots+y_n^{2}}}
Sc?(X
,Y
)=cos?X
,Y
?=∣X
∣?∣Y
∣X
?Y
?=x12?+x22?+?+xn2?
??y12?+y22?+?+yn2?
?x1?y1?+x2?y2?+?+xn?yn?? 因为式中
S
c
S_c
Sc? 在定义域上是单调递减函数,所以
S
c
S_c
Sc? 的值越大,两向量间的距离越小,两向量越相似。在实际工作中,因为余弦距离更容易计算和求导,所以它比欧式距离应用更为广泛。
|