File size: 1,671 Bytes
d223794
d07b7c0
 
 
 
a21f136
d07b7c0
 
a21f136
224fd21
d223794
a21f136
529efb9
 
a21f136
d07b7c0
ad1a297
d07b7c0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
a21f136
d07b7c0
 
 
a21f136
d07b7c0
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# Bibliotecas
import streamlit as st
import spacy
from spacy import displacy

# Título:
st.title("Web APP LeNER-Br")

# Descrição:
st.write("Este Web App foi criado para proporcionar a comparação dos modelos spaCy [sm](https://huggingface.co/flaviaggp/pt_pipeline) e [lg](https://huggingface.co/flaviaggp/pt_lg_pipeline), voltados para a tarefa de NER com o dataset LeNER-Br.")

# Legenda dos modelos:
st.write("*sm: pipeline mais rápido e menor, mas menos preciso.*")
st.write("*lg: pipeline maior e mais lento, mas mais preciso.*")

#Texto:
input_text = st.text_input('Insira o texto a ser analisado:')

# Função que carrega os modelos:
def load_models():
    sm_model = spacy.load("modelo_lener_sm")
    lg_model = spacy.load("modelo_lener_lg")
    models = {"sm": sm_model, "lg": lg_model}
    return models

models = load_models()
selected_type = st.sidebar.selectbox("Selecione o tipo do modelo", options=["sm", "lg"]) # caixa de seleção do modelo
selected_model = models[selected_type]
doc= selected_model(input_text) # função doc que processa o texto de acordo com a opção escolhida acima

# Cabeçalho
st.header("Visualizador de entidades")

# Cores:
colors = {"LEGISLACAO": "linear-gradient(90deg, #aa9cfc, #fc9ce7)", 'JURISPRUDENCIA': "#ccfbf1", 'LOCAL': "#ffedd5", 'ORGANIZACAO': "#fae8ff", 'PESSOA': "#e0f2fe", 'TEMPO': "#fefde0", }
options = {"ents": ["LEGISLACAO", "JURISPRUDENCIA", "LOCAL", "ORGANIZACAO", "PESSOA", "TEMPO",], "colors": colors}

# Html:
ent_html = displacy.render(doc, style="ent", options=options, jupyter=False) # https://spacy.io/usage/visualizers

st.markdown(ent_html, unsafe_allow_html=True)

# streamlit run render.py