余弦相似性原理实践

Jul 21, 2017
余弦相似性原理实践
一、余弦相似性原理

1、余弦相似性表示两个向量的相似程度,当向量是二维时,可表示为两条线夹角的余弦值,两条线之间的夹角越小,其余弦值越接近1,两个向量越相似,原理如图1所示。

图1

2、当向量是二维时,根据余弦定理,余弦相似性的计算公式为图2所示

图2

3、余弦相似性计算公式在n维也成立,假定A和B是两个n维向量,A是 [A1, A2, ..., An] ,B是 [B1, B2, ..., Bn] ,则A与B的夹角θ的余弦计算公式如图3所示

图3

二、原理实践

根据上述余弦相似性原理和公式,进行实践判定两个文本的相似程度。

具体思路是:通过对文本进行分词并统计词频,可将文本转化为词频向量来表示,代入上述公式计算得到两个文本的相似性评价值。

以下是基于PostgreSQL数据库的具体实践过程

1、实践数据如图4

图4

2、对文本进行分词,分词采用的是Zhparser,PostgreSQL扩展,分词结果如图5

图5中数字表示词在文本中出现的位置

3、统计两个文本中出现的所有词
用到的自定义统计函数由图6所示

图6

列出两个文本中所有词,过程由图7所示

图7

4、根据两个文本中所有词,统计每个文本中相应词的词频,生成词频向量,过程由图8所示

图8

5、根据两个文本的词频向量和余弦相似性计算公式,计算两个文本的余弦相似性,判定两个文本的相似性,过程由图9所示

三、总结

通过对文本进行分词并计算词频,将文本转化为词频向量来表示,根据余弦相似性原理计算两个向量的相似程度,以此判定两个文本的相似程度,这在数据分析中很实用,可用来对数据进行去重、查找相似文本。

Comments

Not using Html Comment Box  yet?

No one has commented yet. Be the first!

rss
Great! You've successfully subscribed.
Great! Next, complete checkout for full access.
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.
分享