我試圖在Android上爲自定義鍵盤實現下一個字預測器。使用n元組的Java下一個字預測的理想數據結構
本方法涉及計算N-gram並將其存儲爲HashMap
。句子是關鍵和頻率的價值。
// NGram dictionary
Map<String, Integer> nGramMap = new HashMap();
一旦字序列來如 W1 W2 W3 W4
,我在尋找與W1 W2 W3 W4
和W2 W3 W4
等開始的n-gram。
雖然它在小數據集上運行良好,但對於大數據集,該映射變得非常龐大〜3,65,000。 什麼可能是一個有效的數據結構,用於n-gram創建和預測的檢索時間。
我們嘗試過使用Trie。檢索速度非常快,但創作速度緩慢。它消耗了大量的RAM。
如果您使用樹DS而不是散列表?對於快速搜索樹會是一個更好的方法! –