AIdeaText commited on
Commit
5a6bd8e
1 Parent(s): 08ac06d

Create current_situation_interface.py

Browse files
modules/studentact/current_situation_interface.py ADDED
@@ -0,0 +1,106 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ def display_current_situation_interface(lang_code, nlp_models, t):
2
+ """
3
+ Interfaz simplificada para el análisis inicial, enfocada en recomendaciones directas.
4
+ """
5
+ st.markdown("## Análisis Inicial de Escritura")
6
+
7
+ # Container principal con dos columnas
8
+ with st.container():
9
+ # Columnas para entrada y resultados
10
+ input_col, results_col = st.columns([1,2])
11
+
12
+ with input_col:
13
+ st.markdown("### Ingresa tu texto")
14
+ text_input = st.text_area(
15
+ t.get('input_prompt', "Escribe o pega tu texto aquí:"),
16
+ height=400,
17
+ key=generate_unique_key("initial_analysis", "input"),
18
+ help="Este texto será analizado para darte recomendaciones personalizadas"
19
+ )
20
+
21
+ if st.button(
22
+ t.get('analyze_button', "Analizar mi escritura"),
23
+ type="primary",
24
+ disabled=not text_input,
25
+ use_container_width=True
26
+ ):
27
+ try:
28
+ with st.spinner(t.get('processing', "Analizando...")):
29
+ # Procesar texto y obtener métricas
30
+ doc = nlp_models[lang_code](text_input)
31
+ metrics = analyze_text_dimensions(doc)
32
+
33
+ # Mostrar resultados en la columna derecha
34
+ with results_col:
35
+ display_recommendations(metrics, t)
36
+
37
+ # Opción para ver detalles
38
+ with st.expander("🔍 Ver análisis detallado", expanded=False):
39
+ display_current_situation_visual(doc, metrics)
40
+
41
+ except Exception as e:
42
+ logger.error(f"Error en análisis: {str(e)}")
43
+ st.error(t.get('analysis_error', "Error al analizar el texto"))
44
+
45
+ def display_recommendations(metrics, t):
46
+ """
47
+ Muestra recomendaciones basadas en las métricas del texto.
48
+ """
49
+ st.markdown("### Recomendaciones Personalizadas")
50
+
51
+ # Definir umbrales
52
+ THRESHOLDS = {
53
+ 'vocabulary': 0.7,
54
+ 'structure': 0.6,
55
+ 'cohesion': 0.65
56
+ }
57
+
58
+ # Evaluar métricas y mostrar recomendaciones
59
+ recommendations = []
60
+
61
+ # 1. Recomendaciones morfosintácticas
62
+ st.markdown("#### Ejercicios de Análisis Morfosintáctico")
63
+ if metrics['structural_complexity'] < THRESHOLDS['structure']:
64
+ st.markdown("""
65
+ 📝 **Para mejorar la estructura de tus textos:**
66
+ 1. Analiza la estructura de 3 párrafos usando diagramas de arco
67
+ 2. Practica combinando oraciones simples en compuestas
68
+ 3. Identifica y clasifica tipos de oraciones en un texto académico
69
+ 4. Realiza ejercicios de variación sintáctica
70
+ """)
71
+ else:
72
+ st.success("✨ ¡Buen manejo de estructuras! Continúa practicando para mantener el nivel.")
73
+
74
+ # 2. Recomendaciones semánticas
75
+ st.markdown("#### Ejercicios de Análisis Semántico")
76
+ if metrics['vocabulary_richness'] < THRESHOLDS['vocabulary']:
77
+ st.markdown("""
78
+ 📚 **Para enriquecer tu vocabulario:**
79
+ A. Crea mapas conceptuales de tus lecturas
80
+ B. Identifica campos semánticos en textos académicos
81
+ C. Practica la sustitución léxica en párrafos
82
+ D. Desarrolla glosarios temáticos
83
+ E. Analiza relaciones semánticas entre conceptos
84
+ """)
85
+ else:
86
+ st.success("📖 ¡Excelente riqueza léxica! Sigue expandiendo tu vocabulario.")
87
+
88
+ # 3. Recomendaciones de cohesión
89
+ if metrics['cohesion_score'] < THRESHOLDS['cohesion']:
90
+ st.warning("""
91
+ 🔄 **Para mejorar la cohesión de tus textos:**
92
+ - Practica el uso de conectores textuales
93
+ - Identifica cadenas léxicas en textos modelo
94
+ - Realiza ejercicios de referencia y correferencia
95
+ """)
96
+
97
+ # Botón para comenzar ejercicios
98
+ st.markdown("---")
99
+ col1, col2, col3 = st.columns([1,2,1])
100
+ with col2:
101
+ st.button(
102
+ "🎯 Comenzar ejercicios recomendados",
103
+ type="primary",
104
+ use_container_width=True,
105
+ key="start_exercises"
106
+ )