mperalsapa commited on
Commit
a16a0ba
Β·
1 Parent(s): f2d35a9

Add translate page

Browse files
Files changed (2) hide show
  1. README.md +3 -3
  2. app.py +49 -0
README.md CHANGED
@@ -1,8 +1,8 @@
1
  ---
2
- title: A03 P03 3 Translate
3
  emoji: πŸ‘
4
- colorFrom: purple
5
- colorTo: purple
6
  sdk: gradio
7
  sdk_version: 5.13.0
8
  app_file: app.py
 
1
  ---
2
+ title: A03 P03A Exercice 3 Translate
3
  emoji: πŸ‘
4
+ colorFrom: yellow
5
+ colorTo: blue
6
  sdk: gradio
7
  sdk_version: 5.13.0
8
  app_file: app.py
app.py ADDED
@@ -0,0 +1,49 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ from transformers import MarianMTModel, AutoTokenizer
3
+
4
+
5
+ # Carregar els models de traduccio de helsinki-nlp
6
+ # source: https://huggingface.co/Helsinki-NLP/opus-mt-en-es?text=My+name+is+Wolfgang+and+I+live+in+Berlin&library=transformers
7
+ # es -> en
8
+ model_es_to_en = MarianMTModel.from_pretrained("Helsinki-NLP/opus-mt-es-en")
9
+ tokenizer_es_to_en = AutoTokenizer.from_pretrained("Helsinki-NLP/opus-mt-es-en")
10
+
11
+ # en -> es
12
+ model_en_to_es = MarianMTModel.from_pretrained("Helsinki-NLP/opus-mt-en-es")
13
+ tokenizer_en_to_es = AutoTokenizer.from_pretrained("Helsinki-NLP/opus-mt-en-es")
14
+
15
+ availableLangs = ["EN", "ES"]
16
+
17
+ availableModels = {
18
+ availableLangs[0]: model_en_to_es,
19
+ availableLangs[1]: model_es_to_en
20
+ }
21
+
22
+ availableTokenizers = {
23
+ availableLangs[0]: tokenizer_en_to_es,
24
+ availableLangs[1]: tokenizer_es_to_en
25
+ }
26
+
27
+ # Source: https://huggingface.co/docs/transformers/main/en/model_doc/marian#transformers.MarianMTModel.forward.example
28
+ def Translate(sourceLang, text):
29
+ tokens = availableTokenizers[sourceLang](text, return_tensors="pt", padding=True)
30
+ translated = availableModels[sourceLang].generate(**tokens)
31
+ translation = availableTokenizers[sourceLang].decode(translated[0], skip_special_tokens=True)
32
+
33
+ return translation
34
+
35
+
36
+ with gr.Blocks() as demo:
37
+ gr.Markdown("Translate app")
38
+ with gr.Row():
39
+ inp = gr.TextArea(placeholder="Input")
40
+ out = gr.TextArea()
41
+
42
+ button = gr.Button("Translate")
43
+
44
+ button.click(fn=Translate, inputs=[
45
+ gr.Radio(availableLangs, label="Source language", value=availableLangs[0]),
46
+ inp
47
+ ], outputs=out)
48
+
49
+ demo.launch()