Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > Поиск в базе с учетом русской морфологии


Автор: Logo 4.5.2010, 23:01
Что нужно для организации поиска по базе с учетом морфологии на perl? Есть ли готовые модули на эту тему?

Автор: DurRandir 4.5.2010, 23:06
Движок поиска именно на перле? Вряд ли. Лучше взять готовую библиотку+биндинги. Отдельные продукты со своими движками - Lucene/Sphinx, или postgres начиная с версии 8.3

Автор: Logo 4.5.2010, 23:18
Да, и на MySQL. Хотя бы для работы с только морфологией, вроде phpMorphy, есть что-то? Тогда можно было бы создавать дубль текста с приведенными в нормальную форму словами, и использовать встроенный в MySQL полнотекстовой поиск.

Автор: gcc 6.5.2010, 03:59
существуют базы со словами словоформами... (или какок они там?)
т.е группа слов, которые означают что-то одно, синонимы, или слова подобные, с одним корнем, но с разными окончаниями...
но, например, в яндекс-поиск есть более разных приколов для лучшего поиска, трансилит т .д.

Автор: KSURi 6.5.2010, 13:14
Есть модуль KinoSearch - практически готовый поисковый движок. Эффективность его не проверял, и не помню, есть ли там поддержка морфологии. Может пригодится для разбора, если решите свое писать. Также есть биндинги к большим движкам - Lucene, Sphinx, etc.
В принципе написать свой простенький движок, заточенный под конкретный сайт/базу, не сложно.

Вот с морфологией на перле уже сложнее. Для русского языка ничего бесплатного, внятного и готового к употреблению я не видел. Только какие-то "запчасти", которые сами по себе ничем не помогут. Приходится все самому писать и собирать из разных запчастей)

Автор: gcc 6.5.2010, 13:48
если поискать в гугле, то можно найти несколько таких баз с морфологией, где кто-то закачал такую базу...
у меня была такая база, могу поискать...

я пользуюсь на одном сайте поиском где можно поставить в символ *
(для корня помогает)

т.е. будет означать:

привет*
приветы
приветствия
ит.д.

Автор: Logo 6.5.2010, 19:48
Цитата

я пользуюсь на одном сайте поиском где можно поставить в символ *
(для корня помогает)

т.е. будет означать:

привет*
приветы
приветствия
ит.д.



Нужна именно морфология. 

А звездочка реализуется стандартными средствами MySQL.

Автор: Nab 11.5.2010, 08:58
Смотрел в Википедии о Lucene, и наткнулся на вот что
http://search.cpan.org/dist/Plucene/

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)