import streamlit as st import nltk from secciones.procesar_textos import procesar_textos # Asegúrate de que esta ruta sea correcta from secciones.home_page import home_page from secciones.info_page import info_page def main(): """ Función principal que ejecuta la aplicación Streamlit. Esta función se encarga de configurar la página, cargar el modelo y el vectorizador, y gestionar el menú de navegación de la aplicación. Dependiendo de la opción seleccionada en el menú, renderiza diferentes vistas como la página de inicio, la página de análisis de texto o la página de información. :return: None. Ejecuta y mantiene activa la aplicación Streamlit. """ # Configuración de la página logo_log_bar = r'imagenes/Captura de pantalla 2024-01-06 a las 17.13.19.png' st.set_page_config(page_title='Análisis sentimientos', page_icon=logo_log_bar, layout="wide") # Descargar recursos de NLTK @st.cache_data def descargar_recursos_nltk(): """ Descarga los recursos necesarios de NLTK. Esta función descarga los componentes 'punkt' y 'stopwords' de NLTK, que son necesarios para tokenizar y preprocesar el texto en las funciones de análisis. :return: None. """ nltk.download('punkt') nltk.download('stopwords') descargar_recursos_nltk() # Menú de opciones with st.sidebar: # Imagen y título del menú centrados st.image("imagenes/uoc.png", width=290) # Tamaño más grande para el logo st.markdown('

Menú de Navegación

', unsafe_allow_html=True) # Opciones del menú con emojis como iconos opciones_menu = { "Home": "🏠 Home", "Analizar texto": "🔍 Analizar texto", "Info": "ℹ️ Info" } # Valor predeterminado para 'selected' if 'selected' not in st.session_state: st.session_state['selected'] = "Home" # Estilo personalizado para los botones btn_style = """ """ st.markdown(btn_style, unsafe_allow_html=True) # Crear botones en la barra lateral para cada opción del menú for opcion, etiqueta in opciones_menu.items(): if st.button(etiqueta, key=opcion, use_container_width=True): st.session_state['selected'] = opcion # Vista de información if st.session_state['selected'] == "Home": st.image("imagenes/uoc2.png", use_column_width=True) home_page() # Analizar texto elif st.session_state['selected'] == "Analizar texto": st.image("imagenes/uoc2.png", use_column_width=True) procesar_textos() # Info elif st.session_state['selected'] == "Info": st.image("imagenes/uoc2.png", use_column_width=True) info_page() if __name__ == "__main__": main()