2010-08-26 70 views
2

我有一個充滿兩種不同類型用戶(導師和受訪者)的數據庫,我希望第二組(導師)能夠爲第一組(導師)中的人員「搜索」誰符合他們的個人資料導師和受指導者可以隨時進入並更改其個人資料中的項目。與當前數據匹配的用戶

目前,我正在使用Apache Mahout進行用戶匹配(recommender.mostSimilarIDs())。我遇到的問題是每次任何人搜索時都必須重新加載用戶數據。這本身並不需要那麼長時間,但是當Mahout處理數據時,它似乎需要很長時間(對於3000名導師和3000名受訪者,需要14分鐘)。處理後,匹配只需幾秒鐘。在處理過程中(「處理2248個用戶」),我也一遍又一遍地得到相同的INFO消息,同時查看代碼顯示消息應該每10000個用戶才輸出。

我使用GenericUserBasedRecommender和GenericDataModel,以及NearestNUserNeighborhood,AveragingPreferenceInferrer和PearsonCorrelationSimilarity。我從數據庫加載指導者,將指導者添加到POJO列表中並將其轉換爲FastByIDMap以提供給DataModel。

有沒有更好的方法來做到這一點?產品所有者需要每次搜索都需要數據。

回答

1

(我的作者。)

你不應該需要問它每次都重新加載數據,爲什麼?

14分鐘聽起來方式太長,也加載這麼少量的數據太多了,出了點問題。您可以通過[email protected]瞭解更多信息。

您正在看到來自DataModel的日誌消息,您可以在選定的日誌記錄系統中禁用該日誌消息。它打印一個最終計數。這是沒有什麼可擔心的。

我會建議你不要使用PreferenceInferrer,除非你完全知道你想要它。你真的有評分嗎?如果不是,我可能會建議LogLikelihoodSimilarity