Spaces:
Running
Running
import gradio as gr | |
from difflib import Differ | |
from transformers import pipeline | |
model_id = "razhan/bart-kurd-spell-base" | |
spell_corrector = pipeline("text2text-generation", model=model_id, max_length=1024) | |
def correct_spell(text, num_sequence=3): | |
d = Differ() | |
if text is None: | |
text = "" | |
# corrected = spell_corrector(text, num_return_sequences=3)[0]['generated_text'] | |
corrected = spell_corrector(text,num_beams=5, num_return_sequences=num_sequence) | |
first_suggestion = corrected[0]['generated_text'] | |
corrected = "\n\n".join([c['generated_text'] for c in corrected]) | |
return [ | |
(token[2:], token[0] if token[0] != " " else None) | |
for token in d.compare(text, first_suggestion) | |
], corrected | |
demo = gr.Interface( | |
correct_spell, | |
[ | |
gr.Textbox( | |
label="Input text", | |
info="Initial text to be corrected", | |
lines=3, | |
value="كئشهي نووصين", | |
rtl=True | |
), | |
gr.Slider( | |
label="Number of Sequences", | |
minimum=1, | |
maximum=5, | |
step=1, | |
value=3, | |
info="Number of different sequences to be returned" | |
) | |
], | |
outputs=[ | |
gr.HighlightedText( | |
label="Diff", | |
combine_adjacent=True, | |
show_legend=True, | |
color_map={"-": "pink", "+": "green"}, | |
container=True, | |
elem_id="kurdi" | |
), | |
gr.Textbox(label="Corrected Text", rtl=True, container=True) | |
], | |
examples=[ | |
["شة وئكي قة نديل هئناية كريان دلة ي ماط و ديل"], | |
["برياري مي دةنكي ذؤرينةي رةهاية"], | |
["بة هي خشة ويصتي نيوانمانة وة چة ندينجار باوكي لة مالة وة دة ريكردووة"], | |
["هه روه ها دوو كاربه ده ستي شيعه ش له مردن رظگاريان بوو پاش اه وه ي روظي دووشه ممه له ده وروبه ري به غدا هه ولي كوش تنيان درا"], | |
["حکومەتلە گفتوگۆحانی پەرلەماندا لەسەربودجەی نوێ ڕایگەیاند کە لە دەنگدانلەسەر بودجە بەردەوام دەبێت"], | |
["ژنەڤ کاندغدێکی کورد نەشتەرگەری بۆکەا"], | |
["فەستبخەرکرانی سێ هاووڵاتی لە شاری بۆکانلە لاین هێزە ئەمنییکەانەوە"], | |
["ئەم وێنجانەی وخارەوەش چەند ێونەیەکی دەزپێرکاوی مۆبایلەکەن"], | |
["خۆگزە توانیبام ژیان لە دیداری یەکەی ژاچگرێ بدەم"], | |
["هەرفەرمانبەرێک بەناشچایستە پلەی نوەزیفیوەرگرتبێتلێیدەسەرنێتەەو"], | |
["ماوەیەکەدەست ەب ئاامدەکسری کرا٦وە بۆ بەڕێوەچوونی ەششەمین فیستیڤاڵینێودەوڵەتیی هەولێرب ۆ شانۆ"], | |
["ەڵم ئارەزوومە کە فیلمێک لە سەرحۆریەکانی ێجەریای نێوچیڕۆکەکانیشەوان عەرەبیەوە بەرخهەم بهێنم"], | |
["پارەی ئەلکتترۆنیکی هیان راوی دیجیتاڵ جۆرە راوێکە کە تەنیا بە شێوەی ئەلیکترۆنیکی لەبەردەستەایە"] | |
], | |
title="Central Kurdish Neural Spell Corrector", | |
# description="This is made as a fun side project, it's not to be relied on for production.", | |
css=""" | |
#kurdi { | |
text-align: right; | |
} | |
""", | |
theme=gr.themes.Base( | |
primary_hue="pink", | |
secondary_hue="stone", | |
text_size=gr.themes.sizes.text_lg, | |
spacing_size=gr.themes.sizes.spacing_lg, | |
radius_size=gr.themes.sizes.radius_lg, | |
font=gr.themes.GoogleFont("Noto Sans"), | |
), | |
examples_per_page=20, | |
allow_flagging='auto' | |
) | |
if __name__ == "__main__": | |
demo.launch() |