Gensim word2vec - start vocabulary from index different than 0

时间:2018-06-04 16:43:47

标签: python word2vec gensim

I am using gensim to create word vectors based on my corpus like the following:

model = Word2Vec(sentences, size=100, window=5, min_count=5, workers=4)

I was wondering if it is possible to start (or somehow avoid having) words at index 0 and 1? I would like my vocabulary to start at index 2, because I need to do other operations and if I keep 0 and 1 as indexes it gets a little confusing.

Thanks for the help!

1 个答案:

答案 0 :(得分:0)

它不是Word2Vec的原生功能。

这可能不是一个好主意,但你可能通过创建两个非常高频率的虚拟词来粗略地伪造它,并在训练数据中添加包含它们的示例,以便有一个对其他载体的影响最小。

例如,如果您的语料库中最常见的单词出现了5000次,请创建一个假文本,其中只包含单词" dummy000000000'和' dummy000000001'在其中,每次重复1,000次。将此假文本添加到您的语料库中6次。然后,' dummy000000000'和' dummy000000001'将是语料库中两个最频繁的单词,因此获得索引0和1(在通常情况下)。他们的训练会浪费时间,模型会浪费一些潜在的状态给这些单词粗略的向量,但是它们应该对其他单词产生最小的影响(因为它们永远不会与真实的单词共同出现)。瞧,您以后可以忽略(或视为错误)的0和1个索引!

但是写完之后,这绝对是一个坏主意。它会使模型稍微变慢并使其恶化。该模型的各种进展/统计数据将会产生微妙的误导。

并且,从0开始这样的索引是非常典型的专业编程实践。如果您发现它一般或您的特定项目令人困惑,那么这可能是一个习惯/理解障碍,它比通过非标准练习修补更好。