|
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: |
|
|
|
nlp = nlp_models[lang_code] |
|
|
|
|
|
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) |
|
} |