Como uso uma incorporação de palavras para mapear um documento para um vetor de recurso, adequado para uso com aprendizado supervisionado?
Uma incorporação de palavra mapeia cada palavra para um vetor , onde é um número não muito grande (por exemplo, 500). Os casamentos populares de palavras incluem word2vec e Glove .v ∈ R d d
Quero aplicar o aprendizado supervisionado para classificar documentos. Atualmente, estou mapeando cada documento para um vetor de recurso usando a representação de palavras-chave e aplicando um classificador pronto para uso. Gostaria de substituir o vetor de recurso de palavras-chave por algo baseado em uma incorporação de palavras pré-treinada existente, para aproveitar o conhecimento semântico contido na incorporação de palavras. Existe uma maneira padrão de fazer isso?
Posso imaginar algumas possibilidades, mas não sei se há algo que faça mais sentido. Abordagens de candidatos que considerei:
Eu poderia calcular o vetor para cada palavra no documento e calcular a média de todas elas. No entanto, parece que isso pode perder muita informação. Por exemplo, com a representação de palavras-chave, se houver algumas que sejam altamente relevantes para a tarefa de classificação e a maioria das palavras for irrelevante, o classificador poderá aprender isso facilmente; se eu calcular a média dos vetores para todas as palavras do documento, o classificador não terá chance.
Concatenar os vetores para todas as palavras não funciona, porque não leva a um vetor de recurso de tamanho fixo. Também parece uma péssima idéia, pois será muito sensível ao posicionamento específico de uma palavra.
Eu poderia usar a palavra incorporação para agrupar o vocabulário de todas as palavras em um conjunto fixo de agrupamentos, digamos, 1000 agrupamentos, onde eu uso a similaridade de cosseno nos vetores como uma medida de similaridade de palavras. Então, em vez de um conjunto de palavras, eu poderia ter um conjunto de conjuntos: o vetor de recurso que forneço ao classificador poderia ser um vetor de 1000, onde o ésimo componente conta o número de palavras no documento que fazem parte do cluster .eu
Dada uma palavra , essas palavras permitem calcular um conjunto das 20 principais palavras mais semelhantes e sua pontuação de similaridade . Eu poderia adaptar o vetor de recurso parecido com um saco de palavras usando isso. Quando vejo a palavra , além de aumentar o elemento correspondente à palavra em , também posso incrementar o elemento correspondente à palavra por , incrementar o elemento correspondente à palavra por e assim por diante.w 1 , … , w 20 s 1 , … , s 20 w w 1 w 1 s 1 w 2 s 2
Existe alguma abordagem específica que provavelmente funcione bem na classificação de documentos?
Eu não estou procurando paragraph2vec ou doc2vec; eles exigem treinamento em um grande corpus de dados e eu não tenho um grande corpus de dados. Em vez disso, quero usar uma incorporação de palavras existente.