Chemist's Blog

Что то с чем то.

Update: Морфология

| Comments

Добрались руки и набросал новую версию морфологии.

Теперь в качестве структуры для хранения словаря используется направленный ациклический граф (DAWG). Исходные данные для словаря теперь берутся из opencorpora. Собственно от морфологии там только запакованный словарь, тривиальная вебморда для тестирования, парсер + код для упаковки в dawg ну и наверное все. Поиск по словарю с выводом форм слов работает нормально, но нужно добавить предсказатель для тех слов что отсутствуют в словаре. API пока отсутствует как класс, немного позже добавлю все эти штуки. Вдобавок есть мысль прикрутить прослойку в виде сетевого сервиса с протоколом по типу memcache.

Бинарь словаря пока не прилагаю, 15 мегабайт с репы дергать постоянно не камильфо. Если у кого есть желание поиграться отпишите в коментах, либо соберите сами

1
2
3
4
wget http://opencorpora.org/files/export/dict/dict.opcorpora.txt.bz2
unpack dict.opcorpora.txt.bz2 
ghc -hide-package vector-binary-instances -O2 BuildDict.hs -o builder
./builder

Минут за 15 - 20 и 2 гигабайта памяти с копейками, сие диво дивное родит несколько бинарных файлов, оставить dawg.dict, в нем словарь, остальное можно удалять. Далее скомпилировать Main.hs и запускать с той-же папки. Доступно на локалхосте по 8000 порту.

Как то так. И да если ктонить ткнет носом как оптимизировать Builder.hs чтоб он кушал меньше памяти буду сильно признателен. Хотя памяти у меня достаточно + есть еще толстая свободная подушка, но неприятно.

Когда в очередной раз мне надоест пилить радио streaming сервер, доделаю морфологию до нормального состояния.

Comments