4

我想为我的“找到类似人物”算法得到一些建议:)。我有一个数据库存储以下实体:人员,文章,关键字。因此,对于每个人,我都有一些关键字集合(包括人物提及的数量),这些关键字是从人物关键词中编译而来的。因此,我需要通过查看相关关键字来获得类似的人,简单的解决方案是从一个人获得x个关键字并找到所有共享相似关键字分数(不相等)的人,但似乎这不是最好的方法。思考?关于人类相似度算法的建议

谢谢!

+0

更多的问题背景将会非常有用。你要求为类似的人找到一个好的算法,但不能完全定义“相似”是什么意思。 – Leonid 2010-08-30 16:34:47

+1

是否有关于哪些关键字(以及关键字可能的类别)更重要/更不重要的评级?例如,宗教可能是一个非常强大的类别,但对奶酪类型的偏好不会。 – 2010-08-30 16:37:50

+0

是的,对不起,我会尽力给予更多的信息: “关键字”有点聪明,我的意思是它可以是一个术语,提取这些字符串的系统使用一些智能算法和机器学习方法随着时间推移增加其引擎。所以“关键字”可以是“应用数学”之类的东西。 关于评分,我们使用每个人对“关键字”的提及。所以如果我谈论“机器学习”太多,可能“机器学习”关键字对我来说将具有非常高的相关性。 – Thiago 2010-08-30 17:33:37

回答

7

这听起来像你的情况是足够接近正常的信息检索系统“相似性”查询,你可以使用相同的vector space model

对于每个人,请计算每个关键字的出现次数。将每个关键字视为一个维度,将出现次数视为该维度中向量的大小。通常,每个维度的处理方式都是相同的,但如果您发现某些关键字可以更好地预测兼容性,则可以通过某个因子缩放该维度中的每个匹配项。

然后,不同人的向量的点积给你一个他们有多相似的分数。或者,您可以输入您自己的关键字并找到最感兴趣的人。