我需要在Google應用引擎中實現「逆文檔頻率」。我正在尋求提高效率的建議。現在我走基本例程如,在GAE上實施「逆文檔頻率」的建議?
解析網頁時我保存每一對數據存儲,等,
for(String phrase : phrase_collection){
dataStore.put(phrase, domain);
}
計算IDF時
以後我取從數據存儲中的短語的出現,如,
for(String phrase : phrase_collection){
long count = dataStore.get(phrase).size();
}
但是速度並不令人滿意,並且經常導致30秒的超時。在這種情況下,我有額外的挑戰,
- 多語言輸入(網頁)。所以這些短語也使用不同的語言,這使得緩存很難。
-Parsing網頁和排名短語也需要很多時間。整個過程就像charset_detect - > language_detect - >根據不同的語言解析 - >排名。
始終在GAE中啓用。
我期待着任何建議!提前致謝!
無論如何很難組裝Query查詢條件,批量get/put是一個基本的想法。此外,由於我需要實時對文檔進行排序(來自同一文檔),所以我無法離線執行此操作。我試着與緩存和AsyncDataStore,它感覺更好。 – ShuaiYuan 2011-06-03 07:27:07
@Shuai我不知道我理解你的評論。查詢條件不適用於批次獲取或放入,而且您需要批量操作 - 這也應該很容易。 – 2011-06-03 08:15:21
我的意思是1)很難從數據存儲中檢索所有短語並將其存儲在內存緩存中,尤其是,存儲在所有語言中都在迅速增長。 2)那麼對於每個文件,我必須檢索出現在其中的短語而不是全部。在這種情況下,你如何批量獲得? – ShuaiYuan 2011-06-04 10:03:15