2011-02-01 38 views
2

假設我有一個DB的問題,比如SO!當用戶提出問題時,我想在側欄上提供相關問題。什麼是相關內容查詢的基本算法?

這是否有一個標準化的技術?用空格分隔問題,搜索每個單詞等...?

不確定從哪裏開始。

+0

*「是否有標準化技術爲此?「 - - 號碼 – 2011-02-01 03:58:07

回答

0

最可能的是,你需要設計存儲關鍵字和搜索基於問題的標題相關項目的表。因此,一旦輸入了問題,每個關鍵字的計數器就會定義該問題與其他存儲問題的相關性,並且可以通過排名將最高命中次數顯示爲最低。這就是我的想法。希望我的想法有所幫助,盡我所能,所以可能不是最好的答案,但幫助它做出貢獻。 :)

0

一個天真的方法是查詢問題中的字符串爲常見的單詞。

例如大多數的此頁面上的相關問題做有字「查詢」「算法」在他們的頭銜,儘管他們似乎談論SQL,學習開發等不同領域。

所以基本上你可以採取一個問題,分裂的問題串,消除停用詞,然後嘗試匹配其他問題標題儘可能多字越好。

一旦你有一組問題,在這裏已經在標題匹配單詞,由匹配或其它度量的數量訂貨它們(SO例如upvotes,答案或觀看次數)。

+0

非常好,感謝您花時間寫出您的答案。 – Chaddeus 2011-02-07 08:51:42

0

我會處理這個問題是這樣的。首先,刪除所有膠水的話:「對,一個,一個,但是,如果傾斜,就可以了,所以,不是」等(可能是一個巨大的名單)...

我應該在這一點留待應主要是名詞和動詞。

集羣您的文章的東西,如K-均值聚類,對那些話。最後,針對您的羣集訓練貝葉斯分類器,當您獲得新帖子時,將其歸類爲您的羣集之一...最後,返回來自該羣集的其他問題....

+0

爲什麼downvote? – diugalde 2016-10-14 06:43:27