| 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)
|
| } |