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

對於每個人,請計算每個關鍵字的出現次數。將每個關鍵字視爲一個維度,將出現次數視爲該維度中向量的大小。通常,每個維度的處理方式都是相同的,但如果您發現某些關鍵字可以更好地預測兼容性,則可以通過某個因子縮放該維度中的每個匹配項。

然後,不同人的向量的點積給你一個他們有多相似的分數。或者,您可以輸入您自己的關鍵字並找到最感興趣的人。