@@ -41,19 +41,26 @@ class Translate:
41
41
"""
42
42
43
43
def __init__ (
44
- self , src_lang : str , target_lang : str , use_gpu : bool = False
44
+ self , src_lang : str , target_lang : str , engine : str = "default" , use_gpu : bool = False
45
45
) -> None :
46
46
"""
47
47
:param str src_lang: source language
48
48
:param str target_lang: target language
49
+ :param str engine: Machine Translation engine
49
50
:param bool use_gpu: load model to gpu (Default is False)
50
51
52
+ **Options for engine*
53
+ * *default* - The engine default by each a language.
54
+ * *small100* - A multilingual machine translation model (covering 100 languages)
55
+
51
56
**Options for source & target language**
52
57
* *th* - *en* - Thai to English
53
58
* *en* - *th* - English to Thai
54
59
* *th* - *zh* - Thai to Chinese
55
60
* *zh* - *th* - Chinese to Thai
56
61
* *th* - *fr* - Thai to French
62
+ * *th* - *xx* - Thai to xx (xx is language code). It uses small100 model.
63
+ * *xx* - *th* - xx to Thai (xx is language code). It uses small100 model.
57
64
58
65
:Example:
59
66
@@ -66,10 +73,21 @@ def __init__(
66
73
# output: I love cat.
67
74
"""
68
75
self .model = None
69
- self .load_model (src_lang , target_lang , use_gpu )
70
-
71
- def load_model (self , src_lang : str , target_lang : str , use_gpu : bool ):
72
- if src_lang == "th" and target_lang == "en" :
76
+ self .engine = engine
77
+ self .src_lang = src_lang
78
+ self .use_gpu = use_gpu
79
+ self .target_lang = target_lang
80
+ self .load_model ()
81
+
82
+ def load_model (self ):
83
+ src_lang = self .src_lang
84
+ target_lang = self .target_lang
85
+ use_gpu = self .use_gpu
86
+ if self .engine == "small100" :
87
+ from .small100 import Small100Translator
88
+
89
+ self .model = Small100Translator (use_gpu )
90
+ elif src_lang == "th" and target_lang == "en" :
73
91
from pythainlp .translate .en_th import ThEnTranslator
74
92
75
93
self .model = ThEnTranslator (use_gpu )
@@ -100,4 +118,6 @@ def translate(self, text) -> str:
100
118
:return: translated text in target language
101
119
:rtype: str
102
120
"""
121
+ if self .engine == "small100" :
122
+ return self .model .translate (text , tgt_lang = self .target_lang )
103
123
return self .model .translate (text )
0 commit comments