Spaces:
Running
Running
| from ..text_analysis.discourse_analysis import perform_discourse_analysis, compare_semantic_analysis | |
| import streamlit as st | |
| def process_discourse_input(text1, text2, nlp_models, lang_code): | |
| """ | |
| Procesa la entrada para el análisis del discurso | |
| Args: | |
| text1: Texto del primer documento | |
| text2: Texto del segundo documento | |
| nlp_models: Diccionario de modelos de spaCy | |
| lang_code: Código del idioma actual | |
| Returns: | |
| dict: Resultados del análisis | |
| """ | |
| try: | |
| # Obtener el modelo específico del idioma | |
| nlp = nlp_models[lang_code] | |
| # Realizar el análisis | |
| analysis_result = perform_discourse_analysis(text1, text2, nlp, lang_code) | |
| if analysis_result['success']: | |
| return { | |
| 'success': True, | |
| 'analysis': analysis_result | |
| } | |
| else: | |
| return { | |
| 'success': False, | |
| 'error': 'Error en el análisis del discurso' | |
| } | |
| except Exception as e: | |
| logger.error(f"Error en process_discourse_input: {str(e)}") | |
| return { | |
| 'success': False, | |
| 'error': str(e) | |
| } | |
| def format_discourse_results(result): | |
| """ | |
| Formatea los resultados del análisis para su visualización | |
| Args: | |
| result: Resultado del análisis | |
| Returns: | |
| dict: Resultados formateados | |
| """ | |
| try: | |
| if not result['success']: | |
| return result | |
| analysis = result['analysis'] | |
| return { | |
| 'success': True, | |
| 'graph1': analysis['graph1'], | |
| 'graph2': analysis['graph2'], | |
| 'key_concepts1': analysis['key_concepts1'], | |
| 'key_concepts2': analysis['key_concepts2'], | |
| 'table1': analysis['table1'], | |
| 'table2': analysis['table2'] | |
| } | |
| except Exception as e: | |
| logger.error(f"Error en format_discourse_results: {str(e)}") | |
| return { | |
| 'success': False, | |
| 'error': str(e) | |
| } |