|
|
|
import streamlit as st
|
|
from ..text_analysis.morpho_analysis import perform_advanced_morphosyntactic_analysis
|
|
from ..database.morphosintax_mongo_db import store_student_morphosyntax_result
|
|
from ..chatbot.chatbot import process_chat_input
|
|
|
|
def process_morphosyntactic_input(user_input, lang_code, nlp_models, t):
|
|
if user_input.startswith('/analisis_morfosintactico'):
|
|
text_to_analyze = user_input.split('[', 1)[1].rsplit(']', 1)[0]
|
|
result = perform_advanced_morphosyntactic_analysis(text_to_analyze, nlp_models[lang_code])
|
|
|
|
if result is None or 'arc_diagrams' not in result:
|
|
response = t.get('morphosyntactic_analysis_error', 'Error in morphosyntactic analysis')
|
|
return response, None, None
|
|
|
|
response = t.get('morphosyntactic_analysis_completed', 'Morphosyntactic analysis completed')
|
|
visualizations = result['arc_diagrams']
|
|
|
|
store_student_morphosyntax_result(
|
|
st.session_state.username,
|
|
text_to_analyze,
|
|
visualizations
|
|
)
|
|
|
|
return response, visualizations, result
|
|
else:
|
|
chatbot = st.session_state.morphosyntax_chat_input
|
|
response = chatbot.generate_response(user_input, lang_code)
|
|
return response, None, None
|
|
|