import gradio as gr import textstat import pandas as pd def do_action(document): all_data = [] for paragraph in document.split("\n"): if len(paragraph.split(" ")) < 10: continue data = {} data['Flesch Kincaid'] = textstat.flesch_kincaid_grade(paragraph) data['Linsear'] = textstat.linsear_write_formula(paragraph) data['text'] = paragraph[:50] # for score_name in scores: # data[score_name] = getattr(textstat, score_name)(paragraph) all_data.append(data) overall_score = textstat.flesch_kincaid_grade(document) return f"# Overall: {overall_score}", pd.DataFrame(all_data) \ .style.format(precision=2) \ .background_gradient('YlGnBu', vmin=8, vmax=15) document = gr.Textbox(lines=40) output_scores = gr.DataFrame(label="", wrap=False) title = "Reading level score" desc = """ """ demo = gr.Interface(fn=do_action, title=title, description=desc, inputs=document, outputs=["markdown", output_scores]) demo.launch()