Demosthene-OR
commited on
Commit
•
74cb5f4
1
Parent(s):
fd186d2
Change translator to deep-translator module
Browse files- app.py +6 -2
- requirements.txt +2 -1
- tabs/game_tab.py +1 -1
- tabs/id_lang_tab.py +1 -1
- tabs/intro.py +1 -1
- tabs/modelisation_seq2seq_tab.py +6 -4
- translate_app.py +13 -4
app.py
CHANGED
@@ -67,9 +67,13 @@ TABS = OrderedDict(
|
|
67 |
]
|
68 |
)
|
69 |
|
|
|
|
|
|
|
70 |
|
71 |
-
|
72 |
-
|
|
|
73 |
|
74 |
@st.cache_data
|
75 |
def find_lang_label(lang_sel):
|
|
|
67 |
]
|
68 |
)
|
69 |
|
70 |
+
# Utilisation du module translate
|
71 |
+
# lang_tgt = ['fr','en','af','ak','sq','de','am','en','ar','hy','as','az','ba','bm','eu','bn','be','my','bs','bg','ks','ca','ny','zh','si','ko','co','ht','hr','da','dz','gd','es','eo','et','ee','fo','fj','fi','fr','fy','gl','cy','lg','ka','el','gn','gu','ha','he','hi','hu','ig','id','iu','ga','is','it','ja','kn','kk','km','ki','rw','ky','rn','ku','lo','la','lv','li','ln','lt','lb','mk','ms','ml','dv','mg','mt','mi','mr','mn','nl','ne','no','nb','nn','oc','or','ug','ur','uz','ps','pa','fa','pl','pt','ro','ru','sm','sg','sa','sc','sr','sn','sd','sk','sl','so','st','su','sv','sw','ss','tg','tl','ty','ta','tt','cs','te','th','bo','ti','to','ts','tn','tr','tk','tw','uk','vi','wo','xh','yi']
|
72 |
+
# label_lang = ['Français', 'Anglais / English','Afrikaans','Akan','Albanais','Allemand / Deutsch','Amharique','Anglais','Arabe','Arménien','Assamais','Azéri','Bachkir','Bambara','Basque','Bengali','Biélorusse','Birman','Bosnien','Bulgare','Cachemiri','Catalan','Chichewa','Chinois','Cingalais','Coréen','Corse','Créolehaïtien','Croate','Danois','Dzongkha','Écossais','Espagnol / Español','Espéranto','Estonien','Ewe','Féroïen','Fidjien','Finnois','Français','Frisonoccidental','Galicien','Gallois','Ganda','Géorgien','Grecmoderne','Guarani','Gujarati','Haoussa','Hébreu','Hindi','Hongrois','Igbo','Indonésien','Inuktitut','Irlandais','Islandais','Italien / Italiano','Japonais','Kannada','Kazakh','Khmer','Kikuyu','Kinyarwanda','Kirghiz','Kirundi','Kurde','Lao','Latin','Letton','Limbourgeois','Lingala','Lituanien','Luxembourgeois','Macédonien','Malais','Malayalam','Maldivien','Malgache','Maltais','MaorideNouvelle-Zélande','Marathi','Mongol','Néerlandais / Nederlands','Népalais','Norvégien','Norvégienbokmål','Norvégiennynorsk','Occitan','Oriya','Ouïghour','Ourdou','Ouzbek','Pachto','Pendjabi','Persan','Polonais','Portugais','Roumain','Russe','Samoan','Sango','Sanskrit','Sarde','Serbe','Shona','Sindhi','Slovaque','Slovène','Somali','SothoduSud','Soundanais','Suédois','Swahili','Swati','Tadjik','Tagalog','Tahitien','Tamoul','Tatar','Tchèque','Télougou','Thaï','Tibétain','Tigrigna','Tongien','Tsonga','Tswana','Turc','Turkmène','Twi','Ukrainien','Vietnamien','Wolof','Xhosa','Yiddish']
|
73 |
|
74 |
+
# Utilisation du module deep_translator
|
75 |
+
lang_tgt = ['fr', 'en', 'af', 'ak', 'sq', 'de', 'am', 'en', 'ar', 'hy', 'as', 'ay', 'az', 'bm', 'eu', 'bn', 'bho', 'be', 'my', 'bs', 'bg', 'ca', 'ceb', 'ny', 'zh-CN', 'zh-TW', 'si', 'ko', 'co', 'ht', 'hr', 'da', 'doi', 'gd', 'es', 'eo', 'et', 'ee', 'fi', 'fr', 'fy', 'gl', 'cy', 'lg', 'ka', 'el', 'gn', 'gu', 'ha', 'haw', 'iw', 'hi', 'hmn', 'hu', 'ig', 'ilo', 'id', 'ga', 'is', 'it', 'ja', 'jw', 'kn', 'kk', 'km', 'rw', 'ky', 'gom', 'kri', 'ku', 'ckb', 'lo', 'la', 'lv', 'ln', 'lt', 'lb', 'mk', 'mai', 'ms', 'ml', 'dv', 'mg', 'mt', 'mi', 'mr', 'mni-Mtei', 'lus', 'mn', 'nl', 'ne', 'no','or', 'om', 'ug', 'ur', 'uz', 'ps', 'pa', 'fa', 'pl', 'pt', 'qu', 'ro', 'ru', 'sm', 'sa', 'nso', 'sr', 'sn', 'sd', 'sk', 'sl', 'so', 'st', 'su', 'sv', 'sw', 'tg', 'tl', 'ta', 'tt', 'cs', 'te', 'th', 'ti', 'ts', 'tr', 'tk', 'uk', 'vi', 'xh', 'yi', 'yo', 'zu']
|
76 |
+
label_lang = ['Français', 'Anglais / English','Afrikaans','Akan','Albanais','Allemand / Deutsch','Amharique','Anglais','Arabe','Arménien','Assamais','Aymara','Azéri','Bambara','Basque','Bengali','Bhojpuri','Biélorusse','Birman','Bosnien','Bulgare','Catalan','Cebuano','Chichewa','Chinois (simplifié)','Chinois (traditionnel)','Cingalais','Coréen','Corse','Créole haïtien','Croate','Danois','Dogri','Écossais','Espagnol / Español','Espéranto','Estonien','Ewe','Finnois','Français','Frisonoccidental','Galicien','Gallois','Ganda','Géorgien','Grec moderne','Guarani','Gujarati','Haoussa','Hawaïen','Hébreu','Hindi','Hmong','Hongrois','Igbo','Ilocano','Indonésien','Irlandais','Islandais','Italien / Italiano','Japonais','Javanais','Kannada','Kazakh','Khmer','Kinyarwanda','Kirghiz','Konkani','Krio','Kurde','Kurde (Sorani)','Lao','Latin','Letton','Lingala','Lituanien','Luxembourgeois','Macédonien','Maithili','Malais','Malayalam','Maldivien','Malgache','Maltais','Maori de Nouvelle-Zélande','Marathi','Meiteilon (Manipuri)','Mizo','Mongol','Néerlandais / Nederlands','Népalais','Norvégien','Oriya','Oromo','Ouïghour','Ourdou','Ouzbek','Pachto','Pendjabi','Persan','Polonais','Portugais','Quechua','Roumain','Russe','Samoan','Sanskrit','Sepedi','Serbe','Shona','Sindhi','Slovaque','Slovène','Somali','Sotho du Sud','Soundanais','Suédois','Swahili','Tadjik','Tagalog','Tamoul','Tatar','Tchèque','Télougou','Thaï','Tigrigna','Tsonga','Turc','Turkmène','Ukrainien','Vietnamien','Xhosa','Yiddish','Yoruba','Zulu']
|
77 |
|
78 |
@st.cache_data
|
79 |
def find_lang_label(lang_sel):
|
requirements.txt
CHANGED
@@ -44,4 +44,5 @@ https://files.pythonhosted.org/packages/cc/58/96aff0e5cb8b59c06232ea7e249ed902d0
|
|
44 |
streamlit-option-menu
|
45 |
plotly
|
46 |
bokeh
|
47 |
-
shap
|
|
|
|
44 |
streamlit-option-menu
|
45 |
plotly
|
46 |
bokeh
|
47 |
+
shap
|
48 |
+
deep-translator
|
tabs/game_tab.py
CHANGED
@@ -154,7 +154,7 @@ def run():
|
|
154 |
t_previous_debut = t_debut
|
155 |
t_debut = time.time()
|
156 |
|
157 |
-
if st.button(label=tr("
|
158 |
st.cache_data.clear()
|
159 |
|
160 |
nb_bonnes_reponses = 0
|
|
|
154 |
t_previous_debut = t_debut
|
155 |
t_debut = time.time()
|
156 |
|
157 |
+
if st.button(label=tr("Validez"), type="primary"):
|
158 |
st.cache_data.clear()
|
159 |
|
160 |
nb_bonnes_reponses = 0
|
tabs/id_lang_tab.py
CHANGED
@@ -369,7 +369,7 @@ def run():
|
|
369 |
custom_sentence= st.selectbox(tr("Selectionnez une phrases test à identifier")+":", sentence_test['sentence'] )
|
370 |
else:
|
371 |
custom_sentence = st.text_area(label=tr("Saisir le texte dont vous souhaitez identifier la langue:"))
|
372 |
-
st.button(label=tr("
|
373 |
|
374 |
if custom_sentence!='':
|
375 |
st.write("## **"+tr("Résultats")+" :**\n")
|
|
|
369 |
custom_sentence= st.selectbox(tr("Selectionnez une phrases test à identifier")+":", sentence_test['sentence'] )
|
370 |
else:
|
371 |
custom_sentence = st.text_area(label=tr("Saisir le texte dont vous souhaitez identifier la langue:"))
|
372 |
+
st.button(label=tr("Validez"), type="primary")
|
373 |
|
374 |
if custom_sentence!='':
|
375 |
st.write("## **"+tr("Résultats")+" :**\n")
|
tabs/intro.py
CHANGED
@@ -28,7 +28,7 @@ def run():
|
|
28 |
st.markdown(tr(
|
29 |
"""
|
30 |
Ce projet a été réalisé dans le cadre d’une formation de Data Scientist, entre juin et novembre 2023.
|
31 |
-
<br>
|
32 |
:red[**Démosthène**] est l'un des plus grands orateurs de l'Antiquité. Il savait s’exprimer, et se faire comprendre.
|
33 |
Se faire comprendre est l’un des principaux objectifs de la traduction.
|
34 |
""")
|
|
|
28 |
st.markdown(tr(
|
29 |
"""
|
30 |
Ce projet a été réalisé dans le cadre d’une formation de Data Scientist, entre juin et novembre 2023.
|
31 |
+
<br>
|
32 |
:red[**Démosthène**] est l'un des plus grands orateurs de l'Antiquité. Il savait s’exprimer, et se faire comprendre.
|
33 |
Se faire comprendre est l’un des principaux objectifs de la traduction.
|
34 |
""")
|
tabs/modelisation_seq2seq_tab.py
CHANGED
@@ -346,8 +346,10 @@ def run():
|
|
346 |
""")
|
347 |
, unsafe_allow_html=True)
|
348 |
|
|
|
349 |
lang_tgt = ['en','fr','af','ak','sq','de','am','en','ar','hy','as','az','ba','bm','eu','bn','be','my','bs','bg','ks','ca','ny','zh','si','ko','co','ht','hr','da','dz','gd','es','eo','et','ee','fo','fj','fi','fr','fy','gl','cy','lg','ka','el','gn','gu','ha','he','hi','hu','ig','id','iu','ga','is','it','ja','kn','kk','km','ki','rw','ky','rn','ku','lo','la','lv','li','ln','lt','lb','mk','ms','ml','dv','mg','mt','mi','mr','mn','nl','ne','no','nb','nn','oc','or','ug','ur','uz','ps','pa','fa','pl','pt','ro','ru','sm','sg','sa','sc','sr','sn','sd','sk','sl','so','st','su','sv','sw','ss','tg','tl','ty','ta','tt','cs','te','th','bo','ti','to','ts','tn','tr','tk','tw','uk','vi','wo','xh','yi']
|
350 |
label_lang = ['Anglais','Français','Afrikaans','Akan','Albanais','Allemand','Amharique','Anglais','Arabe','Arménien','Assamais','Azéri','Bachkir','Bambara','Basque','Bengali','Biélorusse','Birman','Bosnien','Bulgare','Cachemiri','Catalan','Chichewa','Chinois','Cingalais','Coréen','Corse','Créolehaïtien','Croate','Danois','Dzongkha','Écossais','Espagnol','Espéranto','Estonien','Ewe','Féroïen','Fidjien','Finnois','Français','Frisonoccidental','Galicien','Gallois','Ganda','Géorgien','Grecmoderne','Guarani','Gujarati','Haoussa','Hébreu','Hindi','Hongrois','Igbo','Indonésien','Inuktitut','Irlandais','Islandais','Italien','Japonais','Kannada','Kazakh','Khmer','Kikuyu','Kinyarwanda','Kirghiz','Kirundi','Kurde','Lao','Latin','Letton','Limbourgeois','Lingala','Lituanien','Luxembourgeois','Macédonien','Malais','Malayalam','Maldivien','Malgache','Maltais','MaorideNouvelle-Zélande','Marathi','Mongol','Néerlandais','Népalais','Norvégien','Norvégienbokmål','Norvégiennynorsk','Occitan','Oriya','Ouïghour','Ourdou','Ouzbek','Pachto','Pendjabi','Persan','Polonais','Portugais','Roumain','Russe','Samoan','Sango','Sanskrit','Sarde','Serbe','Shona','Sindhi','Slovaque','Slovène','Somali','SothoduSud','Soundanais','Suédois','Swahili','Swati','Tadjik','Tagalog','Tahitien','Tamoul','Tatar','Tchèque','Télougou','Thaï','Tibétain','Tigrigna','Tongien','Tsonga','Tswana','Turc','Turkmène','Twi','Ukrainien','Vietnamien','Wolof','Xhosa','Yiddish']
|
|
|
351 |
lang_src = {'ar': 'arabic', 'bg': 'bulgarian', 'de': 'german', 'el':'modern greek', 'en': 'english', 'es': 'spanish', 'fr': 'french', \
|
352 |
'hi': 'hindi', 'it': 'italian', 'ja': 'japanese', 'nl': 'dutch', 'pl': 'polish', 'pt': 'portuguese', 'ru': 'russian', 'sw': 'swahili', \
|
353 |
'th': 'thai', 'tr': 'turkish', 'ur': 'urdu', 'vi': 'vietnamese', 'zh': 'chinese'}
|
@@ -357,7 +359,7 @@ def run():
|
|
357 |
chosen_id = tab_bar(data=[
|
358 |
TabBarItemData(id="tab1", title="small vocab", description=tr("avec Keras et un RNN")),
|
359 |
TabBarItemData(id="tab2", title="small vocab", description=tr("avec Keras et un Transformer")),
|
360 |
-
TabBarItemData(id="tab3", title=tr("Phrase personnelle"), description=tr("à
|
361 |
TabBarItemData(id="tab4", title=tr("Phrase personnelle"), description=tr("à dicter")),
|
362 |
TabBarItemData(id="tab5", title=tr("Funny translation !"), description=tr("avec le Fine Tuning"))],
|
363 |
default="tab1")
|
@@ -422,7 +424,7 @@ def run():
|
|
422 |
st.write("## **"+tr("Paramètres")+" :**\n")
|
423 |
custom_sentence = st.text_area(label=tr("Saisir le texte à traduire"))
|
424 |
l_tgt = st.selectbox(tr("Choisir la langue cible pour Google Translate (uniquement)")+":",lang_tgt, format_func = find_lang_label )
|
425 |
-
st.button(label=tr("
|
426 |
if custom_sentence!="":
|
427 |
st.write("## **"+tr("Résultats")+" :**\n")
|
428 |
Lang_detected = lang_classifier (custom_sentence)[0]['label']
|
@@ -559,7 +561,7 @@ def run():
|
|
559 |
st.write("")
|
560 |
st.markdown(tr(
|
561 |
"""
|
562 |
-
Ainsi **la data science devient
|
563 |
Voici quelques illustrations :
|
564 |
(*vous noterez que DataScientest a obtenu le monopole de l'enseignement de la data science*)
|
565 |
""")
|
@@ -575,7 +577,7 @@ def run():
|
|
575 |
st.write("## **"+tr("Paramètres")+" :**\n")
|
576 |
st.write(tr("A vous d'essayer")+":")
|
577 |
custom_sentence2 = st.text_area(label=tr("Saisissez le texte anglais à traduire"))
|
578 |
-
but2 = st.button(label=tr("
|
579 |
if custom_sentence2!="":
|
580 |
st.write("## **"+tr("Résultats")+" :**\n")
|
581 |
st.write("**fr :** "+finetuned_translation_en_fr(custom_sentence2, max_length=400)[0]['translation_text'])
|
|
|
346 |
""")
|
347 |
, unsafe_allow_html=True)
|
348 |
|
349 |
+
# Utilisation du module translate
|
350 |
lang_tgt = ['en','fr','af','ak','sq','de','am','en','ar','hy','as','az','ba','bm','eu','bn','be','my','bs','bg','ks','ca','ny','zh','si','ko','co','ht','hr','da','dz','gd','es','eo','et','ee','fo','fj','fi','fr','fy','gl','cy','lg','ka','el','gn','gu','ha','he','hi','hu','ig','id','iu','ga','is','it','ja','kn','kk','km','ki','rw','ky','rn','ku','lo','la','lv','li','ln','lt','lb','mk','ms','ml','dv','mg','mt','mi','mr','mn','nl','ne','no','nb','nn','oc','or','ug','ur','uz','ps','pa','fa','pl','pt','ro','ru','sm','sg','sa','sc','sr','sn','sd','sk','sl','so','st','su','sv','sw','ss','tg','tl','ty','ta','tt','cs','te','th','bo','ti','to','ts','tn','tr','tk','tw','uk','vi','wo','xh','yi']
|
351 |
label_lang = ['Anglais','Français','Afrikaans','Akan','Albanais','Allemand','Amharique','Anglais','Arabe','Arménien','Assamais','Azéri','Bachkir','Bambara','Basque','Bengali','Biélorusse','Birman','Bosnien','Bulgare','Cachemiri','Catalan','Chichewa','Chinois','Cingalais','Coréen','Corse','Créolehaïtien','Croate','Danois','Dzongkha','Écossais','Espagnol','Espéranto','Estonien','Ewe','Féroïen','Fidjien','Finnois','Français','Frisonoccidental','Galicien','Gallois','Ganda','Géorgien','Grecmoderne','Guarani','Gujarati','Haoussa','Hébreu','Hindi','Hongrois','Igbo','Indonésien','Inuktitut','Irlandais','Islandais','Italien','Japonais','Kannada','Kazakh','Khmer','Kikuyu','Kinyarwanda','Kirghiz','Kirundi','Kurde','Lao','Latin','Letton','Limbourgeois','Lingala','Lituanien','Luxembourgeois','Macédonien','Malais','Malayalam','Maldivien','Malgache','Maltais','MaorideNouvelle-Zélande','Marathi','Mongol','Néerlandais','Népalais','Norvégien','Norvégienbokmål','Norvégiennynorsk','Occitan','Oriya','Ouïghour','Ourdou','Ouzbek','Pachto','Pendjabi','Persan','Polonais','Portugais','Roumain','Russe','Samoan','Sango','Sanskrit','Sarde','Serbe','Shona','Sindhi','Slovaque','Slovène','Somali','SothoduSud','Soundanais','Suédois','Swahili','Swati','Tadjik','Tagalog','Tahitien','Tamoul','Tatar','Tchèque','Télougou','Thaï','Tibétain','Tigrigna','Tongien','Tsonga','Tswana','Turc','Turkmène','Twi','Ukrainien','Vietnamien','Wolof','Xhosa','Yiddish']
|
352 |
+
|
353 |
lang_src = {'ar': 'arabic', 'bg': 'bulgarian', 'de': 'german', 'el':'modern greek', 'en': 'english', 'es': 'spanish', 'fr': 'french', \
|
354 |
'hi': 'hindi', 'it': 'italian', 'ja': 'japanese', 'nl': 'dutch', 'pl': 'polish', 'pt': 'portuguese', 'ru': 'russian', 'sw': 'swahili', \
|
355 |
'th': 'thai', 'tr': 'turkish', 'ur': 'urdu', 'vi': 'vietnamese', 'zh': 'chinese'}
|
|
|
359 |
chosen_id = tab_bar(data=[
|
360 |
TabBarItemData(id="tab1", title="small vocab", description=tr("avec Keras et un RNN")),
|
361 |
TabBarItemData(id="tab2", title="small vocab", description=tr("avec Keras et un Transformer")),
|
362 |
+
TabBarItemData(id="tab3", title=tr("Phrase personnelle"), description=tr("à écrire")),
|
363 |
TabBarItemData(id="tab4", title=tr("Phrase personnelle"), description=tr("à dicter")),
|
364 |
TabBarItemData(id="tab5", title=tr("Funny translation !"), description=tr("avec le Fine Tuning"))],
|
365 |
default="tab1")
|
|
|
424 |
st.write("## **"+tr("Paramètres")+" :**\n")
|
425 |
custom_sentence = st.text_area(label=tr("Saisir le texte à traduire"))
|
426 |
l_tgt = st.selectbox(tr("Choisir la langue cible pour Google Translate (uniquement)")+":",lang_tgt, format_func = find_lang_label )
|
427 |
+
st.button(label=tr("Validez"), type="primary")
|
428 |
if custom_sentence!="":
|
429 |
st.write("## **"+tr("Résultats")+" :**\n")
|
430 |
Lang_detected = lang_classifier (custom_sentence)[0]['label']
|
|
|
561 |
st.write("")
|
562 |
st.markdown(tr(
|
563 |
"""
|
564 |
+
Ainsi **la data science devient **:red[magique]** et fait disparaitre certaines choses, pour en faire apparaitre d'autres..**
|
565 |
Voici quelques illustrations :
|
566 |
(*vous noterez que DataScientest a obtenu le monopole de l'enseignement de la data science*)
|
567 |
""")
|
|
|
577 |
st.write("## **"+tr("Paramètres")+" :**\n")
|
578 |
st.write(tr("A vous d'essayer")+":")
|
579 |
custom_sentence2 = st.text_area(label=tr("Saisissez le texte anglais à traduire"))
|
580 |
+
but2 = st.button(label=tr("Validez"), type="primary")
|
581 |
if custom_sentence2!="":
|
582 |
st.write("## **"+tr("Résultats")+" :**\n")
|
583 |
st.write("**fr :** "+finetuned_translation_en_fr(custom_sentence2, max_length=400)[0]['translation_text'])
|
translate_app.py
CHANGED
@@ -1,11 +1,18 @@
|
|
1 |
import streamlit as st
|
2 |
-
from translate import Translator
|
|
|
3 |
|
4 |
-
@st.cache_data(ttl="
|
5 |
def trad(message,l):
|
6 |
try:
|
7 |
-
|
8 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
9 |
return translation
|
10 |
except:
|
11 |
return "Problème de traduction.."
|
@@ -16,3 +23,5 @@ def tr(message):
|
|
16 |
if l == 'fr': return message
|
17 |
else: message = message.replace(":red[**","").replace("**]","")
|
18 |
return trad(message,l)
|
|
|
|
|
|
1 |
import streamlit as st
|
2 |
+
# from translate import Translator
|
3 |
+
from deep_translator import GoogleTranslator
|
4 |
|
5 |
+
@st.cache_data(ttl="2d", show_spinner=False)
|
6 |
def trad(message,l):
|
7 |
try:
|
8 |
+
# Utilisation du module translate
|
9 |
+
# translator = Translator(to_lang=l , from_lang="fr")
|
10 |
+
# translation = translator.translate(message)
|
11 |
+
|
12 |
+
# Utilisation du module deep_translator
|
13 |
+
translation = GoogleTranslator(source='fr', target=l).translate(message.replace(" \n","§§§"))
|
14 |
+
translation = translation.replace("§§§"," \n") # .replace(" ","<br>")
|
15 |
+
|
16 |
return translation
|
17 |
except:
|
18 |
return "Problème de traduction.."
|
|
|
23 |
if l == 'fr': return message
|
24 |
else: message = message.replace(":red[**","").replace("**]","")
|
25 |
return trad(message,l)
|
26 |
+
|
27 |
+
|