【发布时间】:2020-06-24 20:15:35
【问题描述】:
我阅读了很多关于 BPE 的教程,但我仍然对它的工作原理感到困惑。
例如。 在网上的教程中,他们说:
算法
准备足够大的训练数据(即语料库)
定义所需的子词词汇量
将单词拆分为字符序列并在末尾添加后缀“”
词频。所以这个阶段的基本单位是性格。例如,“low”的频率是5,那么我们将其改写为“l o w”:5 根据高频出现生成一个新的子词。 重复第 4 步,直到达到第 2 步中定义的子词词汇量或下一个最高频率对为 1。
以“low: 5”、“lower: 2”、“newest: 6”和“widest: 3”为例,频率最高的子词对是e和s。这是因为我们从最新获得 6 个计数,从最宽获得 3 个计数。然后形成新的子词(es),它将成为下一次迭代的候选词。
在第二次迭代中,下一个高频子词对是 es(由上一次迭代生成)和 t。这是因为我们得到 6count 从最新到最宽的 3 个。
我不明白为什么low是5,lower是2:
这是否意味着 l , o, w , lo, ow + = 6 然后下等于 2 但为什么不是 e, r, er 给出三个?
【问题讨论】:
-
你看过this的文章吗?它通过示例给出了非常容易理解的算法,并且与原始论文中描述的相同。
标签: python scikit-learn nlp vectorization