-
Notifications
You must be signed in to change notification settings - Fork 0
Демо
Чтобы таггер работал, ему нужны обученные модели. Получить модели можно двумя способами.
Способ 1
Можно скачать те, которые мы уже обучили:
Файлы, которые нужно скачать:
feature_transformer.pkl
- модель, которая получает на вход слово и преобразует его в вектор признаков
model.pkl
и остальные файлы - обученная модель таггера
Способ 2
Можно заново обучить свои модели: запустить classifier.py
, который обучится на списке фичей (списков фичей два, можно использовать либо feature_matrix.csv
, либо feature_matrix_clusters.csv
).
Ура, теперь у нас есть модели!
Набор тэгов частей речи такой же, как в НКРЯ.
Пользоваться таггером просто:
>>> from tagger import pos
>>> pos('тёплые')
'A'
>>> pos('коты')
'S'
>>> pos('мяукают')
'V'
Таггер может правильно определять части речи слов, которые не встретились в обучении:
>>> pos('кросскатегориальность')
'S'
>>> pos('вулканчик')
'S'
Однако таггер все-таки делает ошибки:
-
омонимичным словам таггер приписывает только один разбор
>>> pos('стекло')
'V'
>>> pos('мой')
'V'
-
таггер ошибается в местоимениях
>>> pos('он')
'S'
- вместо S-PRO
>>> pos('мы')
'S'
>>> pos('нам')
'S'
>>> pos('вы')
'V'
-
таггер ошибается в служебных словах (склонен считать большинство служебных слов глаголами) =(
>>> pos('однако')
'V'
- вместо CONJ
>>> pos('в')
'V'
- вместо PR
>>> pos('от')
'V'
>>> pos('на')
'V'
Но не все так плохо!!
Он ведь все-таки работает в большинстве случаев!
>>> [pos(i) for i in 'национальный корпус русского языка'.split(' ')]
['A', 'S', 'A', 'S']
>>> [pos(i) for i in 'Шла Саша по шоссе'.split(' ')]
['V', 'S', 'V', 'S']
- ошибся в предлоге, а остальное правильно!
>>> sentence = 'Все счастливые семьи похожи друг на друга, каждая несчастливая семья несчастлива по-своему'
>>> [pos(i) for i in sentence.split(' ')]
['S', 'A', 'S', 'V', 'S', 'V', 'S', 'V', 'A', 'S', 'S', 'A']
Такие дела.