BPE算法

Posted esc_ai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BPE算法相关的知识,希望对你有一定的参考价值。

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

以上是关于BPE算法的主要内容,如果未能解决你的问题,请参考以下文章

第一篇:BPE算法(附加)

深度学习系列28:BPE分词模型

基于词典的中文分词算法2:最少分词法

BPE vs WordPiece Tokenization - 何时使用/哪个?

BPE论文解读

BPE论文解读