Downloads · 30 days
149
0% of all-time downloads
saarus72/russian_text_normalizer
russian_text_normalizer is a machine learning model from saarus72. Use it for the machine learning task on the model card, and read the license before you ship it in a product. It is set up for transformers. The card lists the license as apache-2.0.
Finetuned version of FRED-T5 large 820M.
Downloads · 30 days
149
0% of all-time downloads
All-time downloads
39K
Public
Parameters
820M
9.8 GB on disk
Likes
12
Public
Click a slice to open those files.
.safetensors3.3 GB · 100%
From the Hugging Face model README
Finetuned version of FRED-T5 large 820M.
Code repo.
Trained on ficbook, librusec and pikabu sentences, inverse text normalized using modified version of word_to_number_ru package.
Also used Kaggle Text Normalization Challenge data to be able to normalize latin also. Became to perform worse on numbers but process latin succesfully. git checkout #8c2476b to choose previous number-only version.
Put numbers and latin words inside of squared brackets and follow with T5 tokens <extra_id_0>, <extra_id_1> and so on.
One is advised to split numbers on groups by 3 digits always and do not put much of anything but numbers and latin inside of [ ] brackets.
import torch
from transformers import GPT2Tokenizer, T5ForConditionalGeneration
device='cuda'
tokenizer = GPT2Tokenizer.from_pretrained('saarus72/russian_text_normalizer', eos_token='</s>')
model = T5ForConditionalGeneration.from_pretrained('saarus72/russian_text_normalizer').to(device)
lm_text = '<SC1>Было у отца [3]<extra_id_0> сына, но не было даже [2- 3]<extra_id_1> пиджаков с блёстками за [142 990]<extra_id_2> руб.'
input_ids = torch.tensor([tokenizer.encode(lm_text)]).to(device)
outputs = model.generate(input_ids, eos_token_id=tokenizer.eos_token_id, early_stopping=True)
print(tokenizer.decode(outputs[0][1:]))
# <extra_id_0> три\n <extra_id_1> двух- трёх\n <extra_id_2> сто сорок две тысячи девятьсот девяносто\n</s>
| Model input | After replacement | Is correct |
|---|---|---|
<SC1>Временами я думаю, какое применение найти тем [14 697]<extra_id_0> рублям, что лежат уже больше [33]<extra_id_1> лет? | Временами я думаю, какое применение найти тем четырнадцати тысячам шестистам девяносто семи рублям, что лежат уже больше тридцати трёх лет? | Yes |
<SC1>я купил [iphone 12]<extra_id_0> за [142 990]<extra_id_1> руб без [3-x]<extra_id_2> часов полдень и т.д. | я купил айфон двенадцатый за сто сорок две тысячи девятьсот девяносто руб без трех часов полдень и т.д.? | Yes |
<SC1>В школе у меня одни [5]<extra_id_0>. | В школе у меня одни пятые. | No (пятёрки is correct) |
<SC1>Было у отца [3]<extra_id_0> сына. Старшему было [35]<extra_id_1>, среднему - не меньше [33]<extra_id_2>, а младший на [4]<extra_id_3> младше всех. Бывает. | Было у отца три сына. Старшему было тридцать пять, среднему - не меньше тридцати трех, а младший на четыре младше всех. Бывает. | Yes |
<SC1>я подарю тебе [1 000 000]<extra_id_0> алых роз, я научу тебя смеяться | я подарю тебе миллион алых роз, я научу тебя смеяться | Yes |
<SC1>запомни телефон — [8 9 555 35 35]<extra_id_0>, проще позвонить, чем занимать | запомни телефон — восемь девять миллионов пятьсот пятьдесят пять тысяч тридцать пять | Not much, better hold on 3 digit groups |
<SC1>стоимость айфон [32]<extra_id_0> — всего [189 553 600]<extra_id_1> руб.! | стоимость айфон тридцать два — всего сто восемьдесят девять миллионов пятьсот пятьдесят три тысячи шестьсот руб.! | Yes |
<SC1>[91 957 552 336]<extra_id_0> минус [3 474 354 354]<extra_id_1> равно ? | девяносто один миллион девятьсот пятьдесят семь миллионов пятьсот пятьдесят две тысячи триста тридцать шесть минус три миллиона четыреста семьдесят четыре миллиона триста пятьдесят четыре тысячи триста пятьдесят четыре равно ? | No :( |
<SC1>я вырос на [the beatles]<extra_id_0>, меня не испугают даже [33 yellow submarine]<extra_id_1> | <SC1>я вырос на зэ битлс, меня не испугают даже тридцать три йеллоу сабмарин | Yes |
<SC1>слыш [nigga]<extra_id_0> ты слыхал про [gitdata]<extra_id_1>? | слыш нигга ты слыхал про джитдата? | Yes |
<SC1>стоимость [samsung 32MX Pro]<extra_id_0> — всего [189 600]<extra_id_1> руб! | стоимость самсунг тридцать два мкс про — всего сто восемьдесят девять тысяч шестьсот руб! | Not much (эм икс would fit better) |