saarus72 commited on
Commit
cd1dba8
1 Parent(s): 8c2476b

Normalize latin as well

Browse files
README.md CHANGED
@@ -4,18 +4,20 @@ language:
4
  license: apache-2.0
5
  ---
6
 
7
- # Russian text (number) normalization
8
 
9
  Finetuned version of [FRED-T5 large 820M](https://huggingface.co/ai-forever/FRED-T5-large).
10
 
11
  Code [repo](https://github.com/saarus72/text_normalization/tree/dev).
12
 
13
- Trained on [ficbook](https://huggingface.co/datasets/IlyaGusev/ficbook), [librusec](https://huggingface.co/datasets/IlyaGusev/librusec) and [pikabu](https://huggingface.co/datasets/IlyaGusev/pikabu) sentences, inverse text normalized using modified version of [word_to_number_ru](https://github.com/flockentanz/word_to_number_ru) package. Haven't trained anything yet but number normalization.
 
 
14
 
15
  ## Usage
16
 
17
- Put numbers inside of squared brackets and follow with T5 tokens `<extra_id_0>`, `<extra_id_1>` and so on.
18
- One is advised to split numbers on groups by 3 digits always and do not put anything else inside of `[ ]` brackets.
19
 
20
  ```python
21
  import torch
@@ -25,11 +27,11 @@ from transformers import GPT2Tokenizer, T5ForConditionalGeneration
25
  device='cuda'
26
  tokenizer = GPT2Tokenizer.from_pretrained('saarus72/russian_text_normalizer', eos_token='</s>')
27
  model = T5ForConditionalGeneration.from_pretrained('saarus72/russian_text_normalizer').to(device)
28
- lm_text = '<SC1>Было у отца [3]<extra_id_0> сына, но не было даже [2-3]<extra_id_1> пиджаков с блёстками за [142 990]<extra_id_2> руб.'
29
  input_ids = torch.tensor([tokenizer.encode(lm_text)]).to(device)
30
  outputs = model.generate(input_ids, eos_token_id=tokenizer.eos_token_id, early_stopping=True)
31
  print(tokenizer.decode(outputs[0][1:]))
32
- # '<extra_id_0> три\n <extra_id_1> двух- трёх\n <extra_id_2> сто сорок две тысячи девятьсот девяносто\n</s>'
33
  ```
34
 
35
  ### More examples
@@ -37,10 +39,13 @@ print(tokenizer.decode(outputs[0][1:]))
37
  | Model input | After replacement | Is correct |
38
  |---|---|---|
39
  | `<SC1>Временами я думаю, какое применение найти тем [14 697]<extra_id_0> рублям, что лежат уже больше [33]<extra_id_1> лет?` | `Временами я думаю, какое применение найти тем четырнадцати тысячам шестистам девяносто семи рублям, что лежат уже больше тридцати трёх лет?` | Yes |
40
- | `<SC1>я купил iphone [12]<extra_id_0> за [142 990]<extra_id_1> руб без [3-x]<extra_id_2> часов полдень и т.д.` | `я купил iphone двенадцатый за сто сорок две тысячи девятьсот девяносто руб без трех часов полдень и т.д.?` | Yes |
41
- | `<SC1>В школе у меня одни [5]<extra_id_0>.` | `В школе у меня одни пятые.` | **No (`пятёрки` is correct)** |
42
  | `<SC1>Было у отца [3]<extra_id_0> сына. Старшему было [35]<extra_id_1>, среднему - не меньше [33]<extra_id_2>, а младший на [4]<extra_id_3> младше всех. Бывает.` | `Было у отца три сына. Старшему было тридцать пять, среднему - не меньше тридцати трех, а младший на четыре младше всех. Бывает.` | Yes |
43
  | `<SC1>я подарю тебе [1 000 000]<extra_id_0> алых роз, я научу тебя смеяться` | `я подарю тебе миллион алых роз, я научу тебя смеяться` | Yes |
44
- | `<SC1>запомни телефон — [8 9 555 35 35]<extra_id_0>, проще позвонить, чем занимать` | `запомни телефон — восемь девять пятьсот пятьдесят пять тридцать пять тридцать пять, проще позвонить, чем занимать` | Yes |
45
  | `<SC1>стоимость айфон [32]<extra_id_0> — всего [189 553 600]<extra_id_1> руб.!` | `стоимость айфон тридцать два — всего сто восемьдесят девять миллионов пятьсот пятьдесят три тысячи шестьсот руб.!` | Yes |
46
- | `<SC1>[91 957 552 336]<extra_id_0> минус [3 474 354 354]<extra_id_1> равно ?` | `Девяносто девять миллиардов пятьдесят семь миллионов пятьсот пятьдесят два миллиона триста тридцать шесть минус три миллиарда четыреста семьдесят четыре тысячи триста пятьдесят четыре тысячи триста пятьдесят четыре равно ?` | **No :(** |
 
 
 
 
4
  license: apache-2.0
5
  ---
6
 
7
+ # Russian text normalization
8
 
9
  Finetuned version of [FRED-T5 large 820M](https://huggingface.co/ai-forever/FRED-T5-large).
10
 
11
  Code [repo](https://github.com/saarus72/text_normalization/tree/dev).
12
 
13
+ Trained on [ficbook](https://huggingface.co/datasets/IlyaGusev/ficbook), [librusec](https://huggingface.co/datasets/IlyaGusev/librusec) and [pikabu](https://huggingface.co/datasets/IlyaGusev/pikabu) sentences, inverse text normalized using modified version of [word_to_number_ru](https://github.com/flockentanz/word_to_number_ru) package.
14
+
15
+ Also used [Kaggle Text Normalization Challenge](https://www.kaggle.com/competitions/text-normalization-challenge-russian-language) 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.
16
 
17
  ## Usage
18
 
19
+ Put numbers and latin words inside of squared brackets and follow with T5 tokens `<extra_id_0>`, `<extra_id_1>` and so on.
20
+ 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.
21
 
22
  ```python
23
  import torch
 
27
  device='cuda'
28
  tokenizer = GPT2Tokenizer.from_pretrained('saarus72/russian_text_normalizer', eos_token='</s>')
29
  model = T5ForConditionalGeneration.from_pretrained('saarus72/russian_text_normalizer').to(device)
30
+ lm_text = '<SC1>Было у отца [3]<extra_id_0> сына, но не было даже [2- 3]<extra_id_1> пиджаков с блёстками за [142 990]<extra_id_2> руб.'
31
  input_ids = torch.tensor([tokenizer.encode(lm_text)]).to(device)
32
  outputs = model.generate(input_ids, eos_token_id=tokenizer.eos_token_id, early_stopping=True)
33
  print(tokenizer.decode(outputs[0][1:]))
34
+ # <extra_id_0> три\n <extra_id_1> двух- трёх\n <extra_id_2> сто сорок две тысячи девятьсот девяносто\n</s>
35
  ```
36
 
37
  ### More examples
 
39
  | Model input | After replacement | Is correct |
40
  |---|---|---|
41
  | `<SC1>Временами я думаю, какое применение найти тем [14 697]<extra_id_0> рублям, что лежат уже больше [33]<extra_id_1> лет?` | `Временами я думаю, какое применение найти тем четырнадцати тысячам шестистам девяносто семи рублям, что лежат уже больше тридцати трёх лет?` | Yes |
42
+ | `<SC1>я купил [iphone 12]<extra_id_0> за [142 990]<extra_id_1> руб без [3-x]<extra_id_2> часов полдень и т.д.` | `я купил айфон двенадцатый за сто сорок две тысячи девятьсот девяносто руб без трех часов полдень и т.д.?` | Yes |
43
+ | `<SC1>В школе у меня одни [5]<extra_id_0>.` | `В школе у меня одни пятые.` | **No** (`пятёрки` is correct) |
44
  | `<SC1>Было у отца [3]<extra_id_0> сына. Старшему было [35]<extra_id_1>, среднему - не меньше [33]<extra_id_2>, а младший на [4]<extra_id_3> младше всех. Бывает.` | `Было у отца три сына. Старшему было тридцать пять, среднему - не меньше тридцати трех, а младший на четыре младше всех. Бывает.` | Yes |
45
  | `<SC1>я подарю тебе [1 000 000]<extra_id_0> алых роз, я научу тебя смеяться` | `я подарю тебе миллион алых роз, я научу тебя смеяться` | Yes |
46
+ | `<SC1>запомни телефон — [8 9 555 35 35]<extra_id_0>, проще позвонить, чем занимать` | `запомни телефон — восемь девять миллионов пятьсот пятьдесят пять тысяч тридцать пять` | **Not much**, better hold on 3 digit groups |
47
  | `<SC1>стоимость айфон [32]<extra_id_0> — всего [189 553 600]<extra_id_1> руб.!` | `стоимость айфон тридцать два — всего сто восемьдесят девять миллионов пятьсот пятьдесят три тысячи шестьсот руб.!` | Yes |
48
+ | `<SC1>[91 957 552 336]<extra_id_0> минус [3 474 354 354]<extra_id_1> равно ?` | `девяносто один миллион девятьсот пятьдесят семь миллионов пятьсот пятьдесят две тысячи триста тридцать шесть минус три миллиона четыреста семьдесят четыре миллиона триста пятьдесят четыре тысячи триста пятьдесят четыре равно ?` | **No :(** |
49
+ | `<SC1>я вырос на [the beatles]<extra_id_0>, меня не испугают даже [33 yellow submarine]<extra_id_1>` | `<SC1>я вырос на зэ битлс, меня не испугают даже тридцать три йеллоу сабмарин` | Yes
50
+ | `<SC1>слыш [nigga]<extra_id_0> ты слыхал про [gitdata]<extra_id_1>?` | `слыш нигга ты слыхал про джитдата?` | Yes
51
+ | `<SC1>стоимость [samsung 32MX Pro]<extra_id_0> — всего [189 600]<extra_id_1> руб!` | `стоимость самсунг тридцать два мкс про — всего сто восемьдесят девять тысяч шестьсот руб!` | **Not much** (`эм икс` would fit better) |
pytorch_model.bin → model.safetensors RENAMED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:02ba17fe51850c19c2bbccb9604eea848bd9ef1f9cd67fdb7e3d3de6d64a8bdd
3
- size 3282183426
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:9436fe157713973cef449db66a7abed22ae5f8d7989cae0aa6ec807b28a7146a
3
+ size 3282058120