如何在gensim模型中查找令牌数量

How to find number of tokens in gensim model

这是我使用 Gensim.i 运行 模型的代码,它返回了一个元组。我想知道代币的数量是多少?

model = gensim.models.Word2Vec(mylist5,size=100, sg=0, window=5, alpha=0.05, min_count=5, workers=12, iter=20, cbow_mean=1, hs=0, negative=15)

model.train(mylist5, total_examples=len(mylist5), epochs=10)

我的模型返回的值是:我需要知道这是什么?

 (167131589, 208757070)

我想知道令牌的数量是多少?

Gensim Code

Gensim Github Line573 显示 model.train returns 两个值 trained_word_count, raw_word_count.

"raw_word_count"是训练中使用的单词数。

"trained_word_count"是忽略未知词和修剪句子长度后的原始词数。

由于您在实例化模型时已经传入了 mylist5 语料库,因此它会自动完成使用该数据训练模型的所有步骤。

(您不需要,而且几乎肯定不应该再次调用 .train()。通常,只有在您未在安装时提供任何语料库时才应调用 .train()。并且在这种情况下,您将同时调用 .build_vocab().train()。)

正如其他回答者所指出的,.train() 报告的数字是训练过程中看到的总标记的两个计数。 (大多数用户实际上不需要此信息。)

如果您想知道模型学习词向量的 唯一标记 的数量,len(model.wv) 是一种方法。 (在 Gensim 4.0 之前,len(model.wv.vocab) 会起作用。)