Форум сайта python.su
Взялся снова за морфологический анализатор: теперь он умеет склонять русские слова, попереписан код, появилась документация, упрощена установка, поддерживает разные варианты хранения словарей, улучшена скорость работы.
репозиторий:
http://bitbucket.org/kmike/pymorphy/
документация:
http://packages.python.org/pymorphy/
Вдруг интересно кому.
Офлайн
Интересная штучка, спасибо.
Офлайн
Не нашел обьем словарей. Сколько русских слов?
Как поплняются ваши словари новыми словами?
Офлайн
Словари с сайта aot.ru (http://www.aot.ru/download.php). Там не именно слова хранятся, а основы и правила составления слов. Путем перекомбинаций (без приставок) где-то 5 млн получается (с приставками умножаем на 20). Для неизвестных слов реализован предсказатель, он умеет приписывать к слову спереди что-нибудь (например, СУПЕРБИЗОН будет склоняться как БИЗОН) + умеет искать похожие словоформы в словаре и выбирать из них самую распространенную, наиболее вероятную (поймет, что ДЫКПАРТЫМЕНТ - существительное мужского рода, и сможет правильно склонять его).
Не думаю, что пополнение словарей требуется (и стоит потраченных усилий), гораздо эффективнее улучшать работу предсказателя. Эффективнее по критерию “затраченное время/результат”.
Если же все-таки словарь требуется пополнить (или исправить), то с сайта aot.ru можно скачать программу для работы со словарями (под windows), поправить исходный словарь, а потом переконвертировать в формат, который понимает pymorphy с помощью скрипта encode_dicts.py (скрипт в комплекте).
Офлайн
google по запросу ДЫКПАРТЫМЕНТ,
выдал это - Возможно, вы имели в виду: ДЕПАРТАМЕНТ …
т.е. предсказал, так?
(Яндекс ничего не выдает, во как! … и почему они не купят проект АОТ (флейм))
5 млм. основ слов - это достаточно много.
Вопрос - если мне встретилось редкое слово и в словаре нет его основы, то с какой долей вероятности я смогу утверждать, что нет такого слова в природе?
Математически это не посчитать и надо удовлетвориться тем что обработана библиотека Машкова, там нет, значит и в природе нет?
У меня интерес разместить словарь на вэб-сервере. В связи с этим, есть какие-нибудь особенности у продукта?
Офлайн
>> Вопрос - если мне встретилось редкое слово и в словаре нет его основы, то с какой долей вероятности я смогу утверждать, что нет такого слова в природе?
Хм, даж не знаю. Русский язык он ведь такой, словообразование никто не исключал. А в словаре pymorphy, думаю, нет кучи технических и специальных терминов.
>> У меня интерес разместить словарь на вэб-сервере. В связи с этим, есть какие-нибудь особенности у продукта?
Обновил только что документацию. Почитайте введение, там несколько примеров, думаю, с ними понятно все будет.
Если вопрос по скорости-занимаемой памяти, то эти параметры можно варьировать самому, используя разные бэкенды для хранения словарей, включая-отключая внутреннее кеширование и psyco, про это есть раздел тоже в справке.
Кстати, для django написал templatetag “inflect”, который может склонять слова прямо в шаблоне. К примеру, пусть, в базе хранятся названия городов в именительном падеже (“Нижний Новгород”). Чтоб вывести сообщение “Мы сегодня начали работу в Нижнем Новгороде!” нужно поставить Нижний Новгород в предложный падеж. Пишем в шаблоне
{% load pymorphy_tags %}
Мы сегодня начали работу в {{ city|inflect:“пр” }}!
и готово.
Офлайн
Не силен, пока, в лицезиях, но лицензия MIT подразумевает коммерческое использование и без упоминания авторов…чесслово, не понимаю, смысл в чем?
или ошибаюсь?
Офлайн
Все так, можно использовать как угодно. Смысл - не чинить никаких препятствий тем, кто захочет этой штукой воспользоваться. А что конкретно смущает?)
Офлайн
kmike- затрачены немалые усилия и ресурсы, которые как-то должны окупиться, если не явными средствами, то дивидендами в виде заявки о себе как группе разработчиков или компании решающей задачи.
А что конкретно смущает?)
Офлайн
pionerНаверное, стоит разделить вопросы про лицензии aot и лицензию pymorphy. Я к aot никакого отношения не имею, просто почитал их сайт, скачал словари, написал код.kmike- затрачены немалые усилия и ресурсы, которые как-то должны окупиться, если не явными средствами, то дивидендами в виде заявки о себе как группе разработчиков или компании решающей задачи.
А что конкретно смущает?)
- я ранее пытался списаться с АОТ - было предложение о сотрудничестве (вы в постах ответили на все мои вопросы), ответа никакого не было, т.е. интерес на нуле…и тут такой шаг - “раздать технологию”. Может она уже не конкурентна и отдается “любителям”? Или так ищется проект под который, будет предложено более совершенное решение…?
флейм-
…на сайте АОТ пример не работает…гугл доминирует…на дворе кризис
вопрос - к словарю Зелязняка ваш словарь имеет какое-нибудь отношение?
Офлайн