Dada una frase: "Cuando abro el ?? puerta se empieza a calentarse de forma automática"
Me gustaría obtener la lista de posibles palabras en ?? con una probabilidad
El concepto básico utilizado en el modelo word2vec es "predecir" una palabra dado el contexto circundante.
Una vez que se construye el modelo, ¿cuál es la operación correcta de vectores de contexto para realizar mi tarea de predicción en nuevas oraciones?
¿Es simplemente una suma lineal?
model.most_similar(positive=['When','I','open','the','door','it','starts' ,'heating','automatically'])
Respuestas:
Word2vec funciona en dos modelos CBOW y skip-gram. Tomemos el modelo CBOW, ya que su pregunta va de la misma manera que predice la palabra objetivo, dadas las palabras circundantes.
Básicamente, el modelo desarrolla matrices de ponderación de entrada y salida, que dependen de las palabras de contexto de entrada y la palabra de destino de salida con la ayuda de una capa oculta. Por lo tanto, la retropropagación se utiliza para actualizar los pesos cuando la diferencia de error entre el vector de salida pronosticado y la matriz de salida actual.
Básicamente hablando, la predicción de la palabra objetivo a partir de palabras de contexto dadas se usa como una ecuación para obtener la matriz de peso óptima para los datos dados.
Para responder a la segunda parte, parece un poco complejo que solo una suma lineal.
h
de tamaño de capa ocultaNx1
syn1
(word2vec.c
ogensim
) que es de tamañoVxN
syn1
porh
, el vector resultante será dez
tamañoVx1
y = softmax(z)
con el tamañoVx1
, donde la probabilidad más alta denota la representación única de la palabra objetivo en vocabulario.V
denota el tamaño del vocabulario yN
denota el tamaño del vector incrustado.Fuente: http://cs224d.stanford.edu/lecture_notes/LectureNotes1.pdf
Actualización: los modelos de memoria a corto y largo plazo actualmente están haciendo un gran trabajo al predecir las siguientes palabras. Los modelos seq2seq se explican en el tutorial de tensorflow . También hay una publicación de blog sobre generación de texto.
fuente
syn1
simplemente guardando el modelo. sí, se ignora el orden, para la aplicación uno podría ir con el modelo seq2seq basado en LSTM.La predicción de palabras faltantes se ha agregado como una funcionalidad en la última versión de Word2Vec. Por supuesto, su oración debe coincidir con la sintaxis de entrada del modelo de Word2Vec utilizada para entrenar el modelo (letras minúsculas, palabras de detención, etc.)
Uso para predecir las 3 palabras principales para "¿Cuándo abro? Puerta":
fuente
center
estaba entre la tercera y la cuarta palabra? Eso no tiene sentido para mí. Me imagino que solo se pueden poner palabras de contexto de números pares y seleccionaría la palabra entrefloor(len(n)/2))
yfloor(len(n)/2))+1