BPE 分词解密 - 实现方法与示例讲解

在 NLP 里面,一个核心的问题是,如何对文本进行分词?从分类的角度上面来说,可以分为:

  • Char level
  • Word level
  • Subword level

先看 Char level 分词,顾名思义,就是把文本拆分成一个个字符单独表示,比如 highest -> h, i, g, h, e, s, t,一个显然的好处是,Vocab 不会太大,Vocab 的大小为字符集的大小,也不会遇到 Out-of-vocabulary(OOV) 的问题,但是字符本身并没有传达太多的语义,而且分词之后会有太多的 token光是一个 highest 就可以得到 7 个 token,难以想象很长的文本分出来会有多少个😨

词袋模型

在 NLP 中,我们需要将文档(document)表示为向量,这是因为机器学习只能够处理数字。也就是说,我们要找到下面这么一个神奇的函数:

如何记忆红黑树的操作

如果你点进了这一篇文章,相信你也跟我一样:红黑树学一次忘一次,又要做树的旋转,又要给节点重新上色,导致每次都是学完了就忘记。我也曾经仔细阅读过 CLRS 写的《算法导论》,但是上面的分类讨论只是让我更加头疼