Spaces:
Runtime error
Runtime error
| import streamlit as st | |
| from happytransformer import HappyTextToText, TTSettings | |
| from annotated_text import annotated_text | |
| import difflib | |
| from bokeh.models.widgets import Button | |
| from bokeh.models import CustomJS | |
| from streamlit_bokeh_events import streamlit_bokeh_events | |
| checkpoint = "team-writing-assistant/t5-base-c4jfleg" | |
| def diff_strings(a, b): | |
| result = [] | |
| diff = difflib.Differ().compare(a.split(), b.split()) | |
| replacement = "" | |
| for line in diff: | |
| if line.startswith(" "): | |
| if len(replacement) == 0: | |
| result.append(" ") | |
| result.append(line[2:]) | |
| else: | |
| result.append(" ") | |
| result.append(("", replacement, "#ffd")) | |
| replacement = "" | |
| result.append(line[2:]) | |
| elif line.startswith("- "): | |
| if len(replacement) == 0: | |
| replacement = line[2:] | |
| else: | |
| result.append(" ") | |
| result.append(("", replacement, "#fdd")) | |
| replacement = "" | |
| elif line.startswith("+ "): | |
| if len(replacement) == 0: | |
| result.append((line[2:], "", "#dfd")) | |
| else: | |
| result.append(" ") | |
| result.append((line[2:], replacement, "#ddf")) | |
| replacement = "" | |
| return result | |
| def get_happy_text(model_name): | |
| return HappyTextToText("T5", model_name) | |
| happy_tt = get_happy_text(checkpoint) | |
| args = TTSettings(num_beams=5, min_length=1) | |
| st.title("Grammar Corrector Two") | |
| st.markdown("Paste or type text. Submit. The machine will attempt to correct your text's grammar and highlight its corrections.") | |
| st.subheader("Example text: ") | |
| col1, col2, col3 = st.columns([1, 2, 1]) | |
| with col1: | |
| example_1 = st.button("Intrailly, the costumers was mad about why they will not but Fast Fashion again as they") | |
| with col2: | |
| example_2 = st.button("Firstly,why i think this policy should be changed is because sometime the customer may buy wrong size,if our company’s no-exchange policy,customers have threatened no never buy from Fast Fashion again.") | |
| with col3: | |
| example_3 = st.button("I try my best but still nervous. I hope I can get a good result.") | |
| input_text = st.text_area('Paste or type text') | |
| button = st.button('Submit') | |
| def output(text): | |
| with st.spinner('Correcting'): | |
| text = "grammar: " + text | |
| result = happy_tt.generate_text(text, args=args) | |
| diff = diff_strings(text[9:], result.text) | |
| annotated_text(*diff) | |
| copy_button = Button(label="Copy the Result") | |
| copy_button.js_on_event("button_click", CustomJS(args=dict(result=result.text), code=""" | |
| navigator.clipboard.writeText(result); | |
| """)) | |
| streamlit_bokeh_events( | |
| copy_button, | |
| events="GET_TEXT", | |
| key="get_text", | |
| refresh_on_update=True, | |
| override_height=75, | |
| debounce_time=0) | |
| if example_1: | |
| output("Intrailly, the costumers was mad about why they will not but Fast Fashion again as they") | |
| elif example_2: | |
| output("Firstly,why i think this policy should be changed is because sometime the customer may buy wrong size,if our company’s no-exchange policy,customers have threatened no never buy from Fast Fashion again.") | |
| elif example_3: | |
| output("I try my best but still nervous. I hope I can get a good result.") | |
| elif input_text: | |
| output(input_text) |