Update modules/morphosyntax/morphosyntax_interface.py
Browse files
modules/morphosyntax/morphosyntax_interface.py
CHANGED
@@ -172,19 +172,37 @@ def display_morphosyntax_interface(lang_code, nlp_models, morpho_t):
|
|
172 |
logger.error(f"Error: {str(e)}")
|
173 |
|
174 |
|
175 |
-
def display_morphosyntax_results(
|
176 |
-
"""
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
190 |
|
|
|
172 |
logger.error(f"Error: {str(e)}")
|
173 |
|
174 |
|
175 |
+
def display_morphosyntax_results(result, lang_code, morpho_t):
|
176 |
+
"""
|
177 |
+
Muestra solo el diagrama de arco.
|
178 |
+
Args:
|
179 |
+
result: Diccionario con el documento procesado y su an谩lisis
|
180 |
+
lang_code: C贸digo del idioma
|
181 |
+
morpho_t: Diccionario de traducciones
|
182 |
+
"""
|
183 |
+
if result is None:
|
184 |
+
return
|
185 |
+
|
186 |
+
try:
|
187 |
+
doc = result['doc']
|
188 |
+
sentences = list(doc.sents)
|
189 |
+
for i, sent in enumerate(sentences):
|
190 |
+
try:
|
191 |
+
st.subheader(f"{morpho_t.get('sentence', 'Sentence')} {i+1}")
|
192 |
+
html = displacy.render(sent, style="dep", options={
|
193 |
+
"distance": 100,
|
194 |
+
"arrow_spacing": 20,
|
195 |
+
"word_spacing": 30
|
196 |
+
})
|
197 |
+
html = html.replace('height="375"', 'height="200"')
|
198 |
+
html = re.sub(r'<svg[^>]*>', lambda m: m.group(0).replace('height="450"', 'height="300"'), html)
|
199 |
+
html = re.sub(r'<g [^>]*transform="translate\((\d+),(\d+)\)"',
|
200 |
+
lambda m: f'<g transform="translate({m.group(1)},50)"', html)
|
201 |
+
html = f'<div class="arc-diagram-container">{html}</div>'
|
202 |
+
st.write(html, unsafe_allow_html=True)
|
203 |
+
except Exception as e:
|
204 |
+
logger.error(f"Error en diagrama {i}: {str(e)}")
|
205 |
+
continue
|
206 |
+
except Exception as e:
|
207 |
+
logger.error(f"Error en display_morphosyntax_results: {str(e)}")
|
208 |
|