在7.9余弦定理+空间向量--我的数学3 中简单地说了一下利用余弦定理来计算文本相似度。下面是利用余弦定理和广义Jaccard系数来计算文本相似度。 简单介绍一下Jaccard系数:广义Jaccard系数可以用于文档数据,并在二元属性情况下归约为Jaccard系数。广义Jaccard系数又称Tanimoto系数。(有另一种系数也称为Tanimoto系数)。该系数用EJ表示,由下式定义: EJ(x,y)=(x*y)/(||x|*||x||+||y||*||y||-x*y) 其公式与余弦相似度的计算有点相似 ClusterUsingKmeans.rar 代码下载。 代码解析如下: class Word 表示一个词,来自于中文分词后的结果,其属性包括词频和特征值(关于特征值的计算会在以后介绍) class Document 表示一个文档,对文档进行中文分词后,分别计算词的词频和特征值。 public double SimilitudeValueToDocumentUsingCos(Document Doc) 通过余弦定理计算相似度 public double SimilitudeValueToDocumentUsingGeneralizedJaccardCoefficient(Document Doc) 通过广义Jaccard计算相似度 public class LoadDict用于加载词库,词库使用sogou的互联网词库 ,完全简单化计算词的特征。 class WordSegment为中文分词的简单封装,替换成网络上的中文分词组件即可。 实验结果下载 实验报告与数据.rar 77.txt为原始文档,77.txt对比其他文档得到的相似度报告可以在 实验报告.doc中查看 如下所示 |
|