Word2vec için tamamen yeniyim, bu yüzden lütfen benimle taşıyın. Ben 1000-3000 arasında, tweets bir dizi içeren metin dosyaları bir dizi var. Ben ortak bir anahtar kelime ("kw1") seçtim ve word2vec kullanarak "kw1" için anlamsal olarak alakalı terimler bulmak istiyor. Örneğin, anahtar kelime "elma" ise, girdi dosyasına dayalı olarak "ipad" "os" "mac" gibi ilgili terimleri görmeyi beklerim. Bu nedenle, "kw1" ile ilgili bu terim kümesi, her girdi dosyası için farklı olacaktır, çünkü word2vec tek tek dosyalar üzerinde eğitilecektir (örn., 5 girdi dosyası, her dosyada 5 kez word2vec çalıştırın).
Amacım, diğer bazı amaçlar için kullanılacak ortak anahtar kelime ("kw1") verildiğinde, her bir giriş dosyası için ilgili terim kümelerini bulmaktır.
Sorularım / şüphelerim:
- Böyle bir görev için word2vec kullanmak mantıklı mı? bir girdi dosyasının küçük boyutu göz önünde bulundurulduğunda teknik olarak doğru mu?
Kodu code.google.com: https://code.google.com/p/word2vec/ adresinden indirdim ve aşağıdaki gibi kuru bir çalışma verdim :
time ./word2vec -train $file -output vectors.bin -cbow 1 -size 200 -window 10 -negative 25 -hs 1 -sample 1e-3 -threads 12 -binary 1 -iter 50
./distance vectors.bin
Benim sonuçlardan "kw1" ile ilgili terimleri almak için 'distance' aracını kullanırken birçok gürültülü terimler (stopwords) alıyorum gördüm. Bu yüzden stopwords ve kullanıcı söz gibi diğer gürültülü terimleri kaldırdım. Ama word2vec temiz girdi verileri gerektiren bir yerde görmedim ...?
Doğru parametreleri nasıl seçersiniz? '-Window', '-iter' gibi parametreleri değiştirdiğimde sonuçların mesafe aracını çalıştırdığından çok değiştiğini görüyorum. Parametreler için doğru değerleri bulmak için hangi tekniği kullanmalıyım. (veri kümesini ölçeklendireceğim için manuel deneme ve hata benim için mümkün değil).