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 |
```
|