valor vacio usar una saber recorrer esta ejemplo diccionario dentro consultar como clave cargar python gensim word2vec

vacio - recorrer diccionario python



Cómo verificar si existe una clave en un modelo entrenado en word2vec o no (5)

Generalmente uso un filtro:

for doc in labeled_corpus: words = filter(lambda x: x in model.vocab, doc.words)

Este es un método simple para superar el error KeyError en palabras invisibles.

He entrenado un modelo de word2vec usando un corpus de documentos con Gensim. Una vez que el modelo está entrenando, estoy escribiendo el siguiente fragmento de código para obtener el vector de características en bruto de una palabra, diga "ver".

myModel["view"]

Sin embargo, obtengo un KeyError para la palabra que probablemente se deba a que no existe como clave en la lista de claves indexadas por word2vec. ¿Cómo puedo verificar si una clave sale del índice antes de intentar obtener el vector de características en bruto?


Hola, sé que estoy llegando tarde a esta publicación, pero aquí hay un fragmento de código que puede manejar bien este problema. Yo mismo lo uso en mi código y funciona como un encanto :)

size = 300 #word vector size word = ''food'' #word token try: wordVector = model[word].reshape((1, size)) except KeyError: print "not found! ", word

NOTA: Estoy usando la biblioteca Gensim de python para los modelos de word2vec


Respondiendo a mi propia pregunta aquí.

Word2Vec proporciona un método denominado contiene (''ver'') que devuelve Verdadero o Falso en función de si la palabra correspondiente se ha indexado o no.


Word2Vec también proporciona un miembro ''vocab'', al que puede acceder directamente.

Utilizando un enfoque pitonista:

if word in w2v_model.vocab: # Do something

EDITAR Desde la versión 2.0 de gensim, la API para Word2Vec cambió. Para acceder al vocabulario debes usar esto ahora:

if word in w2v_model.wv.vocab: # Do something

EDITAR 2 El atributo ''wv'' está en desuso y se eliminará en gensim 4.0.0. Ahora volvemos a la respuesta original de OP:

if word in w2v_model.vocab: # Do something


convertir el modelo en vectores con

word_vectors = model.wv

entonces podemos usar

if ''word'' in word_vectors.vocab