我想为我的“寻找相似的人”算法获得一些建议 :)。我有一个存储以下实体的数据库:人物、文章、关键字。因此,对于每个人,我都有一组关键字(以及该人提及的次数),这些关键字是根据该人的文章关键字编制的。所以我需要通过查看他们的相关关键字来找到相似的人,简单的解决方案是从一个人 y 那里获取 x 个关键字并找到所有共享相似关键字分数(不相等)的人,但这似乎不是最好的方法。想法?
谢谢!
最佳答案
听起来您的情况与正常的信息检索系统“相似性”查询足够接近,您可以使用相同的 vector space model .
对于每个人,计算每个关键词出现的次数。将每个关键字视为一个维度,并将出现次数视为该维度中 vector 的大小。通常情况下,每个维度的处理方式相同,但如果您发现某些关键字更能预测兼容性,则可以按某种因素缩放该维度中的每个出现。
然后,不同人的 vector 的点积会为您提供他们相似程度的分数。或者,您可以输入自己的关键字并找到兴趣最接近的人。
关于java - 对人物相似度算法的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3602306/