Los siguientes códigos con for-loop solo devuelven un elemento, mientras que esperaba que pudiera devolver muchos elementos. Por ejemplo, en realidad devolvió:
0.3273
Lo que esperaba es
0.8372
0.2847
0.1837
0.3273
...
¿Debo usar .append () o alguna otra cosa? Por favor, dame un consejo de código detallado. Gracias.
def phrase_similarity(phrase):
phrase_vec = phrase_model[phrase]
for a_word in phrase_model.keys():
a_val = phrase_model[a_word]
cos_dis = cosine_similarity(phrase_vec, a_val) #it's numpy.ndarray
cos_dis_str = str(cos_dis.tolist()).strip('[[]]')
return cos_dis_str
3 respuestas
Deje que cos_dis_str sea una lista vacía
cos_dis_str=[]
Entonces un simple apéndice arreglaría eso
cos_dis_str.append(str(cos_dis.tolist()).strip('[[]]'))
Puedes cambiar tu código de esta manera.
def phrase_similarity(phrase):
phrase_vec = phrase_model[phrase]
cos_dis_str = []
for a_word, a_val in phrase_model.items():
cos_dis = cosine_similarity(phrase_vec, a_val).tolist()).strip('[[]]') #it's numpy.ndarray
cos_dis_str.append(str(cos_dis))
return '\n'.join(cos_dis_str)
Cuando se ejecuta el bucle For, cada vez que se sobrescribe os_dis_str. Así que asegúrate de crear una lista para eso y sigue agregando eso. Luego devuelve la lista. Puede acceder a cada uno de los valores individuales desde allí.
cos_dis_str.append(str(cos_dis.tolist()).strip('[[]]'))
Inicialice también cos_dis_str = []
, fuera del ciclo For pero dentro de la función. Espero que esto ayude a entenderlo.
Preguntas relacionadas
Nuevas preguntas
python
Python es un lenguaje de programación multipropósito, de tipificación dinámica y de múltiples paradigmas. Está diseñado para ser rápido de aprender, comprender y usar, y hacer cumplir una sintaxis limpia y uniforme. Tenga en cuenta que Python 2 está oficialmente fuera de soporte a partir del 01-01-2020. Aún así, para preguntas de Python específicas de la versión, agregue la etiqueta [python-2.7] o [python-3.x]. Cuando utilice una variante de Python (por ejemplo, Jython, PyPy) o una biblioteca (por ejemplo, Pandas y NumPy), inclúyala en las etiquetas.