在tfds.features.text.SubwordTextEncoder.build_from_corpus方法中,target_vocab_size到底是什么意思?

时间:2019-05-25 20:52:00

标签: python tensorflow nlp

根据this link target_vocab_size: int,要创建的词汇表的大致大小。该语句对我来说很模棱两可。据我了解,编码器会将每个词汇表映射到唯一的ID。如果语料库的vocab_sizetarget_vocab_size大,会发生什么?

1 个答案:

答案 0 :(得分:3)

documentation说:

  

编码是完全可逆的,因为所有浊音词都是字节编码的

这意味着未知单词将一次被编码一个字符。最好通过一个例子来理解。假设您使用非常庞大的英文文本库来构建SubwordTextEncoder,以便大多数常用单词都在词汇表中。

vocab_size = 10000
tokenizer = tfds.features.text.SubwordTextEncoder.build_from_corpus(
    corpus_sentences, vocab_size)

假设您尝试标记以下句子。

tokenizer.encode("good badwords badxyz")

它将被标记为:

  1. 单词
  2. x
  3. y
  4. z

如您所见,由于单词“ xyz”不在词汇表中,因此被标记为字符。