BPE,(byte pair encoder)字節對編碼,也可以叫做digram coding雙字母組合編碼,主要目的是爲了數據壓縮,算法描述爲字符串裏頻率最常見的一對字符被一個沒有在這個字符中出現的字符代替的層層迭代過程。具體在下面描述。該算法首先被提出是在Philip Gage的C Users Journal的 1994年2月的文章“A New Algorithm for Data Compression”。
算法過程
這個算法個人感覺很簡單,下面就來講解下:
比如我們想編碼:
aaabdaaabac
我們會發現這裏的aa出現的詞數最高(我們這裏只看兩個字符的頻率),那麼用這裏沒有的字符Z來替代aa:
ZabdZabac
Z=aa
此時,又發現ab出現的頻率最高,那麼同樣的,Y來代替ab:
ZYdZYac
Y=ab
Z=aa
同樣的,ZY出現的頻率大,我們用X來替代ZY:
XdXac
X=ZY
Y=ab
Z=aa
最後,連續兩個字符的頻率都爲1了,也就結束了。就是這麼簡單。
解碼的時候,就按照相反的順序更新替換即可。
原文鏈接:https://blog.csdn.net/qq_27590277/article/details/88343988