【问题标题】:suggestions for a people similarity algorithm人物相似度算法的建议
【发布时间】:2011-04-05 20:42:48
【问题描述】:

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

谢谢!

【问题讨论】:

  • 多一点背景知识会非常有用。您要求为相似的人找到一个好的算法,但没有完全定义“相似”的含义。
  • 是否对哪些关键字(以及如果可能的关键字类别)更重要/更不重要进行评级?例如,宗教可能是一个非常重要的类别,但奶酪类型的偏好不会。
  • 是的,对不起,伙计们,我会尽力提供更多信息:那个“关键字”更聪明一点,我的意思是它可以是一个术语,提取这些字符串的系统使用一些智能算法和机器学习方法随着时间的推移增加其引擎。所以“关键词”可以是“应用数学”之类的东西。关于评级,我们使用每个人对“关键字”的提及。因此,如果我过多地谈论“机器学习”,可能“机器学习”关键字对我来说具有很高的相关性。

标签: java artificial-intelligence data-mining wolfram-mathematica


【解决方案1】:

听起来您的案例与普通信息检索系统“相似性”查询非常接近,您可以使用相同的vector space model

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

然后,不同人的向量的点积会给出他们相似程度的分数。或者,您可以输入自己的关键字,找到最感兴趣的人。

【讨论】:

    猜你喜欢
    • 2011-09-17
    • 2013-01-31
    • 2011-02-28
    • 1970-01-01
    • 2011-08-13
    • 2011-12-10
    • 2011-07-03
    • 2013-05-11
    相关资源
    最近更新 更多