mulyavinaa commited on
Commit
c5f388c
1 Parent(s): 092b169

Создание модулей для работы с моделями определения языка и перевода текста я русского на английский

Browse files
mulyavin_aa/__init__.py ADDED
File without changes
mulyavin_aa/langdetector.py ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Модуль определения языка
2
+
3
+ import transformers.pipelines.base
4
+ from transformers import pipeline
5
+
6
+
7
+ def load_text_detection_model() -> transformers.pipelines.base.Pipeline:
8
+ """
9
+ Подгрузка модели детектора языка
10
+ :return: Класс пайплайна для модели детектора языка
11
+ """
12
+ return pipeline("text-classification", model="papluca/xlm-roberta-base-language-detection")
13
+
14
+
15
+ def lang_detect(text: str, langdetector: transformers.pipelines.base.Pipeline) -> str | None:
16
+ """
17
+ Определение языка для введенного текста
18
+ :param text: Текст
19
+ :param langdetector: Пайплайн для модели детектора языка
20
+ :return: Код определенного языка (если определен)
21
+ """
22
+ text_langs = list(langdetector(text, ))
23
+
24
+ if not text_langs:
25
+ return None
26
+
27
+ for i in range(3):
28
+ if i > len(text_langs) - 1:
29
+ break
30
+ print(text_langs[i])
31
+ if text_langs[i]['label'] in ['ru', 'en']:
32
+ return text_langs[i]['label']
33
+
34
+ return None
mulyavin_aa/translator.py ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Модуль перевода языка
2
+
3
+ import transformers.pipelines.base
4
+ from transformers import pipeline
5
+
6
+
7
+ def load_text_translator_model() -> transformers.pipelines.base.Pipeline:
8
+ """
9
+ Подгрузка модели переводчика языка
10
+ :return: Класс пайплайна для модели переводчика языка
11
+ """
12
+ return pipeline("translation", model=f'Helsinki-NLP/opus-mt-ru-en')
13
+
14
+
15
+ def translate_to_en(text: str, translator: transformers.pipelines.base.Pipeline) -> str:
16
+ """
17
+ Перевод текста с русского на английский
18
+ :param text: Текст
19
+ :param translator: Пайплайна для модели переводчика языка
20
+ :return: Переведенный текст
21
+ """
22
+ return translator(text)[0]['translation_text']