通常针对字符级的模型有两种处理思路:一种是把原有的词向量分解处理,一种是把连接的语言分解成字符。
课程这里介绍了介于word-level和char-leval之间的Sub-word models,主要又两种趋势,一种是仍采用和word-level相同的结构,只不过采用更小的单元’word pieces’;另外一种是采用混合结构,word和char都有。
Byte Pair Encoding,简称BPE。是一种压缩算法。 给定了文本库,我们的初始词汇库仅包含所有的单个的字符,然后不断的将出现频率最高的n-gram pair作为新的ngram加入到词汇库中,直到词汇库的大小达到我们所设定的某个目标为止。 用这种方法可以自动生成vocab。 谷歌的NMT模型有两个版本,版本一采用的是BPE模型,版本二对BPE模型进行了改进,称为wordpiece mode。这种方法不在使用n-gram的计算来算,而是使用搜索算法搜索最大化的该语言模型的片段去选择pieces。 另外还有一种模型叫sentencepiece,它直接从raw text中获取,同时把空格视为一种特殊的token(_)
混合模型即两种方式并存的模型,在正常处理时采用word-level的模型,当出现奇怪的词的后,使用char-level级的模型。
采用subword的方式长生词向量,课程中提到了FastText