gensim
中的word2vec对象具有 null_word
参数,该参数在文档中没有解释。
class gensim.models.word2vec.word2vec(sensences = none,size = 100,alpha = 0.025,window = 5,min_count = 5,max_vocab_size = none,sample = 0.001,seed = 1,seed = 1,工人= 3,min_alpha = 3,min_alpha = 3,min_alpha = 10.0001,sg = 0,hs = 0,负= 5,cbow_mean = 1,hashfxn =,iter = 5,null_word = 0,trim_rule = none,sorted_vocab = 1,batch_words = 10000)
>
null_word
参数是什么?
在https://github.com/rare-technologies/gensim/blob/develop/gensim/models/models/word2vec.py#l680上检查代码:
if self.null_word:
# create null pseudo-word for padding when using concatenative L1 (run-of-words)
# this word is only ever input – never predicted – so count, huffman-point, etc doesn't matter
word, v = ' ', Vocab(count=1, sample_int=0)
v.index = len(self.wv.vocab)
self.wv.index2word.append(word)
self.wv.vocab[word] = v
什么是"串联L1"?
仅当使用串联模式的PV-DM - 参数dm=1, dm_concat=1
在模型初始化中使用时,null_word
才使用。
在这种非默认模式下,目标词的window
位置内的doctag-vector和相邻单词的向量被串联成一个非常典型的输入层,而不是更典型的输入层平均。
这样的模型比其他模式更大且较慢。对于文本示例开始或结尾附近的目标单词,可能没有足够的相邻单词来创建此输入层,但是该模型需要这些插槽的值。因此null_word
基本用作填充。
虽然原始的Paragraph Vectors
纸在其某些实验中使用此模式提到的,但此模式不足以复制其结果。(我知道没有人能够重现这些结果,而其中一位作者的其他评论暗示原始论文在其过程中有一些错误或遗漏。)
此外,我还没有找到这种模式为增加时间/内存合理的明确好处的情况。(可能需要非常大的数据集或非常长的培训时间才能显示出任何好处。)
因此,除非您使用这种较不通事的模式进行高级实验,否则您不应该太担心此模型属性 - 在这种情况下,您可以查看有关其用作填充方式的所有精细详细信息。<<<<<<<<<<<<<<<<<</p>