|
--- |
|
license: mit |
|
language: |
|
- ru |
|
library_name: transformers |
|
pipeline_tag: text2text-generation |
|
tags: |
|
- math |
|
- normalization |
|
--- |
|
|
|
### Описание: |
|
Модель для нормализации русскоязычных текстов, содержащих математические сущности, в формат LaTeX. |
|
Модель является дообученной на переведённом&аугментированном датасете "[Mathematics Stack Exchange API Q&A Data](https://zenodo.org/records/1414384)" версией модели [cointegrated/rut5-small](https://huggingface.co/cointegrated/rut5-small). |
|
|
|
### Description: |
|
This is a model for mathematical text normalization in Russian, based on the [cointegrated/rut5-small](https://huggingface.co/cointegrated/rut5-small) paraphraser. |
|
The model was created by finetuning the paraphraser on a translated&augmented "[Mathematics Stack Exchange API Q&A Data](https://zenodo.org/records/1414384)" dataset. |
|
|
|
Пример использования: |
|
--- |
|
Usage example: |
|
--- |
|
|
|
``` python |
|
import torch |
|
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM |
|
from IPython.display import display, Math, Latex |
|
|
|
model_dir = "turnipseason/latext5" |
|
model = AutoModelForSeq2SeqLM.from_pretrained(model_dir) |
|
tokenizer = AutoTokenizer.from_pretrained(model_dir) |
|
|
|
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') |
|
model.to(device) |
|
|
|
def get_latex(text): |
|
inputs = tokenizer(text, return_tensors='pt').to(device) |
|
with torch.no_grad(): |
|
hypotheses = model.generate( |
|
**inputs, |
|
do_sample=True, num_return_sequences=1, |
|
repetition_penalty=1.2, |
|
max_length=len(text), |
|
num_beams=10, |
|
early_stopping=True |
|
) |
|
for h in hypotheses: |
|
display(Latex(tokenizer.decode(h, skip_special_tokens=True))) |
|
|
|
text = '''лямбда прописная квадрат минус три равно десять игрек куб |
|
При этом шинус икс равен интеграл от экспоненты до трёх игрек штрих''' |
|
get_latex(text) |
|
|
|
``` |