2008-09-03 58 views
2

我今天早些時候提出一個問題,當我在Stackoverflow中遇到令人驚訝的功能時。當我寫了我的問題標題stackoverflow建議我幾個相關的問題,我發現已經有兩個類似的問題。那太棒了!如何實現「相關」度度量算法?

然後我開始思考如何實現這樣的功能。我怎麼會爲了通過關聯的問題:

  1. 問題有較多的 話與新的問題
  2. 配襯如果配襯的數量是 相同,詞的順序被認爲是
  3. 詞在標題中出現 更高的相關性

這將是一個簡單的工作流程或複雜的分數algortithm?有些可能會增加召回率? 有沒有一些庫實現這個功能? 你會考慮哪些其他方面?也許傑夫可以回答自己!你是如何在Stackoverflow中實現的? :)

回答

3

實現這樣的算法將涉及排名的問題,按照其使用以下步驟分配「相關性」的權重因子啓發式功能,這種方法之一:

  1. 應用噪聲濾波器「新建」問題,以去除是在大量的對象共同如文字:「在」,「和」,「或」等
  2. 獲取匹配的話,其包含在「新」問題的單詞數已在網站上發佈的一組問題。 [A]
  3. 獲取「新建」問題中的單詞與可用單詞之間的標記匹配數量。 [B]
  4. 計算基於 '關聯重量'[A]和[B]爲x [A] + Y [B]「,其中x和y是加權乘法器(分配一個更高的權重乘法器爲[B ]作爲標記比簡單詞彙搜索更具相關性)
  5. 獲得具有最高「相關權重」的前5個問題。

啓發式可能需要調整以獲得最佳結果,但它應該工作。

-1

是不是StackOverflow將在某些時候開源?如果是這樣,你可以隨時瞭解他們是如何做到的。

更新:看來,他們說他們威力開源它。我希望他們這樣做。

0

@marcio

對不起,我不知道有任何直接的API參考,我可以建議在這裏,我從來沒有與Lucene的工作。

但是,我知道Google桌面使用查詢API對相關搜索結果進行排名和建議。有關API的更多信息,請參見here

也許其他人可以提示和引導你。

1

你的問題似乎類似於this one,它有一些額外的答案。