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

131 views
Skip to first unread message

illa...@gmail.com

unread,
Dec 12, 2016, 4:47:18 AM12/12/16
to pymorphy
Здравствуйте. По работе возникла потребность в изменении падежей кучи слов(большинство слова, но также встречаются и словосочетания вида "Внешние жесткие диски"), к примеру "Внешние жесткие диски" нужно привести к виду "Внешних жестких дисков". Таких словосочетаний не сказать что мало, и покрыть абсолютно все слова(как одиночные, так и в словосочетаниях) можно, но может над этой задачей уже занимаются? Т.е. склонение не только слов, но и словосочетаний?!

Yuri Baburov

unread,
Dec 12, 2016, 9:13:22 AM12/12/16
to pymo...@googlegroups.com
100%-надёжного нет ничего. Если вам нужен парсер (а он нужен, чтобы
понимать, какие слова как склонять) -- я рекомендую solarix .
А со склонением и pymorphy уже справится.
> --
> Вы получили это сообщение, поскольку подписаны на группу "pymorphy".
> Чтобы отменить подписку на эту группу и больше не получать от нее сообщения,
> отправьте письмо на электронный адрес pymorphy+u...@googlegroups.com.
> Чтобы настроить другие параметры, перейдите по ссылке
> https://groups.google.com/d/optout.



--
Best regards, Yuri V. Baburov, Skype: yuri.baburov

illa...@gmail.com

unread,
Dec 12, 2016, 9:33:57 AM12/12/16
to pymorphy
Как раз таки данные получить ничего не стоит) Простой запрос из БД, а вот уже склонение - вот тут проблема. Конечно большую часть слов покрывает, но кривых склонений тоже. Видимо остатки будем ручками исправлять, благо их не много, по сравнению с остальной частью.

понедельник, 12 декабря 2016 г., 19:13:22 UTC+5 пользователь Yuri Baburov написал:

Yuri Baburov

unread,
Dec 12, 2016, 11:34:32 AM12/12/16
to pymo...@googlegroups.com
Нет, я про парсер для синтаксического анализа говорю, а вы видимо про
какой-то другой парсер поняли.

Во фразе "жесткий диск" склоняются оба слова, во фразе "шлейф для
жёсткого диска" -- только слово "шлейф".
Эта проблема обычно более серьёзная и частая, чем неоднозначности
("жесткие типы стали продаём").

Sergey Slepov

unread,
Dec 13, 2016, 8:24:20 AM12/13/16
to pymorphy
Есть готовое решение: http://morpher.ru

illa...@gmail.com

unread,
Dec 13, 2016, 10:45:44 AM12/13/16
to pymorphy
Оно платное, да и так как я технарь, то все таки хочется ручками) Во всяком случае спасибо за ответ

вторник, 13 декабря 2016 г., 18:24:20 UTC+5 пользователь Sergey Slepov написал:
Есть готовое решение: http://morpher.ru

Yuri Baburov

unread,
Dec 13, 2016, 1:06:56 PM12/13/16
to pymo...@googlegroups.com
А у вас там произвольные фразы тоже есть?

2016-12-13 20:24 GMT+07:00 Sergey Slepov <sle...@gmail.com>:
> Есть готовое решение: http://morpher.ru
>
>
>
> --
> Вы получили это сообщение, поскольку подписаны на группу pymorphy.
>
> Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес pymorphy+u...@googlegroups.com.
> Настройки подписки и доставки писем: https://groups.google.com/d/optout.

Sergey Slepov

unread,
Dec 14, 2016, 7:44:16 AM12/14/16
to pymorphy
Да, конечно. Это основная функция Морфера - склонение произвольных словосочетаний.

Sergey Slepov

unread,
Dec 14, 2016, 8:00:07 AM12/14/16
to pymorphy
Есть условно-бесплатный веб-сервис: http://morpher.ru/WebService.aspx

Я занимаюсь этой темой с 2003 года и до сих пор нахожу что добавить и исправить. Нисколько не сомневаюсь в ваших способностях как технаря, просто хочу предупредить, что на это может уйти много времени. Я уже подустал вручную писать правила и думаю применить машинное обучение. Составил 40 тысяч тестов - примеров склонения словосочетаний, так что база для обучения есть. Если интересно, можем объединить усилия.

illa...@gmail.com

unread,
Dec 14, 2016, 8:45:04 AM12/14/16
to pymorphy
К сожалению я слишком зелен(новичек) и не думаю, что могу чем либо существенно помочь. Но идея интересная. А на чем вы пишете?

среда, 14 декабря 2016 г., 18:00:07 UTC+5 пользователь Sergey Slepov написал:

Yuri Baburov

unread,
Dec 14, 2016, 9:05:18 AM12/14/16
to pymo...@googlegroups.com
Знаете, всё сложно с машинным обучением. Точность никогда не достигает
100% -- а часто даже и 95%. Rule-based системы в NLP пока что ещё
побеждают (хоть и отрыв от нейросетей уже небольшой).
Кроме того, 40 тысяч примеров -- это ужасно мало для машинного
обучения. 40 тысяч примеров -- это даже не 40 тысяч правил, это скорее
400 правил.
Маленькая модель будет неточной, большая -- переобучится, но тоже
будет неточной.

Можете попробовать сделать так: понабрать в текстах десятки миллионов
словосочетаний, просклонять вашим алгоритмом, а потом уже натравить на
это какую-нибудь нейросеть. Ошибки всё равно будут, конечно.

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

Sergey Slepov

unread,
Dec 15, 2016, 4:33:57 PM12/15/16
to pymorphy
Пишу на C++, C# и Java.

Sergey Slepov

unread,
Dec 15, 2016, 4:33:58 PM12/15/16
to pymorphy

Sergey Slepov

unread,
Dec 15, 2016, 4:33:58 PM12/15/16
to pymorphy

Sergey Slepov

unread,
Dec 15, 2016, 4:34:53 PM12/15/16
to pymorphy
Юрий, спасибо за совет. Буду пробовать.
Reply all
Reply to author
Forward
0 new messages