我只是想通過使用遞歸2-Gram存儲將大量文本分解爲單個整數,直到只剩下一個值。使用遞歸N-Grams壓縮文本
table pair
{
id
first_parent_id (points to -> this.id)
second_parent_id (points to -> this.id)
}
例如,在下面的代碼中,我有一個11個字的句子(十二個句號)。我可以將每個單詞對存儲在數據庫中(「this」+「is」= ID#1),然後將每組兩個單詞對存儲在數據庫中(1 + 2 = ID#7),然後重複,直到回到只有一個字組的左 - 這將是ID 12.
This is my group of words which I plan to compress.
---1---|--2-----|--3-----|-----4-|----5--|-------6-
-------7--------|--------8-------|-------9---------
----------------10---------------11----------------
------------------------12-------------------------
然後使用數字「12」就可以向後工作(如果我們具有相同的數據集)
------------------------12-------------------------
----------------10---------------11----------------
-------7--------|--------8-------|-------9---------
---1---|--2-----|--3-----|-----4-|----5--|-------6-
This is my group of words which I plan to compress.
儘管這將花費大量的工作來壓縮/解壓縮每個字符串 - 它似乎可能用於某種需要存儲內容的存檔工作 - 但除非在極少數情況下解壓縮過程不是Pro blem。
我在想這個嗎?單詞序列的可能數量是否太大而不能存儲? (想象一下500字的文檔)。