ฉันใหม่โดยสิ้นเชิงกับ word2vec ดังนั้นโปรดอดทนกับฉัน ฉันมีชุดไฟล์ข้อความแต่ละอันมีชุดทวีตอยู่ระหว่าง 1,000-3,000 ฉันเลือกคำหลักทั่วไป ("kw1") และต้องการค้นหาคำที่มีความหมายเชิงความหมายสำหรับ "kw1" โดยใช้ word2vec ตัวอย่างเช่นหากคำหลักคือ "apple" ฉันคาดว่าจะเห็นคำที่เกี่ยวข้องเช่น "ipad" "os" "mac" ... ตามไฟล์อินพุต ดังนั้นชุดคำศัพท์ที่เกี่ยวข้องสำหรับ "kw1" นี้จะแตกต่างกันสำหรับไฟล์อินพุตแต่ละไฟล์เนื่องจาก word2vec จะได้รับการฝึกอบรมในไฟล์แต่ละไฟล์ (เช่นไฟล์อินพุต 5 ไฟล์เรียกใช้ word2vec 5 ครั้งในแต่ละไฟล์)
เป้าหมายของฉันคือค้นหาชุดคำศัพท์ที่เกี่ยวข้องสำหรับไฟล์อินพุตแต่ละไฟล์ที่มีคำหลักทั่วไป ("kw1") ซึ่งจะใช้เพื่อวัตถุประสงค์อื่น
คำถาม / ข้อสงสัยของฉันคือ:
- มันสมเหตุสมผลหรือไม่ที่จะใช้ word2vec สำหรับงานเช่นนี้? จะใช้เทคนิคหรือไม่หากพิจารณาถึงขนาดเล็กของไฟล์อินพุต?
ฉันได้ดาวน์โหลดรหัสจาก code.google.com: https://code.google.com/p/word2vec/และเพิ่งให้การเรียกใช้แบบแห้งดังนี้:
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
จากผลลัพธ์ของฉันฉันเห็นว่าฉันได้รับข้อความที่มีเสียงดังมากมาย (stopwords) เมื่อฉันใช้เครื่องมือ 'distance' เพื่อให้ได้คำที่เกี่ยวข้องกับ "kw1" ดังนั้นฉันจึงลบ stopwords และคำที่มีเสียงรบกวนอื่น ๆ เช่นผู้ใช้กล่าวถึง แต่ฉันไม่เห็นที่ไหนเลยว่า word2vec ต้องการข้อมูลที่สะอาดหมดจด ...
คุณจะเลือกพารามิเตอร์ที่เหมาะสมได้อย่างไร ฉันเห็นผลลัพธ์ (จากการรันเครื่องมือระยะทาง) แตกต่างกันอย่างมากเมื่อฉันเปลี่ยนพารามิเตอร์เช่น '-window', '-iter' ฉันควรใช้เทคนิคใดเพื่อค้นหาค่าที่ถูกต้องสำหรับพารามิเตอร์ (การทดลองด้วยตนเองและข้อผิดพลาดเป็นไปไม่ได้สำหรับฉันเนื่องจากฉันจะเพิ่มขนาดชุดข้อมูล)