Eu sou totalmente novo no word2vec, então pls aguenta comigo. Eu tenho um conjunto de arquivos de texto, cada um contendo um conjunto de tweets, entre 1000 e 3000. Eu escolhi uma palavra-chave comum ("kw1") e deseja encontrar termos semanticamente relevantes para "kw1" usando o word2vec. Por exemplo, se a palavra-chave for "apple", esperaria ver termos relacionados, como "ipad" "os" "mac" ... com base no arquivo de entrada. Portanto, esse conjunto de termos relacionados para "kw1" seria diferente para cada arquivo de entrada, pois o word2vec seria treinado em arquivos individuais (por exemplo, 5 arquivos de entrada, execute o word2vec 5 vezes em cada arquivo).
Meu objetivo é encontrar conjuntos de termos relacionados para cada arquivo de entrada, dada a palavra-chave comum ("kw1"), que seria usada para outros fins.
Minhas perguntas / dúvidas são:
- Faz sentido usar o word2vec para uma tarefa como essa? é tecnicamente correto usar o tamanho pequeno de um arquivo de entrada?
Fiz o download do código em code.google.com: https://code.google.com/p/word2vec/ e acabei de executar o processo da seguinte maneira:
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
Pelos meus resultados, vi que estou recebendo muitos termos barulhentos (palavras irrelevantes) quando estou usando a ferramenta 'distance' para obter termos relacionados a "kw1". Então, removi palavras irrelevantes e outros termos barulhentos, como menções de usuários. Mas eu não vi em nenhum lugar que o word2vec exija dados de entrada limpos ...?
Como você escolhe os parâmetros certos? Vejo que os resultados (da execução da ferramenta de distância) variam muito quando altero parâmetros como '-window', '-iter'. Qual técnica devo usar para encontrar os valores corretos para os parâmetros. (tentativa e erro manuais não são possíveis para mim, pois estarei ampliando o conjunto de dados).