2010-10-25 60 views
0

我很好奇今天很多社交網站上的工作如何。模糊查詢到數據庫

例如,您輸入您喜歡的電影列表,然後系統建議您可能喜歡的其他電影(基於喜歡與您相同的電影的其他人的電影)。我認爲在大型數據集上直接使用sql方式(我的電影與電影的聯接列表 - 用戶加入電影標題的用戶電影組並應用計數)將不可能實現,因爲此類查詢的「沉重」 。

同時我們不需要精確的解決方案,近似就足夠了。我不知道有沒有辦法像傳統的RDBMS那樣執行類似模糊查詢的操作,這種方法執行起來很快,但有些不盡人意。或者如何在真實系統上實現這些功能。

回答

2

這是協同過濾,或建議

,除非你需要的東西非常複雜的斜坡一個預測是其中一個更簡單的它就像50條蟒蛇,Bryan O’Sullivan’s Collaborative filtering made easythe paper by Daniel Lemire et al. introducing "Slope One Predictors for Online Rating-Based Collaborative Filtering"

這一個有一個更新只有一個用戶在一個時間,他們改變沒有在某些情況下需要重新處理整個數據庫只是爲了更新

我使用該python代碼來做預測單詞不在文檔中發生,但我遇到內存問題等而我想我可能也許使用SQLite

也是一個使用的基質是三角形沿對角線兩邊鏡像需要存儲

0

最簡單的方法使用貝葉斯網絡。有些圖書館可以爲你處理大部分數學問題。

+1

感謝所以只有一個矩陣的一半寫出來的內存版本,那是一些東西,但仍然非常普遍。像「神經網絡可以用於模式識別」 – kilonet 2010-10-26 15:12:46

1

你正在尋找的術語是「協同過濾」

閱讀由O'Reilly媒體集體智慧編程,