Spaces:
Sleeping
Sleeping
import streamlit as st | |
from flair.data import Sentence | |
from flair.models import SequenceTagger | |
# Load the Flair model | |
model_path = "onurkeles/hamshetsnag-pos-tagger" | |
pos_tagger = SequenceTagger.load(model_path) | |
def tag_pos(text, detailed_output): | |
"""Tag parts of speech in a given text, with optional detailed output.""" | |
sentence = Sentence(text) | |
pos_tagger.predict(sentence) | |
if detailed_output: | |
# Generate detailed information with tag values and probabilities | |
return "\n".join( | |
[f"{token.text}: {token.get_tag('pos').value} ({token.get_tag('pos').score:.2f})" for token in sentence] | |
) | |
else: | |
# Return a simple tagged string | |
return sentence.to_tagged_string() | |
def write(): | |
st.markdown("# Part-of-Speech Tagging for Hamshetsnag") | |
st.sidebar.header("POS Tagging") | |
st.write( | |
'''Detect parts of speech in Hamshetsnag text using the fine-tuned model.''' | |
) | |
# Sidebar for configurations | |
st.sidebar.subheader("Configurable Parameters") | |
# Detailed Output Checkbox | |
detailed_output = st.sidebar.checkbox( | |
"Detailed Output", | |
value=False, | |
help="If checked, output shows detailed tag information (probability scores, etc.).", | |
) | |
# Input field for text | |
input_text = st.text_area(label='Enter a text: ', height=100, value="Put example text here.") | |
# Provide example sentences with translations | |
example_sentences = [ | |
"tuute acertsetser topoldetser. aaav ta? (TR: Kâğıdı büzüştürdün attın. Oldu mu?)", | |
"Baran u Baden teran. (TR: Baran ve Bade koştu.)", | |
"Onurun ennush nu İremin terchushe intzi shad kızdırmısh aaav. (TR: Onur'un düşüşü ve İrem'in koşuşu beni kızdırdı.)" | |
] | |
st.write("## Example Sentences:") | |
for example in example_sentences: | |
if st.button(f"Use: {example.split('(TR:')[0].strip()}"): | |
input_text = example.split('(TR:')[0].strip() # Update the input text directly with the Hamshetsnag part | |
break # Only use the first clicked example | |
if st.button("Tag POS"): | |
with st.spinner('Processing...'): | |
# Tag the input text and format output as per settings | |
output = tag_pos(input_text, detailed_output) | |
st.success(output) | |