File size: 2,421 Bytes
c26af83
37f0390
 
 
 
 
c26af83
ee364b6
eab0c50
c26af83
37f0390
 
 
 
 
a45aa62
c7766c8
37f0390
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
63e8baa
37f0390
 
 
 
63e8baa
37f0390
c7766c8
37f0390
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
---
language:
- ru
tags:
- PyTorch
- Transformers
license: apache-2.0
base_model: ai-forever/sbert_large_nlu_ru
inference: false
---

# SbertPuncCase

SbertPuncCase - модель восстановления пунктуации и регистра для русского языка. Модель способна расставлять точки, запятые и знаки вопроса; 
определять регистр - слово в нижнем регистре, слово с первой буквой в верхнем регистре, слово в верхнем регистре.
Модель разработана для восстановления текста после распознавания речи, поэтому работает со строками в нижнем регистре.
В основу модели легла [sbert_large_nlu_ru](https://huggingface.co/sberbank-ai/sbert_large_nlu_ru). 
В качестве обучающих данных использованы текстовые расшифровки интервью.

# Как это работает

1. Текст переводится в нижний регистр и разбивается на слова.
2. Слова разделяются на токены.
3. Модель (по аналогии с задачей NER) предсказывает класс для каждого токена. Классификация на 12 классов: 3+1 знака препинания * 3 варианта регистра.
4. Функция декодировки восстанавливает текст соответственно предсказанным классам.

# Как использовать

Код модели находится в файле `sbert-punc-case-ru/sbertpunccase.py`.

Для быстрой установки можно воспользоваться командой:

```
pip install git+https://huggingface.co/kontur-ai/sbert_punc_case_ru
```

Использование модели:
```
from sbert_punc_case_ru import SbertPuncCase
model = SbertPuncCase()
model.punctuate("sbert punc case расставляет точки запятые и знаки вопроса вам нравится")
```

# Авторы

[Альмира Муртазина](https://github.com/almiradreamer)

[Александр Абугалиев](https://github.com/Squire-tomsk)