Работа char-rnn модели лемматизатора в консольной программке для введенных слов “кошшки”, “барбудаемся”, “покрасавистее” и “красавистый”:
Обучение нейросетевой модели лемматизатора занимает достаточно большое время и много вычислительных ресурсов. На десктопе с GTX 980, 32 Гб оперативной памятии 4-х ядерным процессором обучение русского лемматизатора длится несколько часов. В ходе обучения используются датасеты объемом в сотни мегабайтов. Результат обучения - несколько файлов общим размером меньше 0.5 Мб. Чтобы использовать предобученную модель, достаточно несколькими строками загрузить эти файлы, при этом потребляемые моделью ресурсы столь же крошечны:
MODEL_FOLDER = '/home/eek/polygon/word2lemma/CASE2/'
CHAR_RNN_WEIGHTS_FILENAME = 'char_rnn.ALL.model'
CHAR_RNN_ARCH_FILENAME = 'char_rnn.arch'
…
model = model_from_json(open(MODEL_FOLDER+CHAR_RNN_ARCH_FILENAME).read())
model.load_weights( MODEL_FOLDER+CHAR_RNN_WEIGHTS_FILENAME )
Архитектура сети и веса связей загружаются из файлов и не требуют никакой ручной настройки.
Простейшая программка позволяет ввести слово с консоли, векторизовать его, прогнать через модель и декодировать результат в символьное представление. Скриншот с примером работы этого скрипта приведен выше. Питоновский код, использующий Keras, можно взять по ссылке:
http://www.solarix.ru/for_developers/download/polygon/word2lemma/lemmatize.py Файлы модели, которые нужны для запуска скрипта:
http://www.solarix.ru/for_developers/download/polygon/word2lemma/char_rnn.arch http://www.solarix.ru/for_developers/download/polygon/word2lemma/char_rnn.ALL.model http://www.solarix.ru/for_developers/download/polygon/word2lemma/ctable.dat http://www.solarix.ru/for_developers/download/polygon/word2lemma/dataset.config Подробное описание архитектуры и реализации модели будет дано в следующих главах.