Морфологический анализатор для PHP-скриптов

Морфологический анализатор для PHP-скриптовДолго мы ломали над этим голову… Морфология русского языка весьма сложная штука в плане алгоритмизации. Но использование в практически любом проекте морфологизатора, например, для поиска или подбора — даёт проекту неплохой бонус в удобстве использования.

Самый удачный, быстрый и простой в использовании морфологизатор я нашёл совсем недавно. Это phpMorphy. и он умеет следующее:

  1. Определение словоформ слова;
  2. Определение корня слова;
  3. Определение начальной формы слова.

Если нужно реализовать поиск с учётом словоформ, то это совсем просто — нужно просто получить корень слова с помощью phpMorphy ( $root = $morphy->getPseudoRoot($words); ) и провести поиск по базе данных SQL-оператором LIKE.

Сам скрипт занимает не больше 30 Kb, а русский словарь для него - 2.5 Mb.

Справедливости ради отмечу, что рассматривались и другие морфологические скрипты.

miller
Написано 13 марта 2008 года в 19:37

и где ты такие интересные штучки все время находишь? :)
не первый раз уже радуешь

Евгений Голубев
Написано 13 марта 2008 года в 19:52

Спасибо )
Вовремя.
Помог избежать мне такого исследования.

Жилинcкий Владимир
Написано 13 марта 2008 года в 20:05

В интернете ;-)
Стараюсь :-)

Жилинcкий Владимир
Написано 13 марта 2008 года в 20:05

Та незачто :-)

Sam
Написано 13 марта 2008 года в 20:32

Вот за это огромное спасибо!

pilot34
Написано 13 марта 2008 года в 21:20

Супер! Огромное спасибо!!!! Как раз курсовая застопорилась на поиске начальных форм

Сергей Тарасенко
Написано 13 марта 2008 года в 22:57

Было бы очень интересно почитать по организацию хранения индекса в mysql и методике его использования. Подозреваю, что для грамотной работы полнотекстовой поиск не используется. Однако, пока еще руки не дошли для глубокого забура в эту тему.

Vitalij Obishchenko
Написано 13 марта 2008 года в 22:00

Супер, спасибо огромное!!!

Sukebe
Написано 13 марта 2008 года в 22:21

Да, phpMorphy — хорошая штука.

А вот поиск я делал немного сложнее, чем просто по корню. Скрипт-индексатор, запускаясь по кронтабу или команде из CMS, заносил в индекс базовые формы всех слов (кроме предлогов, союзов и т.п.) с указанием веса, зависящего от частоты и окружающих тэгов, и ссылки на документ.
Скрипт-поисковик в свою очередь разбивал фразу на слова, опять же приводил из к базовой форме и искал по индексу наиболее релевантные документы.

Poi$0n
Написано 13 марта 2008 года в 23:23

Стеммеры хороши в комплекте со словарями. Тогда оптимальное решение получается, ибо они не решают проблему разных корней типа «шли — шел» и т.д.

Жилинcкий Владимир
Написано 13 марта 2008 года в 22:28

Пожалуйста, приходите ещё :-D

Жилинcкий Владимир
Написано 13 марта 2008 года в 22:29

Надеюсь, поможет ;-)

Poi$0n
Написано 13 марта 2008 года в 22:30

RuMor хороший скрипт. Мы когда-то для собственных нужд РНР версию покупали. Шустренько работает и словарь хороший. Только памяти жрет много. Словарь 12 метров вроде. Умеет определять нормальную форму и словоформы.

MyStem — еще прикольней. По сути это простой стеммер. Он может только нормальную форму получить и вывести морфологическую информацию по слову. Работает очень шустро. Но работает на уровне операционной системы, так что на хостинге не прокатит. Работает без словаря эвристическим способом. Это и плюс и минус. Плюс в том, что даст нормальную форму даже для несловарного слова. Минус в том, что иногда ошибается и выдает мягко говоря бред.

Жилинcкий Владимир
Написано 13 марта 2008 года в 22:31

И тебе спасибо за ссылку и траффик ;-)

Жилинcкий Владимир
Написано 13 марта 2008 года в 22:35

На Majordomo за 50 рублей обещают запустить один демон, так что может мистем и прокатит на вирт-хостинге. То что без словаря — это да, здорово. Даже со сморкмухами, мовами и прочим должен справиться…
А больше аналогов не знаете ?

Sukebe
Написано 14 марта 2008 года в 00:49

Wikia Search — это интересно, спасибо за ссылку и статью (там, кстати, ссылки на Grub и Nutch с ошибками) :)

С Друпалом работать не приходилось, а там есть интересные фишки? :)

jeka911
Написано 14 марта 2008 года в 03:15

Благодарствую, полезно.

>>>Поле «сайт» — для адреса вашего блога, контакта или страницы. Ссылки на сателлиты, интернет-магазины и прочее удаляются всегда.

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

Жилинcкий Владимир
Написано 14 марта 2008 года в 07:49

Ммм, спасибо, поправил.
В Друпале… Черт его знает… Говорят крутая штука =)

Жилинcкий Владимир
Написано 14 марта 2008 года в 07:52

Да все равно не помогает… Имя и ссылка комментатора на страницах давно в noindex и nofollow, а они всё равно не унимаются…

Дима Спадов
Написано 16 марта 2008 года в 10:25

Спасибо за phpMorphy, сегодня будем смотреть его.
Я покупал RuMor, скрипт хороший, прост в использовании, но проблема в том, что иногда он сильно врет с частями речи, например, слово «домой» он определяет как существительное. И такие косяки иногда всплывают. Но в целом, я доволен тем, что получил за $50.

Жилинcкий Владимир
Написано 16 марта 2008 года в 10:56

Он, кстати, только в верхнем регистре работает =)
И файлы словарей зашифрованы чем-то…

Сергей Гладилин
Написано 17 марта 2008 года в 09:00

О, спасибо, посмотрю, может у нас внедрим ;-) Я, честно говоря, даже не искал ничего подобного, т.к. почему-то априори считал, что нет такого в OpenSource — и все…

Андрей
Написано 19 февраля 2011 года в 19:01

Отличный скрипт пошел прикручивать )

© 2007-2026 Блог разработчика, страница об авторе.