Update README.md
Browse files
README.md
CHANGED
|
@@ -16,10 +16,12 @@ TuRu - Tuvan/Russian binary classifier model [GitHub](https://github.com/tarbaga
|
|
| 16 |
|
| 17 |
## How to use
|
| 18 |
|
|
|
|
|
|
|
| 19 |
```python
|
| 20 |
>>> from turu import TuRu
|
| 21 |
|
| 22 |
-
>>> model_file =
|
| 23 |
>>> text_in = u'Февраль 17-де, ай санаашкыны-биле Чаа чылга – Шагаа байырлалынга тураскаадып, Тыва Республиканың күрүне шаңналдарын тывыскан.'
|
| 24 |
|
| 25 |
>>> turu = TuRu()
|
|
@@ -27,4 +29,50 @@ TuRu - Tuvan/Russian binary classifier model [GitHub](https://github.com/tarbaga
|
|
| 27 |
|
| 28 |
{'lang': 0},
|
| 29 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 30 |
```
|
|
|
|
| 16 |
|
| 17 |
## How to use
|
| 18 |
|
| 19 |
+
|
| 20 |
+
test.py
|
| 21 |
```python
|
| 22 |
>>> from turu import TuRu
|
| 23 |
|
| 24 |
+
>>> model_file = 'turu_model.pkl'
|
| 25 |
>>> text_in = u'Февраль 17-де, ай санаашкыны-биле Чаа чылга – Шагаа байырлалынга тураскаадып, Тыва Республиканың күрүне шаңналдарын тывыскан.'
|
| 26 |
|
| 27 |
>>> turu = TuRu()
|
|
|
|
| 29 |
|
| 30 |
{'lang': 0},
|
| 31 |
|
| 32 |
+
```
|
| 33 |
+
|
| 34 |
+
main.py
|
| 35 |
+
```python
|
| 36 |
+
import pickle
|
| 37 |
+
import warnings
|
| 38 |
+
warnings.filterwarnings("ignore")
|
| 39 |
+
|
| 40 |
+
|
| 41 |
+
class TuRu:
|
| 42 |
+
"""
|
| 43 |
+
Система распознования тувинского/русского языка на базе обученной модели sklearn.MultinomialNB()
|
| 44 |
+
: load_model - загрузка предворительно обученной модели model_file
|
| 45 |
+
: text_preroccesor - предварительная обработка текста
|
| 46 |
+
: get_turu - базовая функция для обработки текста text_in
|
| 47 |
+
"""
|
| 48 |
+
def __init__(self, text_in='', model_file=''):
|
| 49 |
+
self.text_in = text_in
|
| 50 |
+
self.model_file = model_file
|
| 51 |
+
|
| 52 |
+
def load_model(self)->set:
|
| 53 |
+
"Загрузка модели"
|
| 54 |
+
with open(self, 'rb') as f:
|
| 55 |
+
vec, clf = pickle.load(f)
|
| 56 |
+
return vec, clf
|
| 57 |
+
|
| 58 |
+
def text_preroccesor(self)->str:
|
| 59 |
+
"Функция отчистки текста"
|
| 60 |
+
text = str(self).lower()
|
| 61 |
+
tokens = [x for x in text.split() if x.isalpha()]
|
| 62 |
+
return ' '.join(tokens)
|
| 63 |
+
|
| 64 |
+
def get_turu(self, model_file, text_in)->object:
|
| 65 |
+
"""Обработка текста моделью"""
|
| 66 |
+
try:
|
| 67 |
+
vec, clf = TuRu.load_model(model_file)
|
| 68 |
+
text = TuRu.text_preroccesor(text_in)
|
| 69 |
+
text_transforme = vec.transform([text])
|
| 70 |
+
scor = clf.predict(text_transforme)
|
| 71 |
+
|
| 72 |
+
if scor[0] == 1:
|
| 73 |
+
return {"type": 1, "lang": "тувинский язык"}
|
| 74 |
+
else:
|
| 75 |
+
return {"type": 0, "lang": "русский язык"}
|
| 76 |
+
except Exception as e:
|
| 77 |
+
return {"type": 3, "lang": e}
|
| 78 |
```
|