前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一分钟搞懂的算法之BPE算法

一分钟搞懂的算法之BPE算法

作者头像
zenRRan
发布2018-04-10 11:12:46
5.5K0
发布2018-04-10 11:12:46
举报

昨天总结实验数据分析的时候发现一个机器翻译的其中的一个脚本,其中用到的算法就是BPE算法,刚开始感觉很高大上的,因为总是听到带上算法帽子的东西就觉得666。等自己好好研究研究,网上各种找资料才知道,其实还挺好理解的,所以真的应了那句老话,眼见为实呀。

总说

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了,也就结束了。就是这么简单。

解码的时候,就按照相反的顺序更新替换即可。

参考

Byte pair encoding

https://en.wikipedia.org/wiki/Byte_pair_encoding

下一篇预告:

TreeLstm Sentiment Classification 树形LSTM情感分类理论篇

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-04-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 深度学习自然语言处理 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
机器翻译
机器翻译(Tencent Machine Translation,TMT)结合了神经机器翻译和统计机器翻译的优点,从大规模双语语料库自动学习翻译知识,实现从源语言文本到目标语言文本的自动翻译,目前可支持十余种语言的互译。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档