Estou trabalhando na análise de sentimentos sobre tweets usando o word2vec como representação de palavras.
Eu treinei meu modelo word2vec. Mas quando vou treinar meu classificador, enfrento o problema de que cada tweet tem tamanho diferente e o classificador (RandomForest) precisa que todos os exemplos sejam do mesmo tamanho.
Atualmente, para cada tweet, estou calculando a média dos vetores de todas as suas palavras, para terminar com uma representação vetorial do tweet.
Por exemplo: Meu modelo word2vec representa cada palavra como vetores de tamanho 300.
Eu Tweet1
formei por 10 palavras e Tweet2
por 5 palavras.
Então, o que eu faço é, por Tweet1
(v1_Tweet1 + v2_Tweet1 + ... +v10_Tweet1)/10 = v_Tweet1 #avg vector of 300 elements.
Para Tweet2
:
(v1_Tweet2 + v2_Tweet2 + ... +v5_Tweet1)/5 = v_Tweet2 #avg vector of 300 elements.
* Sendo v1_TweetX o vetor da primeira palavra do TweetX e assim por diante.
Isso funciona 'bem', mas eu gostaria de saber que outras abordagens você adota para superar os diferentes tamanhos nos exemplos de trem e texto para o classificador.
Obrigado.