🚀 俄語文本歸一化
本項目是 FRED - T5 large 820M 的微調版本。它能夠對俄語文本進行歸一化處理,將文本中的數字和拉丁單詞轉換為更規範的表達形式。
代碼倉庫:repo。
該模型在 ficbook、librusec 和 pikabu 等數據集的句子上進行訓練,使用修改版的 word_to_number_ru 包進行逆文本歸一化。此外,還使用了 Kaggle 文本歸一化挑戰 的數據,使得模型能夠處理拉丁文本,但在處理數字時性能有所下降。你可以使用 git checkout
#8c2476b 切換到之前僅處理數字的版本。
🚀 快速開始
安裝依賴
確保你已經安裝了 torch
和 transformers
庫。你可以使用以下命令進行安裝:
pip install torch transformers
使用示例
基礎用法
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:]))
使用說明
- 將數字和拉丁單詞放在方括號
[ ]
內,並跟隨 T5 標記 <extra_id_0>
、<extra_id_1>
等。
- 建議始終將數字按 3 位一組進行分組,並且在
[ ]
括號內只放置數字和拉丁單詞。
更多使用示例
模型輸入 |
替換後結果 |
是否正確 |
<SC1>Временами я думаю, какое применение найти тем [14 697]<extra_id_0> рублям, что лежат уже больше [33]<extra_id_1> лет? |
Временами я думаю, какое применение найти тем четырнадцати тысячам шестистам девяносто семи рублям, что лежат уже больше тридцати трёх лет? |
是 |
<SC1>я купил [iphone 12]<extra_id_0> за [142 990]<extra_id_1> руб без [3-x]<extra_id_2> часов полдень и т.д. |
я купил айфон двенадцатый за сто сорок две тысячи девятьсот девяносто руб без трех часов полдень и т.д.? |
是 |
<SC1>В школе у меня одни [5]<extra_id_0>. |
В школе у меня одни пятые. |
否 (пятёрки 是正確的) |
<SC1>Было у отца [3]<extra_id_0> сына. Старшему было [35]<extra_id_1>, среднему - не меньше [33]<extra_id_2>, а младший на [4]<extra_id_3> младше всех. Бывает. |
Было у отца три сына. Старшему было тридцать пять, среднему - не меньше тридцати трех, а младший на четыре младше всех. Бывает. |
是 |
<SC1>я подарю тебе [1 000 000]<extra_id_0> алых роз, я научу тебя смеяться |
я подарю тебе миллион алых роз, я научу тебя смеяться |
是 |
<SC1>запомни телефон — [8 9 555 35 35]<extra_id_0>, проще позвонить, чем занимать |
запомни телефон — восемь девять миллионов пятьсот пятьдесят пять тысяч тридцать пять |
不太準確,建議按 3 位一組處理 |
<SC1>стоимость айфон [32]<extra_id_0> — всего [189 553 600]<extra_id_1> руб.! |
стоимость айфон тридцать два — всего сто восемьдесят девять миллионов пятьсот пятьдесят три тысячи шестьсот руб.! |
是 |
<SC1>[91 957 552 336]<extra_id_0> минус [3 474 354 354]<extra_id_1> равно ? |
девяносто один миллион девятьсот пятьдесят семь миллионов пятьсот пятьдесят две тысячи триста тридцать шесть минус три миллиона четыреста семьдесят четыре миллиона триста пятьдесят четыре тысячи триста пятьдесят четыре равно ? |
否 :( |
<SC1>я вырос на [the beatles]<extra_id_0>, меня не испугают даже [33 yellow submarine]<extra_id_1> |
<SC1>я вырос на зэ битлс, меня не испугают даже тридцать три йеллоу сабмарин |
是 |
<SC1>слыш [nigga]<extra_id_0> ты слыхал про [gitdata]<extra_id_1>? |
слыш нигга ты слыхал про джитдата? |
是 |
<SC1>стоимость [samsung 32MX Pro]<extra_id_0> — всего [189 600]<extra_id_1> руб! |
стоимость самсунг тридцать два мкс про — всего сто восемьдесят девять тысяч шестьсот руб! |
不太準確 (эм икс 可能更合適) |
📄 許可證
本項目採用 Apache - 2.0 許可證。