2017-09-02 223 views
0

只需閱讀gensim頁面上的doc2vec命令即可。gensim doc2vec「intersect_word2vec_format」命令

我很好奇命令「intersect_word2vec_format」。

我對這個命令的理解是,它允許我將預訓練的word2vec模型中的矢量值插入到我的doc2vec模型中,然後使用預訓練的word2vec值訓練我的doc2vec模型,而不是從我的文檔語料庫生成單詞矢量值。結果是我得到了一個更準確的doc2vec模型,因爲我使用的pretrained w2v值是從比我的相對較小的文檔語料庫更大的語料庫中生成的。

我對這個命令的理解是正確的還是不正確的? ;-)

回答

1

是的,intersect_word2vec_format()可以讓你從一個外部文件載入一個模型,它已經有了自己的詞彙表初始化(就像通過build_vocab())。也就是說,它只會加載那些在本地詞彙表中已經有單詞的向量。

另外,將缺省鎖定後續訓練期間反對任何進一步的調整那些加載向量,雖然在預先存在的詞彙換言之可以繼續更新。 (您可以通過提供lockf=1.0值而不是默認值0.0來更改此行爲。)

但是,這被認爲是最好的實驗性功能,它可能提供的好處取決於您的特定許多事情建立。

與參數dm=0相對應的PV-DBOW Doc2Vec模式在速度和文檔向量質量方面經常表現優秀,並且根本不使用或訓練單詞向量 - 所以任何預加載向量不會有任何影響。

默認dm=1設置啓用的PV-DM模式在訓練doc-vector訓練的同時訓練它需要的任何單詞向量。 (也就是說,沒有單獨的階段,首先創建單詞向量,因此對於相同的遍歷,PV-DM訓練將花費相同的時間量,無論單詞向量是以默認隨機值開始還是從)使用某些來自其他地方的單詞向量來預先播種模型可能有助於或損害最終質量 - 這可能取決於語料庫,元參數和目標的具體情況,以及這些外部向量是否代表與當前語料庫/目標同步。

+0

非常感謝您的詳細解答。它爲我清理了很多東西。我現在可以開始使用PV-DM訓練我的第一個d2v模型:) :) –