Spaces:
Sleeping
Sleeping
| 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 | |
| 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('<h1 style="text-align: center; color: black;">Menú de Navegación</h2>', 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 = """ | |
| <style> | |
| .css-2trqyj { | |
| display: flex; | |
| justify-content: center; | |
| align-items: center; | |
| font-size: 18px; | |
| font-weight: bold; | |
| } | |
| </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() | |