s
1
=
(
x
1
,
x
2
,
x
3
)
s_1=(x_1,x_2,x_3)
s1=(x1,x2,x3)
s
2
=
(
y
1
,
y
2
,
y
3
)
s_2=(y_1,y_2,y_3)
s2=(y1,y2,y3)
欧氏距离
d = ∣ s 1 − s 2 ∣ = ( x 1 2 − y 1 2 ) + ( x 2 2 − y 2 2 ) + ( x 3 2 − y 3 2 ) d=|s_1-s_2|=\sqrt{(x_1^2-y_1^2)+(x_2^2-y_2^2)+(x_3^2-y_3^2)} d=∣s1−s2∣=(x12−y12)+(x22−y22)+(x32−y32)
特点:只考虑距离,没考虑方向,距离越小说明越相似
余弦相似度
t
f
=
s
1
⋅
s
2
(
∣
s
1
∣
×
∣
s
2
∣
)
=
(
x
1
×
y
1
)
+
(
x
2
×
y
2
)
+
(
x
3
×
y
3
)
(
x
1
2
+
x
2
2
+
x
3
2
)
(
y
1
2
+
y
2
2
+
y
3
2
)
tf=\frac{s_1·s_2} {(|s_1|\times|s_2|)} =\frac{(x_1\times y_1)+(x_2\times y_2)+(x_3\times y_3)} { \sqrt{(x_1^2+x_2^2+x_3^2)}\sqrt{(y_1^2+y_2^2+y_3^2)}}
tf=(∣s1∣×∣s2∣)s1⋅s2=(x12+x22+x32)(y12+y22+y32)(x1×y1)+(x2×y2)+(x3×y3)
特点:考虑了方向和距离
举例说明
简单举例,三个简单的中文句子:
分词后的句子s_1:今天|的|天气|真|不错
分词后得句子s_2:今天|的|晚饭|里|也|有|很多|肉
分词后得句子s_3:昨天|的|晚饭|有|很多|肉|还|不错
生成以上三个句子所用的词典:
词典:[今天,的,天气,真,不错,晚饭,里,也,有,很多,肉,昨天,还]
这个是13维的字典
根据字典统计三个句子中,每个词出现频率:
s_1:[1,1,1,1,1,0,0,0,0,0,0,0,0]
s_2:[1,1,0,0,0,1,1,1,1,1,0,0,0]
s_3:[0,1,0,0,1,1,0,0,1,1,1,1,1]
以上仅统计出现次数,没有对重点词增加权重,而如“的,了”等词如果两个句子中出现的比较多也会增加相似度,实际上他们是不重要的。(可以用tfidf的方式处理)
使用欧式距离求文本相似度:
s i m ( s 1 , s 2 ) = 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 = 8 sim(s_1,s_2)=\sqrt{1+1+1+1+1+1+1+1}=\sqrt{8} sim(s1,s2)=1+1+1+1+1+1+1+1=8
s i m ( s 2 , s 3 ) = 1 + 1 + 1 + 1 + 1 + 1 + 1 = 7 sim(s_2,s_3)=\sqrt{1+1+1+1+1+1+1}=\sqrt{7} sim(s2,s3)=1+1+1+1+1+1+1=7
s i m ( s 1 , s 3 ) = 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 = 9 sim(s_1,s_3)=\sqrt{1+1+1+1+1+1+1+1+1}=\sqrt{9} sim(s1,s3)=1+1+1+1+1+1+1+1+1=9
s
i
m
(
s
2
,
s
3
)
>
s
i
m
(
s
1
,
s
2
)
>
s
i
m
(
s
1
,
s
3
)
sim(s_2,s_3)>sim(s_1,s_2)>sim(s_1,s_3)
sim(s2,s3)>sim(s1,s2)>sim(s1,s3)
使用余弦相似度求文本相似度:
s i m ( s 1 , s 2 ) = 1 + 1 1 + 1 + 1 + 1 + 1 × 1 + 1 + 1 + 1 + 1 + 1 + 1 = 2 35 sim(s_1,s_2)=\frac{1+1}{\sqrt{1+1+1+1+1}\times \sqrt{1+1+1+1+1+1+1}}=\frac{2}{\sqrt{35}} sim(s1,s2)=1+1+1+1+1×1+1+1+1+1+1+11+1=352
s i m ( s 2 , s 3 ) = 1 + 1 + 1 + 1 1 + 1 + 1 + 1 + 1 + 1 + 1 × 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 = 2 14 sim(s_2,s_3)=\frac{1+1+1+1}{\sqrt{1+1+1+1+1+1+1}\times \sqrt{1+1+1+1+1+1+1+1}}=\frac{2}{\sqrt{14}} sim(s2,s3)=1+1+1+1+1+1+1×1+1+1+1+1+1+1+11+1+1+1=142
s i m ( s 1 , s 3 ) = 1 + 1 1 + 1 + 1 + 1 + 1 × 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 = 1 10 sim(s_1,s_3)=\frac{1+1}{\sqrt{1+1+1+1+1}\times \sqrt{1+1+1+1+1+1+1+1}}=\frac{1}{\sqrt{10}} sim(s1,s3)=1+1+1+1+1×1+1+1+1+1+1+1+11+1=101
s i m ( s 2 , s 3 ) > s i m ( s 1 , s 2 ) > s i m ( s 1 , s 3 ) sim(s_2,s_3)>sim(s_1,s_2)>sim(s_1,s_3) sim(s2,s3)>sim(s1,s2)>sim(s1,s3)