import streamlit as st
import tempfile
from pathlib import Path
import base64
import os
import sys
sys.path.append(os.path.join(os.path.dirname(__file__), "./src"))
from verificaUD import verificaUD
print("Verifica-UD running")
translations = {
'🇧🇷': {
'title': 'Verifica-UD',
'subtitle': 'Um verificador de textos de Português Brasileiro anotados segundo as diretrizes das Universal Dependencies',
'input_label': 'Escolha um arquivo .conllu de até 200MB para iniciar a verificação',
'buscando': 'Buscando',
'intro': 'O Verifica-UD faz uma verificação estrutural, léxica e sintática da anotação de textos do Português brasileiro, seguindo o modelo das Universal Dependencies. O Verifica-UD foi desenvolvido dentro do projeto POeTiSA.',
'to_cite': 'Clique aqui para citar o Verifica-UD',
'not_conllu': 'Este arquivo não está no formato correto.',
'no_file': '... à espera de um arquivo .conllu',
'file_uploaded': 'Arquivo recebido corretamente',
'download': 'Baixe o relatório completo.',
'file_name': 'Nome do arquivo',
'sentences': 'Número total de sentenças',
'err': 'erros',
'wrn': 'avisos',
'errFound': 'Erros encontrados',
'wrnFound': 'Avisos emitidos sobre possíveis erros',
'structural': 'estrutural(is)',
'lexical': 'lexical(is)',
'sintatical': 'sintático(s)',
'sentencesOk': 'Número de sentenças sem erros',
'sentencesClean': 'Número de sentenças sem erros ou avisos',
'struct_err': 'Erros estruturais',
'struct_wrn': 'Avisos estruturais',
'tagger_err': 'Erros léxicais',
'tagger_wrn': 'Avisos lexicais',
'parser_err': 'Erros sintáticos',
'parser_wrn': 'Avisos sintáticos',
'options': 'Escolha o tipo de verificação',
'struct': 'Apenas verificação estrutural',
'tagger': 'Verificação estrutural e lexical',
'parser': 'Verificação estrutural, lexical e sintática',
'result': 'Sumário de resultados',
'list_er_wr': 'Mensagens de erros e avisos em ordem de ID da sentença no arquivo',
'congrats': 'Nenhum erro ou aviso encontrado!',
'dev': 'Desenvolvido por'
},
'🇺🇸': {
'title': 'Verifica-UD',
'subtitle': 'A verifier for Universal Dependencies annotation in Brazilian Portuguese',
'input_label': 'Entre um arquivo .conllu para verificar:',
'buscando': 'Buscando',
'intro': 'Verifica-UD faz uma verificação estrutural, léxica e morfosintática para anotação de textos em Português brasileiro, seguindo o modelo internacional do Universal Dependencies. Verifica-UD faz parte do projeto POeTiSA.',
'to_cite': 'Para citar o Verifica-UD',
'not_conllu': 'Este arquivo não está no formato correto.',
'no_file': 'Entre o nome de um arquivo .conllu',
'file_uploaded': 'File uploaded successfully',
'download': 'Baixe o relatório completo.',
'file_name': 'Nome do arquivo',
'sentences': 'Número total de sentenças',
'err': 'erros',
'wrn': 'avisos',
'errFound': 'Erros encontrados:',
'wrnFound': 'Avisos emitidos sobre possíveis erros:',
'structural': 'estruturais',
'lexical': 'lexicais',
'sintatical': 'sintáticos/morfosintáticos',
'sentencesOk': 'Número de sentenças sem erros',
'sentencesClean': 'Número de sentenças sem erros ou avisos',
'struct_err': 'Erros estruturais',
'struct_wrn': 'Avisos estruturais',
'tagger_err': 'Erros léxicais',
'tagger_wrn': 'Avisos lexicais',
'parser_err': 'Erros sintáticos',
'parser_wrn': 'Avisos sintáticos',
'options': 'Escolha o tipo de verificação',
'struct': 'Apenas verificação estrutural',
'tagger': 'Verificação estrutural e lexical',
'parser': 'Verificação estrutural, lexical e sintática',
'result': 'Sumário de resultados',
'list_er_wr': 'Erros e avisos encontrados',
'congrats': 'Nenhum erro ou aviso encontrado!',
'dev': 'Developed by'
},
'🇫🇷': {
'title': 'Verifica-UD',
'subtitle': 'Um verificador de arquivos .conllu para textos anotados em Português Brasileiro',
'input_label': 'Entre um arquivo .conllu para verificar:',
'buscando': 'Buscando',
'intro': 'Verifica-UD faz uma verificação estrutural, léxica e morfosintática para anotação de textos em Português brasileiro, seguindo o modelo internacional do Universal Dependencies. Verifica-UD faz parte do projeto POeTiSA.',
'to_cite': 'Para citar o Verifica-UD',
'not_conllu': 'Este arquivo não está no formato correto.',
'no_file': 'Entre o nome de um arquivo .conllu',
'file_uploaded': 'Arquivo recebido corretamente',
'download': 'Baixe o relatório completo.',
'file_name': 'Nome do arquivo',
'sentences': 'Número total de sentenças',
'err': 'erros',
'wrn': 'avisos',
'errFound': 'Erros encontrados:',
'wrnFound': 'Avisos emitidos sobre possíveis erros:',
'structural': 'estruturais',
'lexical': 'lexicais',
'sintatical': 'sintáticos/morfosintáticos',
'sentencesOk': 'Número de sentenças sem erros',
'sentencesClean': 'Número de sentenças sem erros ou avisos',
'struct_err': 'Erros estruturais',
'struct_wrn': 'Avisos estruturais',
'tagger_err': 'Erros léxicais',
'tagger_wrn': 'Avisos lexicais',
'parser_err': 'Erros sintáticos',
'parser_wrn': 'Avisos sintáticos',
'options': 'Escolha o tipo de verificação',
'struct': 'Só verificação estrutural',
'tagger': 'Verificação estrutural e lexical',
'parser': 'Verificação estrutural, lexical e sintática',
'result': 'Sumário de resultados',
'list_er_wr': 'Erros e avisos encontrados',
'congrats': 'Nenhum erro ou aviso encontrado!',
'dev': 'Développé par'
},
'🇮🇹': {
'title': 'Verifica-UD',
'subtitle': 'Um verificador de arquivos .conllu para textos anotados em Português Brasileiro',
'input_label': 'Entre um arquivo .conllu para verificar:',
'buscando': 'Buscando',
'intro': 'Verifica-UD faz uma verificação estrutural, léxica e morfosintática para anotação de textos em Português brasileiro, seguindo o modelo internacional do Universal Dependencies. Verifica-UD faz parte do projeto POeTiSA.',
'to_cite': 'Para citar o Verifica-UD',
'not_conllu': 'Este arquivo não está no formato correto.',
'no_file': 'Entre o nome de um arquivo .conllu',
'file_uploaded': 'Arquivo recebido corretamente',
'download': 'Baixe o relatório completo.',
'file_name': 'Nome do arquivo',
'sentences': 'Número total de sentenças',
'err': 'erros',
'wrn': 'avisos',
'errFound': 'Erros encontrados:',
'wrnFound': 'Avisos emitidos sobre possíveis erros:',
'structural': 'estruturais',
'lexical': 'lexicais',
'sintatical': 'sintáticos/morfosintáticos',
'sentencesOk': 'Número de sentenças sem erros',
'sentencesClean': 'Número de sentenças sem erros ou avisos',
'struct_err': 'Erros estruturais',
'struct_wrn': 'Avisos estruturais',
'tagger_err': 'Erros lexicais',
'tagger_wrn': 'Avisos lexicais',
'parser_err': 'Erros sintáticos',
'parser_wrn': 'Avisos sintáticos',
'options': 'Escolha o tipo de verificação',
'struct': 'Apenas verificação estrutural',
'tagger': 'Verificação estrutural e lexical',
'parser': 'Verificação estrutural, lexical e sintática',
'result': 'Sumário de resultados',
'list_er_wr': 'Erros e avisos encontrados',
'congrats': 'Nenhum erro ou aviso encontrado!',
'dev': 'Sviluppato da'
},
'🇪🇸': {
'title': 'Verifica-UD',
'subtitle': 'Um verificador de arquivos .conllu para textos anotados em Português Brasileiro',
'input_label': 'Entre um arquivo .conllu para verificar:',
'buscando': 'Buscando',
'intro': 'Verifica-UD faz uma verificação estrutural, léxica e morfosintática para anotação de textos em Português brasileiro, seguindo o modelo internacional do Universal Dependencies. Verifica-UD faz parte do projeto POeTiSA.',
'to_cite': 'Para citar o Verifica-UD',
'not_conllu': 'Este arquivo não está no formato correto.',
'no_file': 'Entre o nome de um arquivo .conllu',
'file_uploaded': 'Arquivo recebido corretamente',
'download': 'Baixe o relatório completo.',
'file_name': 'Nome do arquivo',
'sentences': 'Número total de sentenças',
'err': 'erros',
'wrn': 'avisos',
'errFound': 'Erros encontrados:',
'wrnFound': 'Avisos emitidos sobre possíveis erros:',
'structural': 'estruturais',
'lexical': 'lexicais',
'sintatical': 'sintáticos/morfosintáticos',
'sentencesOk': 'Número de sentenças sem erros',
'sentencesClean': 'Número de sentenças sem erros ou avisos',
'struct_err': 'Erros estruturais',
'struct_wrn': 'Avisos estruturais',
'tagger_err': 'Erros léxicais',
'tagger_wrn': 'Avisos lexicais',
'parser_err': 'Erros sintáticos',
'parser_wrn': 'Avisos sintáticos',
'options': 'Escolha o tipo de verificação',
'struct': 'Apenas verificação estrutural',
'tagger': 'Verificação estrutural e lexical',
'parser': 'Verificação estrutural, lexical e sintática',
'result': 'Sumário de resultados',
'list_er_wr': 'Erros e avisos encontrados',
'congrats': 'Nenhum erro ou aviso encontrado!',
'dev': 'Desarrollado por'
}
}
def img_to_bytes(img_path):
img_bytes = Path(img_path).read_bytes()
encoded = base64.b64encode(img_bytes).decode()
return encoded
def img_to_html(img_path, img_style='max-width: 100%;'):
img_html = f""
return img_html
st.markdown("""
""", unsafe_allow_html=True)
st.set_page_config(
page_title="Verifica-UD",
layout="centered",
initial_sidebar_state="collapsed"
)
# language sidebar
lang_options = {
"🇧🇷 Português": "🇧🇷",
"🇺🇸 English": "🇺🇸",
"🇫🇷 Français": "🇫🇷",
"🇮🇹 Italiano": "🇮🇹",
"🇪🇸 Español": "🇪🇸"
}
selected = st.sidebar.radio("🌐 Interface", list(lang_options.keys()))
t = translations[lang_options[selected]]
# choices sidebar
verif_options = {
t['parser']: "p",
t['tagger']: "t",
t['struct']: "s"
}
v_selected = st.sidebar.radio(t['options'], list(verif_options.keys()))
t_struct, t_tagger, t_parser = True, True, True
if (v_selected == 's'):
t_struct, t_tagger, t_parser = True, False, False
elif (v_selected == 't'):
t_struct, t_tagger, t_parser = True, True, False
elif (v_selected == 'p'):
t_struct, t_tagger, t_parser = True, True, True
# Streamlit app title
st.markdown(f"
| {output["sentNoErro"]} ({t["sentencesOk"]}) | {output["sentNoErWr"]} ({t["sentencesClean"]}) |
|---|