簡體   English   中英

Gensim的Word2Vec不培訓提供的文檔

[英]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來增量更新模型的詞匯表,但這最好被認為是一種高級/實驗性技術,它會增加復雜性。 (這種語音擴展,然后是后續的增量訓練,實際上是要幫助還是要受到傷害,將取決於是否獲得許多關於alphaepochs ,語料庫大小,訓練模式和語料庫內容正確的其他模糊選擇。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM