AIdeaText commited on
Commit
c0d0a84
verified
1 Parent(s): d6a0739

Update modules/morphosyntax/morphosyntax_interface.py

Browse files
modules/morphosyntax/morphosyntax_interface.py CHANGED
@@ -28,62 +28,84 @@ logger = logging.getLogger(__name__)
28
  def display_morphosyntax_interface(lang_code, nlp_models, t):
29
  """
30
  Interfaz para el an谩lisis morfosint谩ctico
 
 
 
 
31
  """
 
32
  morpho_t = t.get('MORPHOSYNTACTIC', {})
33
- #st.title(morpho_t.get('title', 'AIdeaText - Morphological Analysis'))
34
-
35
  input_key = f"morphosyntax_input_{lang_code}"
36
-
37
  if input_key not in st.session_state:
38
  st.session_state[input_key] = ""
39
 
 
40
  sentence_input = st.text_area(
41
- t['morpho_input_label'],
42
  height=150,
43
- placeholder=t['input_placeholder'],
44
  value=st.session_state[input_key],
45
  key=f"text_area_{lang_code}",
46
  on_change=lambda: setattr(st.session_state, input_key, st.session_state[f"text_area_{lang_code}"])
47
  )
48
 
49
- if st.button(t['analyze_button'], key=f"analyze_button_{lang_code}"):
 
50
  current_input = st.session_state[input_key]
51
  if current_input:
52
- doc = nlp_models[lang_code](current_input)
53
-
54
- # An谩lisis morfosint谩ctico avanzado
55
- advanced_analysis = perform_advanced_morphosyntactic_analysis(current_input, nlp_models[lang_code])
 
 
 
 
 
 
 
 
 
 
 
56
 
57
- # Guardar el resultado en el estado de la sesi贸n
58
- st.session_state.morphosyntax_result = {
59
- 'doc': doc,
60
- 'advanced_analysis': advanced_analysis
61
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
62
 
63
- # Mostrar resultados
64
- display_morphosyntax_results(st.session_state.morphosyntax_result, lang_code, t)
65
-
66
- # Guardar resultados
67
- if store_morphosyntax_result(
68
- st.session_state.username,
69
- current_input,
70
- get_repeated_words_colors(doc),
71
- advanced_analysis['arc_diagram'],
72
- advanced_analysis['pos_analysis'],
73
- advanced_analysis['morphological_analysis'],
74
- advanced_analysis['sentence_structure']
75
- ):
76
- st.success(t['success_message'])
77
- else:
78
- st.error(t['error_message'])
79
  else:
80
- st.warning(t['warning_message'])
 
 
81
  elif 'morphosyntax_result' in st.session_state and st.session_state.morphosyntax_result is not None:
82
-
83
- # Si hay un resultado guardado, mostrarlo
84
- display_morphosyntax_results(st.session_state.morphosyntax_result, lang_code, t)
 
 
85
  else:
86
- st.info(t['initial_message']) # A帽ade esta traducci贸n a tu diccionario
87
 
88
  def display_morphosyntax_results(result, lang_code, t):
89
  if result is None:
 
28
  def display_morphosyntax_interface(lang_code, nlp_models, t):
29
  """
30
  Interfaz para el an谩lisis morfosint谩ctico
31
+ Args:
32
+ lang_code: C贸digo del idioma actual
33
+ nlp_models: Modelos de spaCy cargados
34
+ t: Diccionario de traducciones
35
  """
36
+ # Obtener el diccionario de traducciones morfosint谩cticas
37
  morpho_t = t.get('MORPHOSYNTACTIC', {})
38
+
39
+ # Inicializar el estado de la entrada
40
  input_key = f"morphosyntax_input_{lang_code}"
 
41
  if input_key not in st.session_state:
42
  st.session_state[input_key] = ""
43
 
44
+ # Campo de entrada de texto
45
  sentence_input = st.text_area(
46
+ morpho_t.get('morpho_input_label', 'Enter text to analyze'),
47
  height=150,
48
+ placeholder=morpho_t.get('morpho_input_placeholder', 'Enter your text here...'),
49
  value=st.session_state[input_key],
50
  key=f"text_area_{lang_code}",
51
  on_change=lambda: setattr(st.session_state, input_key, st.session_state[f"text_area_{lang_code}"])
52
  )
53
 
54
+ # Bot贸n de an谩lisis
55
+ if st.button(morpho_t.get('analyze_button', 'Analyze text'), key=f"analyze_button_{lang_code}"):
56
  current_input = st.session_state[input_key]
57
  if current_input:
58
+ try:
59
+ # Procesar el texto
60
+ doc = nlp_models[lang_code](current_input)
61
+
62
+ # Realizar an谩lisis morfosint谩ctico
63
+ advanced_analysis = perform_advanced_morphosyntactic_analysis(
64
+ current_input,
65
+ nlp_models[lang_code]
66
+ )
67
+
68
+ # Guardar resultado en el estado de la sesi贸n
69
+ st.session_state.morphosyntax_result = {
70
+ 'doc': doc,
71
+ 'advanced_analysis': advanced_analysis
72
+ }
73
 
74
+ # Mostrar resultados
75
+ display_morphosyntax_results(
76
+ st.session_state.morphosyntax_result,
77
+ lang_code,
78
+ morpho_t # Pasar morpho_t en lugar de t
79
+ )
80
+
81
+ # Guardar en la base de datos
82
+ if store_morphosyntax_result(
83
+ st.session_state.username,
84
+ current_input,
85
+ get_repeated_words_colors(doc),
86
+ advanced_analysis['arc_diagram'],
87
+ advanced_analysis['pos_analysis'],
88
+ advanced_analysis['morphological_analysis'],
89
+ advanced_analysis['sentence_structure']
90
+ ):
91
+ st.success(morpho_t.get('success_message', 'Analysis saved successfully'))
92
+ else:
93
+ st.error(morpho_t.get('error_message', 'Error saving analysis'))
94
 
95
+ except Exception as e:
96
+ st.error(morpho_t.get('error_processing', f'Error processing text: {str(e)}'))
 
 
 
 
 
 
 
 
 
 
 
 
 
 
97
  else:
98
+ st.warning(morpho_t.get('warning_message', 'Please enter a text to analyze'))
99
+
100
+ # Mostrar resultados previos si existen
101
  elif 'morphosyntax_result' in st.session_state and st.session_state.morphosyntax_result is not None:
102
+ display_morphosyntax_results(
103
+ st.session_state.morphosyntax_result,
104
+ lang_code,
105
+ morpho_t # Pasar morpho_t en lugar de t
106
+ )
107
  else:
108
+ st.info(morpho_t.get('morpho_initial_message', 'Enter text to begin analysis'))
109
 
110
  def display_morphosyntax_results(result, lang_code, t):
111
  if result is None: