¿Cómo uso una incrustación de palabras para asignar un documento a un vector de características, adecuado para su uso con aprendizaje supervisado?
Una incrustación de palabras asigna cada palabra a un vector , donde es un número no demasiado grande (por ejemplo, 500). Las incrustaciones de palabras populares incluyen word2vec y Glove .
Quiero aplicar el aprendizaje supervisado para clasificar documentos. Actualmente estoy asignando cada documento a un vector de características usando la representación de bolsa de palabras, luego aplico un clasificador listo para usar. Me gustaría reemplazar el vector de características de la bolsa de palabras con algo basado en una inclusión de palabras pre-entrenada existente, para aprovechar el conocimiento semántico que contiene la inclusión de palabras. ¿Hay una forma estándar de hacer eso?
Puedo imaginar algunas posibilidades, pero no sé si hay algo que tenga más sentido. Enfoques de candidatos que he considerado:
Podría calcular el vector para cada palabra en el documento y promediarlas todas. Sin embargo, esto parece que podría perder mucha información. Por ejemplo, con la representación de la bolsa de palabras, si hay algunas palabras que son altamente relevantes para la tarea de clasificación y la mayoría de las palabras son irrelevantes, el clasificador puede aprender fácilmente eso; Si promedio los vectores para todas las palabras en el documento, el clasificador no tiene ninguna posibilidad.
La concatenación de los vectores para todas las palabras no funciona, porque no conduce a un vector de características de tamaño fijo. También parece una mala idea porque será demasiado sensible a la ubicación específica de una palabra.
Podría usar la incrustación de palabras para agrupar el vocabulario de todas las palabras en un conjunto fijo de grupos, por ejemplo, 1000 grupos, donde uso la similitud de coseno en los vectores como una medida de la similitud de palabras. Entonces, en lugar de una bolsa de palabras, podría tener una bolsa de grupos: el vector de características que proporciono al clasificador podría ser un vector 1000, donde el componente número cuenta el número de palabras en el documento que son parte del grupo .
Dada una palabra , estas incorporaciones de palabras me permiten calcular un conjunto de las 20 palabras más similares y su puntaje de similitud . Podría adaptar el vector de características tipo bolsa de palabras usando esto. Cuando veo la palabra , además de incrementar el elemento correspondiente a la palabra en , también podría incrementar el elemento correspondiente a la palabra en , incrementar el elemento correspondiente a la palabra en , y así sucesivamente.w 1 , ... , w 20 s 1 , ... , s 20 w w 1 w 1 s 1 w 2 s 2
¿Existe algún enfoque específico que pueda funcionar bien para la clasificación de documentos?
No estoy buscando el párrafo 2vec o doc2vec; esos requieren entrenamiento en un gran corpus de datos, y no tengo un gran corpus de datos. En cambio, quiero usar una incrustación de palabras existente.