Gensim's Doc2Vec期望您提供與示例TaggedDocument類相同對象形狀的文本示例:同時具有words
和tags
屬性。
words
是文本的字符串標記的有序序列 - 它們可能是一個單獨的文本,或者一個段落或一個長文檔,這取決於您。
tags
是從文本中學習的標籤列表 - 例如純整數或字符串標記,以某種方式命名相應的文本。在原來的「段落向量」紙,他們只是每個文本唯一的ID - 如整數從0單調遞增(所以第一TaggedDocument可能只是一個[0]
tags
,下[1]
等)
該算法僅適用於大量文本,並不知道文章/段落/文檔等可能是什麼。 (爲了Doc2Vec的目的,只要將它們全部視爲「文檔」,您就可以決定從您的語料庫中選擇正確的「文檔」)。標記化將標點符號(如句子之間的句點)保留爲獨立標記。經由infer_vector()
方法,它接受一個強制參數doc_words
,這應該是發生
推斷列表的字符串的令牌就這樣在訓練期間被提供作爲文本words
那些。
您不會在推斷的文本上提供任何標籤:Doc2Vec只會給您一個原始矢量,該矢量在模型學習的關係中很好地適合文本。 (也就是說:矢量很好地預測了文本的單詞,就像在批量訓練期間學習的矢量和內部模型權重在預測訓練文本的單詞方面一樣。)
請注意,很多人已經發現更好通過增加可選的steps
參數(並且可能將開始alpha
的推斷減少爲更像是開始α的批量訓練,0.025至0.05)推斷的結果。
doc2vec-IMDB演示筆記本嘗試複製原始Paragraph Vectors文件中的一個實驗,因此它遵循這裏描述的內容以及其中一位作者(Mikolov)發佈的演示腳本。由於'測試'文檔(沒有他們的目標標籤/已知情緒)在培訓時可能仍然可用,爲了幫助改進文本建模,在無監督的Doc2Vec培訓期間包含其原始文本可能是合理的。 (它們的已知標籤是而不是,用於訓練使用doc-vectors的分類器時使用)。
(請注意,此刻,2017年2月,doc2vec-IMDB演示筆記本有點過期相比目前的gensim Doc2Vec默認&最佳做法 - 尤其是模型沒有給出正確的顯式iter=1
值,以使後面的手動循環和train()
只做正確的訓練通行證。)