¿La salida de codificación de word2vec de ‘cómo estás’ y su salida de codificación de ‘cómo estás’ son iguales?

Leí tus comentarios sobre la maravillosa respuesta de Vvlip. Creo que la Clasificación de secuencia con redes neuronales recurrentes LSTM en Python con Keras – Machine Learning Mastery sería útil para usted.

Si se pregunta si el algoritmo considerará estos dos como diferentes … Le aconsejaría que aprenda la incrustación de los datos en sí y no se preocupe por esto. Si aprende el modelo completo de los datos, obtendrá una mejor integración y una mejor clasificación. Relaciones como estas serán aprendidas por el modelo.

También puede intentar promediar los vectores de palabras o doc2vec.

Ps: – Sí, tienes razón al decir que esto no depende del idioma. La razón por la que recomiendo keras es que tiene un buen marco para aprender el modelo completo; de lo contrario, tendrá que pasar de una implementación basada en gensim (gensim: modelado de temas para humanos). El tutorial de dominio de ML que mencioné tiene una buena explicación. Por supuesto, podría aprender incrustaciones de palabras y luego usarlo con cualquier modelo de sklearn, pero en general si tiene más datos … aprenda las incrustaciones y el modelo completamente de los datos. de esa manera terminas con mejores características (incrustaciones) y mejores resultados de clasificación. He intentado el enfoque gensim + sklearn. Keras funciona mejor, déjame saber lo que funciona para ti.

No.

Investigué profundamente el algoritmo de word2vec e implementé mi propia red neuronal. Puedo responder esta pregunta

En términos generales, la versión original de word2vec solo aprende la representación de palabras. No produce ni aprende la representación de la oración.

Eche un vistazo a este diagrama (word2vec tiene 2 modelos diferentes, bolsa continua de palabras y omisión de gramo, el siguiente es COW).

El orden de las palabras es importante durante el proceso de aprendizaje. Esencialmente, word2vec se basa en el modelo de lenguaje probabilístico. Al alimentar varias palabras (basadas en un tamaño de ventana deslizante), predice la palabra objetivo. Las representaciones se aprenden de las conexiones (pesos) entre la capa de entrada y la capa oculta.

En esta figura, las representaciones son completamente diferentes si cambia la posición de “zorro” y “saltos”.


Algunas actualizaciones sobre la representación de la oración.

Después de obtener la representación de las palabras, en realidad haces algunas cosas increíbles hacia la oración. Podemos sumarlos para representar una oración o documento para una rápida medición de similitud.

En este caso, las representaciones son las mismas entre “cómo estás” y “cómo estás”.

Si está hablando de la representación de la oración y el orden es crítico para algún escenario, esto es lo que necesita.

En realidad, sigue siendo muy simple. todo lo que necesita hacer es agregar otra entrada de entrada representada en una oración o párrafo delante de cada iteración de entrenamiento.

Ingresa un cierto número de palabras con una oración compartida o entrada de párrafo. Esta entrada de entrada de oración (o párrafo) es la misma dentro de la misma oración.

Al ajustar los pesos, puede obtener la representación de la oración, en cuyo caso la información de orden también está incrustada en las representaciones.

Por supuesto, todavía hay muchos detalles que deben aclararse. Si no va a implementar este modelo, algunas bibliotecas como tensorflow o gensim son bastante útiles para usar.

Aquí hay algunos recursos:

[1] http://cs.stanford.edu/~quocle/p

[2] gensim: modelado de temas para humanos

Word2vec en un corpus que contiene “cómo estás” daría un vector distinto de 30 por 1 para cada una de las palabras “cómo”, “eres” y “tú”, suponiendo que el entrenamiento del corpus se realizó con 30 dimensiones como hiperparámetro.

Asumiendo que v1, v2 y v3 son vectores de 30 por uno cada uno, claramente a – b no dará cero ya que v1, v2 y v3 son diferentes para las tres palabras, tienen vectores diferentes porque su contexto de vecindad en El corpus es diferente.

Si la intención es encontrar una gran similitud de oración, entonces un modelo que haga un promedio de todas las palabras en la oración, como doc2vec, puede ayudar.

Otra opción, para una mayor precisión, es utilizar un modelo de secuencia, como la arquitectura recurrente siamesa para la similitud de oraciones.