File size: 4,085 Bytes
7f2e9e6
 
 
 
 
 
 
 
 
d9cd27b
7f2e9e6
 
 
d9cd27b
 
 
 
 
7f2e9e6
 
d9cd27b
7f2e9e6
 
 
06ac956
7f2e9e6
 
 
 
 
 
 
216baf0
7f2e9e6
 
06ac956
 
 
 
 
 
 
 
 
7f2e9e6
 
 
 
 
 
 
216baf0
7f2e9e6
 
 
 
 
06ac956
 
 
 
 
 
 
 
 
 
 
 
 
 
7f2e9e6
216baf0
7f2e9e6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
06ac956
7f2e9e6
 
 
216baf0
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
83
84
85
86
87
88
89
90
91
92
93
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()