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