import gradio as gr from shitsu import ShitsuScorer scorer = ShitsuScorer('en') example_inputs = [ "The Beatles were a popular band in the 1960s. They released many hit songs.", "Chocolate is a type of sweet food that people often eat for dessert.", "I'm thinking of going to the beach this weekend. The weather is supposed to be great!", "Quantum mechanics is a fundamental theory in physics that provides a description of the physical properties of nature at the scale of atoms and subatomic particles.", "Can you believe it's already September? This year is flying by!" ] def get_score(user_text): score = scorer.score([user_text])[0] formatted_score = f"{score:.4g}" yield f'
Score: {formatted_score}
' #language_options = ['am', 'ar', 'bg', 'bn', 'cs', 'da', 'de', 'el', 'en', 'es', 'fa', 'fi', 'fr', 'gu', 'ha', 'hi', 'hu', 'id', 'it', 'ja', 'jv', 'kn', 'ko', 'lt', 'mr', 'nl', 'no', 'yo', 'zh'] #https://huggingface.co/spaces/Dusduo/shitsu-text-scorer-demo/shitsu-logo.jpeg css = ''' #gen_btn{height: 100%} #title{text-align: center} #title h1{font-size: 3em; display:inline-flex; align-items:center} #title img{width: 100px; margin-right: 0.5em} #gallery .grid-wrap{height: 10vh} .card_internal{display: flex;height: 100px;margin-top: .5em} .card_internal img{margin-right: 1em} .styler{--form-gap-width: 0px !important} .nice-box { border: 2px solid #007bff; border-radius: 10px; padding: 15px; background-color: #f8f9fa; font-size: 18px; text-align: center; min-height: 60px; display: flex; align-items: center; justify-content: center; } ''' theme = gr.themes.Soft( primary_hue="blue", secondary_hue="sky", ) #"https://huggingface.co/spaces/Dusduo/shitsu-text-scorer-demo/shitsu-logo.jpeg" with gr.Blocks(theme=theme, css=css) as demo: title = gr.HTML( """

LightBlue Shitsu Text Scorer

""", elem_id="title", ) gr.Markdown( """This is a demo of [Shitsu text scorer](https://huggingface.co/lightblue/shitsu_text_scorer) for English, which scores text based on the amount of useful, textbook-like information in it. It outputs a score generally between 0 and 1 but can exceed both of these bounds as it is a regressor. """ ) with gr.Row(): user_text = gr.Textbox(label='Input text', placeholder='Type something here...') with gr.Column(scale=0): submit_btn = gr.Button("Submit") score = gr.HTML( value='
Score...
', label="Output" ) # Add examples to the textbox gr.Examples(examples=example_inputs, inputs=user_text) # Searchable dropdown to choose language # language_choice = gr.Dropdown( # choices=language_options, # label="Choose a language", # info="Type to search", # allow_custom_value=True, # Allows typing to search # ) gr.Markdown( """ This model is based on fasttext embeddings, meaning that it can be used on large amounts of data with limited compute quickly. This scorer can be used to filter useful information from large text corpora in many languages. This model can also be found on [Github](https://github.com/lightblue-tech/shitsu) and has its own pip installable package. """ ) # Set up the user submit events user_text.submit(get_score, inputs=[user_text], outputs=[score]) submit_btn.click(get_score, inputs=[user_text], outputs=[score]) demo.launch()