Sono totalmente nuovo in word2vec, quindi ti prego di sopportarlo. Ho un set di file di testo ciascuno contenente un set di tweet, tra 1000-3000. Ho scelto una parola chiave comune ("kw1") e voglio trovare termini semanticamente rilevanti per "kw1" usando word2vec. Ad esempio, se la parola chiave è "apple", mi aspetterei di vedere termini correlati come "ipad" "os" "mac" ... in base al file di input. Quindi questo insieme di termini correlati per "kw1" sarebbe diverso per ogni file di input poiché word2vec verrebbe addestrato su singoli file (ad es. 5 file di input, esegui word2vec 5 volte su ciascun file).
Il mio obiettivo è trovare set di termini correlati per ciascun file di input data la parola chiave comune ("kw1"), che verrebbe utilizzata per altri scopi.
Le mie domande / dubbi sono:
- Ha senso usare word2vec per un'attività come questa? è tecnicamente corretto utilizzare considerando le dimensioni ridotte di un file di input?
Ho scaricato il codice da code.google.com: https://code.google.com/p/word2vec/ e l'ho appena eseguito come segue:
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
Dai miei risultati ho visto che sto ricevendo molti termini rumorosi (parole d'ordine) quando sto usando lo strumento "distanza" per ottenere termini correlati a "kw1". Quindi ho rimosso le parole d'ordine e altri termini rumorosi come le menzioni dell'utente. Ma non ho visto da nessuna parte che word2vec richiede dati di input puliti ...?
Come scegli i parametri giusti? Vedo che i risultati (dall'esecuzione dello strumento distanza) variano notevolmente quando cambio parametri come '-window', '-iter'. Quale tecnica dovrei usare per trovare i valori corretti per i parametri. (la prova manuale e l'errore non sono possibili per me poiché ingrandirò il set di dati).