ubuntu'da gensim kullanıyorum. sürüm 0.12.4. benim word2vec modelim tutarlı değil. Ben her zaman aynı kesin cümlelere ve aynı parametreye dayanarak modeli inşa ediyorum, yine de kelimelerin farklı sunumları var. Burada gensim word2vec tutarsız sonuçlar veriyor
kodudur (i ilk görevinden çaldığını)>>> from nltk.corpus import brown
>>> from gensim.models import Word2Vec
>>> sentences = brown.sents()[:100]
>>> model = Word2Vec(sentences, size=10, window=5, min_count=5, workers=4)
>>> model[sentences[0][0]]
array([ 0.04913874, 0.04574081, -0.07402877, -0.03270053, 0.06598952,
0.04157289, 0.05075986, 0.01770534, -0.03796235, 0.04594197], dtype=float32)
>>> model = Word2Vec(sentences, size=10, window=5, min_count=5, workers=4)
>>> model[sentences[0][0]]
array([ 0.04907205, 0.04569579, -0.07379777, -0.03273782, 0.06579078,
0.04167712, 0.05083019, 0.01780009, -0.0378389 , 0.04578455], dtype=float32)
>>> model = Word2Vec(sentences, size=10, window=5, min_count=5, workers=4)
>>> model[sentences[0][0]]
array([ 0.04906179, 0.04569826, -0.07382379, -0.03274316, 0.06583244,
0.04166647, 0.0508585 , 0.01777468, -0.03784611, 0.04578935], dtype=float32)
Ayrıca bazı sabit int tohum yaymaya çalıştık ama bu hiç yardımcı görünmektedir. Ayrıca yardım etmeyen gensim'i de yeniden yüklemeyi denedim.
Modelimi nasıl dengeleyeceğiniz hakkında bir fikriniz var mı?
Olabilir Eğer belirtildiği gibi PYTHONHASHSEED ortam değişkeni ayarlamak için deneyin, fark istikrarsızlık önemli hata yaymak için yeterli yeterli değildir. Üçüncü veya dördüncü ondalık basamaktaki değişiklikler, yok sayılacak kadar küçüktür. Ayrıca, float32'nin (aslında tüm kayan nokta değerleri) hassaslık kaybı gösterdiğine dikkat edin; ilk bakışta gördüğünüz hassasiyet düzeyini saklayabilmenin bir zorunluluktur. –
arasındaki fark aslında önemli olabilir. Gönderdiğim örnek çok az miktarda veri kullanıyor. Sadece 1 işçi kullanarak modeli stabilize edebilirsiniz ve bu tutarlı sonuçlar verecektir –
Gerçekten mi? Gözlemlediğiniz maksimum fark neydi? Bilmek çok yararlı olabilir. –