为了计算两个文档之间的相似性,我创建了一个包含术语频率的特征向量.但是,对于下一步,我不能在" 余弦相似度 "和" 汉明距离 " 之间做出决定.
我的问题:您对这些算法有经验吗?哪一个给你更好的结果?
除此之外:你能告诉我如何在PHP中编码余弦相似度吗?对于汉明距离,我已经得到了代码:
function check ($terms1, $terms2) {
$counts1 = array_count_values($terms1);
$totalScore = 0;
foreach ($terms2 as $term) {
if (isset($counts1[$term])) $totalScore += $counts1[$term];
}
return $totalScore * 500 / (count($terms1) * count($terms2));
}
Run Code Online (Sandbox Code Playgroud)
我不想使用任何其他算法.我只想帮助两者之间做出决定.
也许有人可以说一些如何改进算法.如果你过滤掉停用词或常用词,你会得到更好的结果吗?
我希望你能帮助我.提前致谢!
我有一个大型数据集,我想集群.我的试运行集大小是2,500个对象; 当我在'真正的交易'上运行时,我将需要处理至少20k的对象.
这些对象之间具有余弦相似性.该余弦相似性不满足作为数学距离度量的要求; 它不满足三角不等式.
我想以一种"自然"的方式将它们聚类在一起,将类似的对象放在一起,而不需要事先指定我期望的簇数.
有谁知道会这样做的算法?真的,我只是在寻找不需要a)距离度量和b)预先指定数量的簇的任何算法.
非常感谢!
这里之前已经提出过这个问题: 从余弦相似度值聚类 (但这个解决方案只提供K均值聚类),这里: 相似度矩阵的有效聚类 (但这个解决方案相当含糊)
cluster-analysis machine-learning distance cosine-similarity