File size: 2,075 Bytes
4d7f7d1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
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)
        }