TF2.0: SubwordTextEncoder: Tokenizer печатает другой размер вокаба, но на самом деле нет. слов меньше - PullRequest
1 голос
/ 01 ноября 2019

Я использую приведенный ниже фрагмент кода для создания токенизатора для модели NMT.

tokenizer = tfds.features.text.SubwordTextEncoder.build_from_corpus(
        (en.numpy() for tam, eng in data), target_vocab_size=2**13)

Когда я печатаю длину списка подслов:

print(len(tokenizer.subwords))
# 175

Но размер вокаба намного больше.

print(tokenizer.vocab_size)
# 432

Разве не должен словарьразмер будет длина списка, как указано выше?

1 Ответ

0 голосов
/ 01 ноября 2019

Разве размер словаря не должен быть длиной списка, как указано выше?

Нет.

Подслова - это подмножество всего словаря. Если вы посмотрите на исходный код для SubwordTextEncoder, вы увидите, что свойство vocab_size возвращает 1 + len(self._subwords) + text_encoder.NUM_BYTES. Этот пост stackoverflow хорошо описывает, откуда берется num байт.

...