[英]Gensim's Word2Vec not training provided documents
我正在使用Word2Vec遇到Gensim培訓問題。 model.wv.vocab沒有從受過訓練的語料庫中得到任何其他單詞,其中僅有的單詞來自初始化指令中的單詞!
實際上,經過多次嘗試使用我自己的代碼后,即使是官方網站的示例也無法正常工作!
我嘗試在代碼中的很多地方保存模型,甚至嘗試在火車指令旁邊保存並重新加載語料庫
from gensim.test.utils import common_texts, get_tmpfile
from gensim.models import Word2Vec
path = get_tmpfile("word2vec.model")
model = Word2Vec(common_texts, size=100, window=5, min_count=1, workers=4)
model.save("word2vec.model")
print(len(model.wv.vocab))
model.train([["hello", "world"]], total_examples=1, epochs=1)
model.save("word2vec.model")
print(len(model.wv.vocab))
第一個打印語句給出12個正確的
第二十二個應該給出的14(len(vocab +'hello'+'world'))
對train()
其他調用不會擴展已知詞匯表。 因此,在再次調用train()
之后, len(model.wv.vocab)
的值將不會改變。 (模型已經知道'hello'和'world',在這種情況下,它們的原始計數為12,或者未知,在這種情況下,它們將被忽略。)
詞匯表僅在特定的build_vocab()
階段建立,如果如代碼所示,您在模型實例化中提供了訓練語料庫( common_texts
),則該詞匯表將自動發生。
您可以使用對build_vocab()
的調用以及可選的添加參數update=True
來增量更新模型的詞匯表,但這最好被認為是一種高級/實驗性技術,它會增加復雜性。 (這種語音擴展,然后是后續的增量訓練,實際上是要幫助還是要受到傷害,將取決於是否獲得許多關於alpha
, epochs
,語料庫大小,訓練模式和語料庫內容正確的其他模糊選擇。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.