Views
No views yet
1from transformers import MT5ForConditionalGeneration, MT5Tokenizer
2
3# Load model and tokenizer
4model_name = "Akaash1/NLP_mt5"
5tokenizer = MT5Tokenizer.from_pretrained(model_name)
6model = MT5ForConditionalGeneration.from_pretrained(model_name)
7
8# Normalize Khmer number words
9text = "វ័យ ត្រឹម ដប់ ប្រាំបី ឆ្នាំ"
10inputs = tokenizer(text, return_tensors="pt")
11outputs = model.generate(**inputs, num_beams=4, max_length=256)
12result = tokenizer.decode(outputs[0], skip_special_tokens=True)
13
14print(result) # Output: វ័យ ត្រឹម 18 ឆ្នាំ1import torch
2from transformers import MT5ForConditionalGeneration, MT5Tokenizer
3
4class KhmerITN:
5 def __init__(self, model_name="Akaash1/NLP_mt5"):
6 self.tokenizer = MT5Tokenizer.from_pretrained(model_name)
7 self.model = MT5ForConditionalGeneration.from_pretrained(model_name)
8 self.device = "cuda" if torch.cuda.is_available() else "cpu"
9 self.model.to(self.device)
10 self.model.eval()
11
12 def normalize(self, text, num_beams=4):
13 inputs = self.tokenizer(text, return_tensors="pt", max_length=256, truncation=True)
14 inputs = {k: v.to(self.device) for k, v in inputs.items()}
15
16 with torch.no_grad():
17 outputs = self.model.generate(**inputs, num_beams=num_beams, max_length=256)
18
19 return self.tokenizer.decode(outputs[0], skip_special_tokens=True)
20
21# Use it
22itn = KhmerITN()
23result = itn.normalize("ឆ្នាំ ពីរ ពាន់ ដប់ ប្រាំបី")
24print(result) # Output: ឆ្នាំ 2013| Input (Khmer words) | Output (with digits) |
|---|---|
| វ័យ ត្រឹម ដប់ ប្រាំបី ឆ្នាំ | វ័យ ត្រឹម 18 ឆ្នាំ |
| ឆ្នាំ ពីរ ពាន់ ដប់ ប្រាំបី | ឆ្នាំ 2013 |
| តារា វ័យ សាមសិប បួន ឆ្នាំ | តារា វ័យ 34 ឆ្នាំ |
| មាន សរុប ម្ភៃ មួយ នាក់ | មាន សរុប 21 នាក់ |
| ក្នុង រយៈពេល ដប់ ឆ្នាំ | ក្នុង រយៈពេល 10 ឆ្នាំ |
1@misc{khmer-itn-mt5,
2 title={Khmer Inverse Text Normalization using mT5},
3 author={Your Name},
4 year={2024},
5 url={https://huggingface.co/Akaash1/NLP_mt5}
6}