qanastek's picture
Update
049266b
raw history blame
No virus
1.87 kB
import time
import errant
import streamlit as st
from flair.data import Sentence
from flair.models import SequenceTagger
from highlighter import show_highlights
checkpoints = [
"qanastek/pos-french",
]
@st.cache(suppress_st_warning=True, allow_output_mutation=True)
def get_model(model_name):
# Load the model
return SequenceTagger.load(model_name)
@st.cache(suppress_st_warning=True, allow_output_mutation=True)
def get_annotator(lang: str):
return errant.load(lang)
def main():
st.title("🥖 French-Part-Of-Speech-Tagging")
annotator = get_annotator("fr")
checkpoint = st.selectbox("Choose model", checkpoints)
model = get_model(checkpoint)
default_text = "George Washington est allé à Washington"
input_text = st.text_area(
label="Original text",
value=default_text,
)
start = None
if st.button("🧠 Compute"):
start = time.time()
with st.spinner("Search for Part-Of-Speech Tags 🔍"):
# Build Sentence
sentence = Sentence(input_text)
# predict tags
model.predict(sentence)
# print predicted pos tags
result = sentence.to_tagged_string()
try:
show_highlights(annotator, input_text, result)
st.write("")
st.success(result)
except Exception as e:
st.error("Some error occured!" + str(e))
st.stop()
st.write("---")
st.markdown(
"Built by [Yanis Labrak](https://www.linkedin.com/in/yanis-labrak-8a7412145/) 🚀"
)
st.markdown(
"_Source code made with [FlairNLP](https://github.com/flairNLP/flair)_"
)
if start is not None:
st.text(f"prediction took {time.time() - start:.2f}s")
if __name__ == "__main__":
main()