File size: 3,644 Bytes
0ca4cb9 083d7ab 8b24943 bc58139 75bf09d 083d7ab b22b7fe 083d7ab 38ee187 75bf09d 1ec270d bc58139 4a37ec4 c27c768 4a37ec4 c27c768 75bf09d 083d7ab ee4fd44 083d7ab 9891614 2c2d4de 73ac073 c0c0b5f 2c2d4de 33717c9 50f9081 33717c9 50f9081 33717c9 50f9081 2c2d4de 8a4f3ac 8b24943 51a3831 8b24943 81e8c0f 8b24943 8a4f3ac 6c87eb0 f41bed5 2c2d4de 86d95da 8255586 21b7bc1 8255586 baca1b9 083d7ab baca1b9 f6b43a0 440a4ac d4340c9 834e40f d4340c9 33717c9 11cb5d4 083d7ab |
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 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
import streamlit as st
from transformers import T5ForConditionalGeneration, T5TokenizerFast, T5Config
mytext= 'Vi bruker ikke tegnsetting eller store bokstaver når vi prater. Vi slår også sammen ord, og i praksis er dermed heller ikke mellomrom meningsbærende. Prøv å fjerne tegnsetting, store bokstaver og mellomrom fra dette avsnittet. Se om den nye North-T5-modellen greier å sette sammen til et nytt meningsbærende avsnitt.'
option_changed = 0
@st.cache(allow_output_mutation=True, suppress_st_warning=True)
def load_model():
model_name = "north/demo-deuncaser-base"
config = T5Config.from_pretrained(model_name)
model = T5ForConditionalGeneration.from_pretrained(model_name,config=config)
tokenizer = T5TokenizerFast.from_pretrained(model_name)
return (model, tokenizer)
def deuncase(model, tokenizer, text):
encoded_txt = tokenizer(text, return_tensors="pt")
generated_tokens = model.generate(
**encoded_txt
)
return tokenizer.batch_decode(generated_tokens, skip_special_tokens=True)
def change_mytext():
global option_changed
option_changed = 1
#st.write(f"inside function={option}")
#st.write(f"outside function={option_changed}")
st.title("DeUnCaser")
st.sidebar.write("This web app adds spaces, punctation and capitalisation back into the text.")
st.sidebar.write("You can use the examples below, but too really test the effect of the model: Write or copy text from the Internet, and then use the buttons to remove spaces, puctation, cases etc. Try to restore the text.")
option = st.sidebar.selectbox(
"Examples:",
("tirsdag var travel for ukrainas president volodymyr zelenskyj på morgenen tok han imot polens statsminister mateusz morawiecki","tirsdagvartravelforukrainaspresidentvolodymyrzelenskyjpåkveldentokhanimotpolensstatsministermateuszmorawiecki","deterikkelettåholderedepåstoreogsmåbokstavermanmåforeksempelhuskestorforbokstavnårmanskriveromkrimhalvøyamenkunbrukelitenforbokstavnårmanhenvisertilenkrimroman","detteerenlitendemosomerlagetavperegilkummervoldhanerenforskersomtidligerejobbetvednasjonalbiblioteketimoirana", "sentpå60talletvardetfaktisknoensomkalteungensinperegilkummervoldidagerdetikkelengersåvanligåbrukedobbeltnavninorgehvasynesduomdet"), on_change=change_mytext)
col1, col2, col3 = st.columns([1,1,1])
with col1:
uncase=st.checkbox('Remove Casing')
with col2:
unpunct=st.checkbox('Remove Punctation')
with col3:
unspace=st.checkbox('Remove Spaces')
if uncase:
mytext = mytext.lower()
if unpunct:
trans_chars = "'\",.:;-_*?/\n"
trans_table = mytext.maketrans("", "", trans_chars)
mytext = mytext.translate(trans_table)
if unspace:
mytext = mytext.replace(" ", "")
else:
mytext= 'Vi bruker ikke tegnsetting eller store bokstaver når vi prater. Vi slår også sammen ord, og i praksis er dermed heller ikke mellomrom meningsbærende. Prøv å fjerne tegnsetting, store bokstaver og mellomrom fra dette avsnittet. Se om den nye North-T5-modellen greier å sette sammen til et nytt.'
text = st.text_area(f"",max_chars=1000, value=mytext)
text = "pere"
run = st.button('Run DeUnCaser')
#st.text("Fixed text: ")
#form = st.form(key='my_form')
#form.text_input(value="test",key="test",label='Enter some text')
#submit_button = form.form_submit_button(label='Submit')
#https://blog.streamlit.io/introducing-submit-button-and-forms/
#More stuff to try
if run:
model, tokenizer = load_model()
translated_text = deuncase(model, tokenizer, text)
st.write(translated_text[0] if translated_text else "Unknown Error Translating Text")
|