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