Last commit not found
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) | |
} |