import os import yaml import gdown import gradio as gr from predict import PredictTri output_path = "tashkeela-d2.pt" if not os.path.exists(output_path): model_gdrive_id = "1FGelqImFkESbTyRsx_elkKIOZ9VbhRuo" gdown.download(id=model_gdrive_id, output=output_path, quiet=False) output_path = "vocab.vec" if not os.path.exists(output_path): vocab_gdrive_id = "1-0muGvcSYEf8RAVRcwXay4MRex6kmCii" gdown.download(id=vocab_gdrive_id, output=output_path, quiet=False) with open("config.yaml", 'r', encoding="utf-8") as file: config = yaml.load(file, Loader=yaml.FullLoader) config["train"]["max-sent-len"] = config["predictor"]["window"] config["train"]["max-token-count"] = config["predictor"]["window"] * 3 def diacritze(text): print(text) predictor = PredictTri(config, text) diacritized_lines = predictor.predict_majority_vote() return '\n'.join(diacritized_lines) with gr.Blocks() as demo: gr.Markdown( """ # Partial Diacritization TODO: put paper links here """) input_txt = gr.Textbox( placeholder="اكتب هنا", lines=5, label="Input", type='text', rtl=True, text_align='right', ) output_txt = gr.Textbox( lines=5, label="Output", type='text', rtl=True, text_align='right', ) btn = gr.Button(value="Shakkel") btn.click(diacritze, inputs=input_txt, outputs=output_txt) if __name__ == "__main__": demo.launch()