Почему Doc2Vec.scale_vocab () ['память'] ['словарь'] делится на 700, чтобы получить размер словарного запаса?

Из учебника по википедии Doc2Vec по адресу https://github.com/RaRe-Technologies/gensim/blob/master/docs/notebooks/doc2vec-wikipedia.ipynb

for num in range(0, 20):
    print('min_count: {}, size of vocab: '.format(num), 
           pre.scale_vocab(min_count=num, dry_run=True)['memory']['vocab']/700)

Выход:

min_count: 0, size of vocab: 8545782.0
min_count: 1, size of vocab: 8545782.0
min_count: 2, size of vocab: 4227783.0
min_count: 3, size of vocab: 3008772.0
min_count: 4, size of vocab: 2439367.0
min_count: 5, size of vocab: 2090709.0
min_count: 6, size of vocab: 1856609.0
min_count: 7, size of vocab: 1681670.0
min_count: 8, size of vocab: 1546914.0
min_count: 9, size of vocab: 1437367.0
min_count: 10, size of vocab: 1346177.0
min_count: 11, size of vocab: 1267916.0
min_count: 12, size of vocab: 1201186.0
min_count: 13, size of vocab: 1142377.0
min_count: 14, size of vocab: 1090673.0
min_count: 15, size of vocab: 1043973.0
min_count: 16, size of vocab: 1002395.0
min_count: 17, size of vocab: 964684.0
min_count: 18, size of vocab: 930382.0
min_count: 19, size of vocab: 898725.0

В исходной статье они установили размер словарного запаса 915,715. Кажется похожим размер словаря, если мы установим min_count = 19. (размер словаря = 898 725)

700 кажется довольно произвольным, и я не вижу упоминания об этом в документации .


person Thomas Fauskanger    schedule 31.07.2017    source источник


Ответы (1)


В этом нет смысла, но вот причина:

scale_vocab() (через использование внутренней estimate_memory() функции) возвращает dict с набором приблизительных значений объема памяти, который потребуется модели в байтах для данного min_count. Эти оценки основаны на идее, что каждое слово в vocab dict модели будет занимать около 700 байтов в модели HS (где она включает некоторую дополнительную информацию о кодировании Хаффмана) или всего 500 байтов в модели с отрицательной выборкой. Видеть:

person gojomo    schedule 31.07.2017
comment
Ах, спасибо. Я понимаю, что блокнот хотел воспроизвести упомянутую бумагу, но я действительно не мог понять конкретное число. ???? Еще раз спасибо. - person Thomas Fauskanger; 31.07.2017