GitHub
<!-- Provide a quick summary of what the model is/does. -->
TuRu - Tuvan/Russian binary classifier model GitHub.
Install package
pip install sklearn
How to use
test.py
>>> from turu import TuRu
>>> model_file = 'turu_model.pkl'
>>> text_in = u'Февраль 17-де, ай санаашкыны-биле Чаа чылга – Шагаа байырлалынга тураскаадып, Тыва Республиканың күрүне шаңналдарын тывыскан.'
>>> turu = TuRu()
>>> lang = turu.get_turu(text_in=text_in, model_file=model_file)
{"type": 1, "lang": "tuvan"}
main.py
import pickle
import warnings
warnings.filterwarnings("ignore")
class TuRu:
"""
Модель бинарного классификатора тувинского/русского языка на базе sklearn.MultinomialNB()
: load_model - загрузка предворительно обученной модели model_file
: text_preroccesor - предварительная обработка текста
: get_turu - базовая функция для обработки текста text_in
"""
def __init__(self, text_in='', model_file=''):
self.text_in = text_in
self.model_file = model_file
def load_model(self)->set:
"Загрузка модели"
with open(self, 'rb') as f:
vec, clf = pickle.load(f)
return vec, clf
def text_preroccesor(self)->str:
"Функция отчистки текста"
text = str(self).lower()
tokens = [x for x in text.split() if x.isalpha()]
return ' '.join(tokens)
def get_turu(self, model_file, text_in)->object:
"""Обработка текста моделью"""
try:
vec, clf = TuRu.load_model(model_file)
text = TuRu.text_preroccesor(text_in)
text_transforme = vec.transform([text])
scor = clf.predict(text_transforme)
if scor[0] == 1:
return {"type": 1, "lang": "tuvan"}
else:
return {"type": 0, "lang": "russian"}
except Exception as e:
return {"type": 3, "lang": "unknown"}