1from transformers import MarianMTModel, MarianTokenizer
2import evaluate
3
4class Transliterate:
5 def __init__(self, model_name='ar5entum/marianMT_bi_dev_rom_tl'):
6 self.model_name = model_name
7 self.tokenizer = MarianTokenizer.from_pretrained(model_name)
8 self.model = MarianMTModel.from_pretrained(model_name)
9
10 def predict(self, input_text):
11 tokenized_text = self.tokenizer(input_text, return_tensors='pt')
12 translated = self.model.generate(**tokenized_text)
13 translated_text = self.tokenizer.decode(translated[0], skip_special_tokens=True)
14 return translated_text
15model = Transliterate()
16
17devnagiri = [
18 "यह अभिषेक जल, इक्षुरस, दुध, चावल का आटा, लाल चंदन, हल्दी, अष्टगंध, चंदन चुरा, चार कलश, केसर वृष्टि, आरती, सुगंधित कलश, महाशांतिधारा एवं महाअर्घ्य के साथ भगवान नेमिनाथ को समर्पित किया जाता है।",
19 "कुछ ने कहा ये चांद है कुछ ने कहा चेहरा तेरा"
20 ]
21roman = [
22 "yah abhishek jal, ikshuras, dudh, chaval ka ataa, laal chandan, haldi, ashtagandh, chandan chura, char kalash, kesar vrishti, aarti, sugandhit kalash, mahashantidhara evam mahaarghya ke saath bhagvan Neminath ko samarpit kiya jata hai.",
23 "kuch ne kaha ye chand hai kuch ne kaha chehra ter"
24 ]
25
26import time
27start = time.time()
28
29predictions = [model.predict('[dev] ' + d) for d in devnagiri]
30end = time.time()
31print("TIME: ", end-start)
32for i in range(len(devnagiri)):
33 print("‾‾‾‾‾‾‾‾‾‾‾‾")
34 print("Input text:\t", devnagiri[i])
35 print("Prediction:\t", predictions[i])
36 print("Ground Truth:\t", roman[i])
37bleu = evaluate.load("bleu")
38results = bleu.compute(predictions=predictions, references=roman)
39print(results)
40predictions = [model.predict('[rom] ' + d) for d in roman]
41end = time.time()
42print("TIME: ", end-start)
43for i in range(len(roman)):
44 print("‾‾‾‾‾‾‾‾‾‾‾‾")
45 print("Input text:\t", roman[i])
46 print("Prediction:\t", predictions[i])
47 print("Ground Truth:\t", devnagiri[i])
48bleu = evaluate.load("bleu")
49results = bleu.compute(predictions=predictions, references=devnagiri)
50print(results)
51
52# TIME: 1.8382132053375244
53# ‾‾‾‾‾‾‾‾‾‾‾‾
54# Input text: यह अभिषेक जल, इक्षुरस, दुध, चावल का आटा, लाल चंदन, हल्दी, अष्टगंध, चंदन चुरा, चार कलश, केसर वृष्टि, आरती, सुगंधित कलश, महाशांतिधारा एवं महाअर्घ्य के साथ भगवान नेमिनाथ को समर्पित किया जाता है।
55# Prediction: yah abhishek jal, ikshuras, dudh, chaval ka ataa, laal chandan, haldi, ashtagandh, chandan chura, char kalash, kesar vrishti, aarti, sugandhit kalash, mahashantidhara evam mahaarghya ke saath bhagvan Neminath ko samarpit kiya jata hai.
56# Ground Truth: yah abhishek jal, ikshuras, dudh, chaval ka ataa, laal chandan, haldi, ashtagandh, chandan chura, char kalash, kesar vrishti, aarti, sugandhit kalash, mahashantidhara evam mahaarghya ke saath bhagvan Neminath ko samarpit kiya jata hai.
57# ‾‾‾‾‾‾‾‾‾‾‾‾
58# Input text: कुछ ने कहा ये चांद है कुछ ने कहा चेहरा तेरा
59# Prediction: uchh ne kaha ye chand hai kuch ne kaha chehra tera
60# Ground Truth: kuch ne kaha ye chand hai kuch ne kaha chehra ter
61# {'bleu': 0.9628980475343849, 'precisions': [0.9649122807017544, 0.9636363636363636, 0.9622641509433962, 0.9607843137254902], 'brevity_penalty': 1.0, 'length_ratio': 1.0, 'translation_length': 57, 'reference_length': 57}
62
63
64# TIME: 5.650054216384888
65# ‾‾‾‾‾‾‾‾‾‾‾‾
66# Input text: yah abhishek jal, ikshuras, dudh, chaval ka ataa, laal chandan, haldi, ashtagandh, chandan chura, char kalash, kesar vrishti, aarti, sugandhit kalash, mahashantidhara evam mahaarghya ke saath bhagvan Neminath ko samarpit kiya jata hai.
67# Prediction: यह अभिषेक जल, इक्षुरस, दुध, चावल का आता, लाल चंदन, हल्दी, अष्टगंध, चंदन चुरा, चार कलश, केसर व्टि, आरती, सुगंधित कलश, महाशांतारा
68# Ground Truth: यह अभिषेक जल, इक्षुरस, दुध, चावल का आटा, लाल चंदन, हल्दी, अष्टगंध, चंदन चुरा, चार कलश, केसर वृष्टि, आरती, सुगंधित कलश, महाशांतिधारा एवं महाअर्घ्य के साथ भगवान नेमिनाथ को समर्पित किया जाता है।
69# ‾‾‾‾‾‾‾‾‾‾‾‾
70# Input text: kuch ne kaha ye chand hai kuch ne kaha chehra ter
71# Prediction: कुछ ने कहा ये चाँद है कुछ ने कहा चेहरा तेर
72# Ground Truth: कुछ ने कहा ये चांद है कुछ ने कहा चेहरा तेरा
73# {'bleu': 0.5977286781346162, 'precisions': [0.8888888888888888, 0.813953488372093, 0.7317073170731707, 0.6410256410256411], 'brevity_penalty': 0.7831394949065555, 'length_ratio': 0.8035714285714286, 'translation_length': 45, 'reference_length': 56}
74