Home > Uncategorized > 文本相似度估计

文本相似度估计

问题简述

相似度比较基于空间向量模型(Vector Space Model)。将两段文本用向量A、B表示,计算AB夹角的余弦值用以表示相似度。

具体步骤如下:

  1. 提取两段文本中所有词(事先需用空格分割好)。
  2. 计算每个词在两段文本中分别出现的次数(用BSD tree.h里的RBTREE保存)
  3. 用词频做为A、B的分量。
  4. 使用余弦公式计算AB夹角的余弦值。

举例

T1 = 我 爱 北京 天安门
T2 = 我 爱 北京 立交桥

提取所有的词

W = 我 爱 北京 天安门 立交桥

计算每个词分别出现的次数

CA = 我:1 爱:1 北京:1 天安门:1 立交桥:0
CB = 我:1 爱:1 北京:1 天安门:0 立交桥:1

分别计算向量AB

设S为总词数即T1,T2中总共出现词的数量

S = 4 + 4 = 8
A = (1/8, 1/8, 1/8, 1/8, 0/8)
B = (1/8, 1/8, 1/8, 0/8, 1/8)

应用余弦定理计算向量夹角

代码

源代码下载

git clone git://gitorious.org/postgrework-jianingy/mainline.git postgrework
cd postgrework/pg_trgm_sml

直接浏览

http://gitorious.org/projects/postgrework-jianingy/repos/mainline/trees/…

Categories: Uncategorized Tags: , ,
  1. No comments yet.
  1. No trackbacks yet.