Errores de tipo múltiple wordcloud en Python
Estoy tan confundido. Estoy tratando de hacer un informe de mi conjunto de datos, pero sigo recibiendo errores no puedo imaginar... El conjunto de datos no es texto, es un archivo csv.
Tengo un código completo por encima de éste que limpia los datos y añade columnas de anaylsis sentimental, etc. Pero esta es la parte de mi código:
#create wordcloud to see what kind of words apear in the reviews
from wordcloud import WordCloud
import matplotlib.pyplot as plt
def show_wordcloud(data, title = None):
wordcloud = WordCloud(
background_color='white',
max_words=200,
max_font_size=40,
scale=3,
random_state=42
).generate(str(data))
fig = plt.figure(1, figsize = (20,20))
plt.axis('off')
plt.title('Review words')
if title:
fig.suptitle(title, fontsize = 20)
fig.subplots_adjust(top = 2.3)
plt.imshow(wordcloud)
plt.show()
#print wordcloud
show_wordcloud(reviews_df['review'])
El error de mi terminal Python es:
>>> from wordcloud import WordCloud
import matplotlib.pyplot as plt
def show_wordcloud(data, title = None):
wordcloud = WordCloud(
background_color='white',
max_words=200,
max_font_size=40,
scale=3,
random_state=42
).generate(str(data))
fig = plt.figure(1, figsize = (20,20))
plt.axis('off')
plt.title('Review words')
if title:
fig.suptitle(title, fontsize = 20)
fig.subplots_adjust(top = 2.3)
plt.imshow(wordcloud)
plt.show()
#print wordcloud
show_wordcloud(reviews_df['review'])
>>> import matplotlib.pyplot as plt
>>> def show_wordcloud(data, title = None):
... wordcloud = WordCloud(
... background_color='white',
... max_words=200,
... max_font_size=40,
... scale=3,
... random_state=42
... ).generate(str(data))
...
>>> fig = plt.figure(1, figsize = (20,20))
>>> plt.axis('off')
(0.0, 1.0, 0.0, 1.0)
>>> plt.title('Review words')
Text(0.5, 1.0, 'Review words')
>>> if title:
... fig.suptitle(title, fontsize = 20)
... fig.subplots_adjust(top = 2.3)
...
Traceback (most recent call last):
File "", line 1, in
**NameError: name 'title' is not defined**
>>> plt.imshow(wordcloud)
Traceback (most recent call last):
File "", line 1, in
**NameError: name 'wordcloud' is not defined**
>>> plt.show()
>>> #print wordcloud
>>>
>>> show_wordcloud(reviews_df['review'])
Traceback (most recent call last):
File "", line 1, in
**NameError: name 'reviews_df' is not defined**
>>>
¿Qué estoy haciendo mal? ¿Podría alguien ayudar?
Pregunta hecha hace 3 años, 4 meses, 28 días - Por debugdynamo05ee
2 Respuestas:
-
El error que estás experimentando se debe a que el código está intentando acceder a variables que no están definidas en el ámbito en el que se están llamando. Para solucionar estos problemas, aquí tienes algunas correcciones:
- name 'title' is not defined: Este error ocurre porque estás intentando usar la variable `title` sin haberla definido previamente en la función. Para solucionarlo, puedes añadir un valor por defecto a `title` en la definición de la función `show_wordcloud`.
python def show_wordcloud(data, title = None):
- name 'wordcloud' is not defined: Este error se produce porque estás intentando mostrar la imagen del `wordcloud` fuera de la función `show_wordcloud`. Para solucionarlo, mueve la parte de la visualización de la nube de palabras dentro de la función.
python plt.imshow(wordcloud) plt.show()
- name 'reviews_df' is not defined: Aquí el error indica que la variable `reviews_df` no está definida. Asegúrate de que has importado tu conjunto de datos correctamente y que `reviews_df` es el nombre correcto de tu DataFrame que contiene las reseñas.
Al realizar estas correcciones, tu código debería funcionar correctamente y podrás generar la nube de palabras. Si sigues experimentando problemas, por favor házmelo saber para poder ayudarte.
Respondida el Dec 18, 2020 a las 16:03 - por Gpt
Votos positivos: 0 | Votos negativos: 0 -
El error se produce porque intentas utilizar variables (
reviews_df
ytitle
) que no están definidas en el contexto de la funciónshow_wordcloud
. Estas variables deben pasarse como argumentos a la función o definirse dentro de la función.Aquí tienes un código corregido:
python from wordcloud import WordCloud import matplotlib.pyplot as plt def show_wordcloud(data, title=None): wordcloud = WordCloud( background_color='white', max_words=200, max_font_size=40, scale=3, random_state=42 ).generate(str(data)) fig = plt.figure(1, figsize=(20, 20)) plt.axis('off') plt.title('Review words') if title: fig.suptitle(title, fontsize=20) fig.subplots_adjust(top=2.3) plt.imshow(wordcloud) plt.show()
Define la variable 'reviews_df' (suponiendo que es un DataFrame)
reviews_df = pd.DataFrame({'review': ['Esto es una revisión', 'Esta es otra revisión']})Llama a la función 'show_wordcloud' con los argumentos correctos
show_wordcloud(reviews_df['review'], title='Título del gráfico')Cambios realizados:
Añadido
reviews_df
como argumento a la funciónshow_wordcloud
. Añadido un valor predeterminado para el argumentotitle
en la funciónshow_wordcloud
. Definidoreviews_df
como un DataFrame de ejemplo. Llamado a la funciónshow_wordcloud
con los argumentos correctos.Nota: Este código supone que has importado
pandas
comopd
y quereviews_df
es un DataFrame que contiene una columna llamadareview
con valores de texto.Respondida el Dec 18, 2020 a las 16:10 - por Gemini
Votos positivos: 0 | Votos negativos: 0