Морфологический разбор слов

605 views
Skip to first unread message

Dmitry Polushkin

unread,
Jan 8, 2012, 9:12:58 AM1/8/12
to ror...@googlegroups.com
Существуют ли бесплатные/платные решения для морфологического разбора слов на ruby или сервисы, к которым можно делать запросы?

Спасибо.

Nash Bridges

unread,
Jan 9, 2012, 1:25:56 AM1/9/12
to RubyOnRails to russian
https://github.com/eveel/jetspade-wiki/blob/master/Home.md
сам сервис лежит, но можно покопаться в исходниках

Dmitry Polushkin

unread,
Jan 9, 2012, 1:34:17 AM1/9/12
to ror...@googlegroups.com
Спасибо, интересно. Жаль, что лежит. Буду смотреть исходники.

Вчера нашёл стеммер от яндекса
(http://company.yandex.ru/technologies/mystem/), и сделал для него
небольшую обёртку на руби: https://github.com/dmitry/yandex_mystem

Есть ещё множество разработок, но все они, в основном, на C++ и закрытые.

2012/1/9 Nash Bridges <pleasese...@gmail.com>:


> https://github.com/eveel/jetspade-wiki/blob/master/Home.md
> сам сервис лежит, но можно покопаться в исходниках
>

> --
> --
> Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы "RubyOnRails to russian" на группах Google.
> FAQ группы находится по адресу: http://ru.wikibooks.org/wiki/RubyFAQ
>
>  Для того, чтобы отправить сообщение в эту группу, пошлите его по адресу
> ror...@googlegroups.com
>  Чтобы отменить подписку на эту группу, отправьте сообщение по адресу: ror2ru-un...@googlegroups.com
>  Дополнительные варианты находятся на странице группы http://groups.google.com/group/ror2ru?hl=ru

--
Dmitry Polushkin

Dmitry Polushkin

unread,
Jan 9, 2012, 1:47:09 AM1/9/12
to ror...@googlegroups.com
Посмотрел, всё очень сильно завязано на словарях... надо что б проект ожил.

2012/1/9 Nash Bridges <pleasese...@gmail.com>:


> https://github.com/eveel/jetspade-wiki/blob/master/Home.md
> сам сервис лежит, но можно покопаться в исходниках
>

Dmitry A. Ustalov

unread,
Jan 9, 2012, 3:13:10 AM1/9/12
to RubyOnRails to russian
Привет, я автор myaso.

На самом деле, если не смущает потеря производительности на вызове
бинаря mystem c перенаправлением IO-потоков и последующим разбором его
выхлопа -- то это хорошее решение: несмотря на релиз mystem примерно в
2003 году, он остаётся одним из лучших морфологических анализаторов
русского языка.

Не нужно бояться словарей. Из-за богатства морфологии (особенностей
словоизменения и словообразования) нашего языка оказывается
невозможным построить автоматический анализатор, способный работать
без словаря. Например, тот же mystem хранит словарь внутри бинарника.

Собственно, в то время, когда мне нужен был морфологический
анализатор, я переписал pymorphy на Ruby. Проблема в том, что pymorphy
-- переписанный на Python анализатор AOT [1], который не так хорош, как
mystem. Метод mystem описан в работе <<Морфологический анализ и
гипотезы о неизвестных словах в Лас-Вегасе>> [2] и мне хочется
реализовать это дело в myaso.

Сейчас ситуация следующая:
1) я использую словари AOT, поскольку они неплохи и доступны;
2) для преобразования их в более <<мясной>> вид (Tokyo Cabinet Table
Database) используется myasorubka;
3) прямо сейчас myaso умеет только анализировать словарные слова в
соответствии со статьёй про mystem, а также имеет мегаудобную штуку
для работы с грамматическими характеристиками (в принципе, мои
требования он покрывает на 80%);
4) я недавно подал заявку на грант в УрО РАН именно для развития
myaso, и если дадут добро, то у меня будет большее желание сделать его
гораздо лучше (то есть, примерно на 20% круче).

[1]: http://aot.ru/docs/sokirko/Dialog2004.htm
[2]: http://download.yandex.ru/company/iseg-las-vegas.pdf

On 9 янв, 12:47, Dmitry Polushkin <dmitry.polush...@gmail.com> wrote:
> Посмотрел, всё очень сильно завязано на словарях... надо что б проект ожил.
>

> 2012/1/9 Nash Bridges <pleasesendmeas...@gmail.com>:

Dmitry A. Ustalov

unread,
Jan 9, 2012, 3:16:23 AM1/9/12
to RubyOnRails to russian
Упс, ссылочки забыл.

https://github.com/eveel/myaso
https://github.com/eveel/myasorubka

Если вообще интересна тема обработки естественного языка, то фил фри
ту контакт ми по адресам на http://eveel.ru :)

Julik Tarkhanov

unread,
Jan 9, 2012, 3:16:17 AM1/9/12
to ror...@googlegroups.com
Ребя так был же портированный snowball stemmer нет?

Dmitry A. Ustalov

unread,
Jan 9, 2012, 3:21:11 AM1/9/12
to RubyOnRails to russian
Snowball —- это чистый стеммер (коты → кот), который не выполняет
анализ слова. Морфологический анализатор помимо этого ещё и определяет
грамматические характеристики слова (коты → лемма "кот", имя
существительное, множественное число, и так далее).

Если топикстартеру нужен именно стеммер, то Snowball, скорее всего,
устроит.

Michael Bykov

unread,
Jan 9, 2012, 4:05:42 AM1/9/12
to ror...@googlegroups.com
9 января 2012 г. 12:21 пользователь Dmitry A. Ustalov <dmi...@eveel.ru> написал:
> --
> --
> Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы "RubyOnRails to russian" на группах Google.
> FAQ группы находится по адресу: http://ru.wikibooks.org/wiki/RubyFAQ
>
>  Для того, чтобы отправить сообщение в эту группу, пошлите его по адресу
> ror...@googlegroups.com
>  Чтобы отменить подписку на эту группу, отправьте сообщение по адресу: ror2ru-un...@googlegroups.com
>  Дополнительные варианты находятся на странице группы http://groups.google.com/group/ror2ru?hl=ru


Салют,

я написал неплохой уже анализатор латыни, скоро выложу. Но довольно
медленный. Приходится запоминать результат в базе, и не выполнять
анализ каждый раз. Я сравниваю результат с двумя существующими уже
анализаторами (на rspec) - c Words Уитеккера и c Персеем с thufts.edu
(онлайн). Совпадение заведомо больше 90%, близко к 100.

И доведу до ума анализатор древнегреческого в этом году тоже. Хочется
сделать и русский тоже на том же принципе. Ну и санскрит тоже нужен
обязательно.

Но сейчас меня очень интересуют синтаксические анализаторы. Вот их нет.


--
М.

http://diglossa.ru
xmpp://m.b...@jabber.ru

Dmitry A. Ustalov

unread,
Jan 9, 2012, 4:21:39 AM1/9/12
to RubyOnRails to russian
Если не секрет, то зачем нужен анализатор латыни и древнегреческого?
Есть описание моделей и алгоритмов?

Доступых синтаксических анализаторов русского языка практически не
существует. В общем виде — это адская задача, которая для нашего языка
вряд ли будет решена в ближайшем будущем, если я ничего не пропустил.
Опять же, есть AOT [1], но он работает не очень клёво.

[1]: http://aot.ru/docs/synan.html

On 9 янв, 15:05, Michael Bykov <m.by...@gmail.com> wrote:
> 9 января 2012 г. 12:21 пользователь Dmitry A. Ustalov <dmi...@eveel.ru> написал:
>
>
>
>
>
>
>
>
>
> > Snowball —- это чистый стеммер (коты → кот), который не выполняет
> > анализ слова. Морфологический анализатор помимо этого ещё и определяет
> > грамматические характеристики слова (коты → лемма "кот", имя
> > существительное, множественное число, и так далее).
>
> > Если топикстартеру нужен именно стеммер, то Snowball, скорее всего,
> > устроит.
>
> > On 9 янв, 14:16, Julik Tarkhanov <julian.tarkha...@gmail.com> wrote:
> >> Ребя так был же портированный snowball stemmer нет?
>
> >> On 9 jan. 2012, at 09:13, "Dmitry A. Ustalov" <dmi...@eveel.ru> wrote:
>
> >> > Привет, я автор myaso.
>
> > --
> > --
> > Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы "RubyOnRails to russian" на группах Google.
> > FAQ группы находится по адресу:http://ru.wikibooks.org/wiki/RubyFAQ
>
> >  Для того, чтобы отправить сообщение в эту группу, пошлите его по адресу
> > ror...@googlegroups.com
> >  Чтобы отменить подписку на эту группу, отправьте сообщение по адресу: ror2ru-un...@googlegroups.com

> >  Дополнительные варианты находятся на странице группыhttp://groups.google.com/group/ror2ru?hl=ru


>
> Салют,
>
> я написал неплохой уже анализатор латыни, скоро выложу. Но довольно
> медленный. Приходится запоминать результат в базе, и не выполнять
> анализ каждый раз. Я сравниваю результат с двумя существующими уже
> анализаторами (на rspec) - c Words Уитеккера и c Персеем с thufts.edu
> (онлайн). Совпадение заведомо больше 90%, близко к 100.
>
> И доведу до ума анализатор древнегреческого в этом году тоже. Хочется
> сделать и русский тоже на том же принципе. Ну и санскрит тоже нужен
> обязательно.
>
> Но сейчас меня очень интересуют синтаксические анализаторы. Вот их нет.
>
> --
> М.
>
> http://diglossa.ru

> xmpp://m.by...@jabber.ru

Michael Bykov

unread,
Jan 9, 2012, 6:53:35 AM1/9/12
to ror...@googlegroups.com
9 января 2012 г. 13:21 пользователь Dmitry A. Ustalov <dmi...@eveel.ru> написал:

> Если не секрет, то зачем нужен анализатор латыни и древнегреческого?
> Есть описание моделей и алгоритмов?


Для читать по гречески. В частности, для http://ru.diglossa.org, посмотрите.

Описание я постараюсь сделать к 1 февраля, к конференции
"Свободное ПО в образовании" в Переславле-Залесском.

Но могу и не успеть, тогда чуть позже. Я перевел диглоссу на кауч с
рельсов, и закопался немного. На рельсах плохо работать, когда все в
деревьях, а кауч как родной.

Я вам напишу, как только описание будет готово и API доступно. Русский
мне тоже нужен.

А если кто-то хочет помочь в работе с морфологией санскрита, пишите,
нужны бы добровольцы.


--
М.

http://diglossa.ru
xmpp://m.b...@jabber.ru

Dmitry Polushkin

unread,
Jan 11, 2012, 12:19:29 PM1/11/12
to ror...@googlegroups.com
Спасибо за ответ. Информация по ссылкам интересная, на выходных, надеюсь, почитаю по этой теме побольше.

Dmitry Polushkin

unread,
Jan 11, 2012, 12:21:12 PM1/11/12
to ror...@googlegroups.com
Кстати, а почему сервис лежит? Мне кажется, спрос на подобного рода сервис мог бы быть.

Dmitry A. Ustalov

unread,
Jan 13, 2012, 6:49:06 AM1/13/12
to RubyOnRails to russian
Долгая история, но тут проблема в моём раздолбайстве и желании
заниматься кучей дел одновременно.

Конечно, спрос на сервис есть, мне не хватает времени. Мои локальные
нужды он удовлетворяет, и если хочется помочь с открытым анализатором
myaso [1] -- я буду просто дичайше благодарен, например. Вообще,
плотнее за него взяться я думал со следующей недели.

[1]: Web-сервис http://myaso.eveel.ru лежал на момент написания
сообщения, и будет поднят в понедельник, 15 января с.г.

Dmitry Polushkin

unread,
Jan 22, 2012, 8:28:18 AM1/22/12
to ror...@googlegroups.com
К сожалению, лежит до сих пор.

Dmitry A. Ustalov

unread,
Jan 24, 2012, 3:37:33 AM1/24/12
to RubyOnRails to russian
О да, лежит. У нас любят отключать питание в ЦОД, а VM почему-то сами
не перезапускаются. Сегодня вечером (где-нибудь к 22:00 по Москве)
перенесу на другой сервер.

Кстати, мне таки дали грант на это дело: http://plove.eveel.ru/2012/01/20/morphological-grant,
так что скоро более-менее зашевелюсь.

Barablin Mihail

unread,
Jan 24, 2012, 4:08:21 AM1/24/12
to ror...@googlegroups.com
А почему опен небула? Мне она какой-то дохлой показалась. На руби, конечно...
Сорри за офтоп.

24 января 2012 г. 12:37 пользователь Dmitry A. Ustalov <dmi...@eveel.ru> написал:
--
--
Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы "RubyOnRails to russian" на группах Google.
FAQ группы находится по адресу: http://ru.wikibooks.org/wiki/RubyFAQ

 Для того, чтобы отправить сообщение в эту группу, пошлите его по адресу
ror...@googlegroups.com
 Чтобы отменить подписку на эту группу, отправьте сообщение по адресу: ror2ru-un...@googlegroups.com
 Дополнительные варианты находятся на странице группы http://groups.google.com/group/ror2ru?hl=ru



--
Бараблин Михаил

Dmitry A. Ustalov

unread,
Jan 24, 2012, 1:34:15 PM1/24/12
to RubyOnRails to russian
Она не дохлая, а вполне себе живёт и развивается, это даже по блогу
http://blog.opennebula.org видно.

Выбор облачной среды диктуется не отношением к языку программирования,
но более политическими мотивами. В нашем институте люди работают за
гранты, и если грант по OpenNebula был в нашей стране получен кем-то
ещё, то у себя локально это дело протолкнуть проще. Ну и в конце
концов, это вполне неплохая система, хоть и со своими закидонами.

Тут за оффтоп админы ругаются? Если да, то контакты мои у тебя должны
иметься. :)

Dmitry A. Ustalov

unread,
Jan 24, 2012, 1:34:49 PM1/24/12
to RubyOnRails to russian
Поднял, заодно вспомнил как прописывать маршруты в RHEL-подобных
дистрах. :)

http://myaso.eveel.ru

On 22 янв, 19:28, Dmitry Polushkin <dmitry.polush...@gmail.com> wrote:

Reply all
Reply to author
Forward
0 new messages