File size: 2,068 Bytes
dc149ba 158e38e dc149ba 3708fd3 dc149ba 2866119 dc149ba 2866119 dc149ba 2866119 dc149ba 2866119 9ee6383 2866119 9ee6383 2866119 dc149ba 2866119 dc149ba 6c18750 dc149ba cc4bac3 a7e8544 2866119 55f0629 3708fd3 55f0629 b44d3df aad89b6 55f0629 |
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 |
"""
translation program for simple text
1. detect language from langdetect
2. translate to target language given by user
Example from
https://www.thepythoncode.com/article/machine-translation-using-huggingface-transformers-in-python
user_input:
string: string to be translated
target_lang: language to be translated to
Returns:
string: translated string of text
"""
import gradio as gr
import argparse
import langid
from transformers import pipeline
def detect_lang(article, target_lang):
"""
Language Detection using library langid
Args:
article (string): article that user wish to translate
target_lang (string): language user want to translate article into
Returns:
string: detected language short form
"""
result_lang = langid.classify(article)
print(result_lang[0])
if result_lang == target_lang:
return result_lang[0]
else:
return result_lang[0]
def opus_trans(article, target_language):
"""
Translation by Helsinki-NLP model
Args:
article (string): article that user wishes to translate
result_lang (string): detected language in short form
target_language (string): language that user wishes to translate article into
Returns:
string: translated piece of article based off target_language
"""
if target_language == "en":
result_lang = "zh"
elif target_language == "zh":
result_lang = "en"
# result_lang = detect_lang(article, target_language)
task_name = f"translation_{result_lang}_to_{target_language}"
model_name = f"Helsinki-NLP/opus-mt-{result_lang}-{target_language}"
translator = pipeline(task_name, model=model_name, tokenizer=model_name)
translated = translator(article)[0]["translation_text"]
print(translated)
return translated
article = gr.Textbox()
lang_select = gr.Radio(["English", "Chinese"])
translate = gr.Interface(
opus_trans,
[
article,
lang_select,
],
outputs=gr.Textbox(),
)
translate.launch()
|